प्रोग्रामिंग भाषाओं के उद्भव का इतिहास संक्षिप्त है। प्रोग्रामिंग भाषाएं: वे क्यों दिखाई दिए, उज्ज्वल प्रतिनिधि, भाषा कैसे चुनें

टिप्पणी 1

काम करने वाले पहले कार्यक्रमों के लिए, कंप्यूटिंग डिवाइस के फ्रंट पैनल पर कुंजी स्विच सेट करना आवश्यक था। स्वाभाविक रूप से, इस पद्धति से केवल छोटे कार्यक्रम ही संकलित किए जा सकते थे। एक पूर्ण प्रोग्रामिंग भाषा बनाने के पहले प्रयासों में से एक जर्मन वैज्ञानिक कोनराड ज़ूस द्वारा किया गया था, जो 1943-1945 की अवधि के लिए थे। प्लांकल्कुल भाषा का विकास किया। प्लांकलकुल एक बहुत ही आशाजनक भाषा थी, जो वास्तव में एक उच्च-स्तरीय भाषा थी, लेकिन युद्ध के दौरान इसे उचित व्यावहारिक कार्यान्वयन नहीं मिला, और इसका विवरण केवल 1972 में प्रकाशित हुआ था।

मशीन कोड। कोडांतरक

प्रोग्रामिंग भाषाओं का इतिहास मशीनी भाषा के विकास से शुरू होता है: तार्किक शून्य और एक की भाषा। इस भाषा के साथ लिखना बहुत कठिन और थकाऊ था।

1940 के दशक के अंत में प्रोग्रामर्स के काम को सुविधाजनक बनाने के लिए। असेंबली भाषा विकसित की गई थी। कमांड को दर्शाने वाले बाइनरी अंकों के बजाय, छोटे शब्द या संक्षिप्त रूप लिखे गए थे। प्रोग्रामर असेंबली भाषा को निम्न-स्तरीय प्रोग्रामिंग भाषा के रूप में देखते हैं क्योंकि यह निम्न-स्तरीय मशीन भाषा के करीब है। असेंबली भाषा में लिखे गए प्रोग्राम सीधे एक विशेष प्रोसेसर की विशेषताओं पर निर्भर करते हैं, इसलिए इसे मशीन-उन्मुख भाषा कहा जाता है।

असेम्बली भाषा में प्रोग्राम लिखना एक कठिन कार्य है और इसके लिए कम्प्यूटर उपकरणों का ज्ञान भी आवश्यक है। फिर भी, असेंबली भाषा कार्यक्रम सबसे कुशल और कुशल हैं।

एल्गोरिथम भाषाएं

प्रोग्रामिंग के विकास के दौरान, नई, अधिक उन्नत प्रोग्रामिंग भाषाओं को विकसित करना आवश्यक हो गया जो प्राकृतिक भाषाओं के समान होंगी और मशीन निर्देशों के साथ सीधे काम नहीं करने देंगी। उन्हें उच्च स्तरीय भाषा कहा जाने लगा। उच्च-स्तरीय भाषाएं एल्गोरिदम का वर्णन करने पर केंद्रित होती हैं, इसलिए उन्हें एल्गोरिथम भाषा कहा जाता है। ऐसी भाषाओं का लाभ उनकी अधिक स्पष्टता और किसी विशेष कंप्यूटर से स्वतंत्रता है।

चूंकि कंप्यूटर केवल मशीनी भाषा को पहचानता है, इसलिए एल्गोरिथम भाषा में लिखे गए प्रोग्राम को इस भाषा में एक विशेष प्रोग्राम - एक अनुवादक द्वारा निष्पादित होने से पहले अनुवादित किया जाना चाहिए। अनुवादक में एल्गोरिथम भाषा के सभी नियम और इसके विभिन्न निर्माणों को मशीनी भाषा में बदलने के तरीके शामिल हैं। स्ट्रीमिंग दो प्रकार की होती है:

  • संकलन प्रोग्राम को क्रियान्वित करने की एक विधि है जिसमें प्रोग्राम के निर्देशों को तभी क्रियान्वित किया जाता है जब प्रोग्राम के संपूर्ण पाठ का अनुवाद एकत्र किया जाता है।
  • इंटरप्रिटेशन प्रोग्राम को क्रियान्वित करने की एक विधि है जिसमें प्रोग्राम निर्देशों का अनुवाद किया जाता है और तुरंत निष्पादित किया जाता है।

टिप्पणी 2

एक एल्गोरिथम भाषा में लिखे गए कार्यक्रमों का लाभ यह है कि लेखन की सापेक्ष आसानी, आसान पठनीयता और इसके सुधार की संभावना के कारण कार्यक्रम के साथ काम करना आसान हो जाता है। नुकसान में शामिल हैं: प्रसारण के लिए अतिरिक्त समय और स्मृति।

संरचित प्रोग्रामिंग

1954 में, पहले उच्च-स्तरीय भाषा संकलक का विकास शुरू हुआ। दो साल बाद, फोरट्रान (फॉर्मुला ट्रांसलेटर) दिखाई दिया। भाषा में ऐसे उपकरण थे जो विकास को बहुत सरल करते थे, लेकिन फोरट्रान में प्रोग्रामिंग एक आसान काम नहीं था: यदि छोटे कार्यक्रमों में इसे समझना आसान था, तो जब बड़े कार्यक्रमों की बात आती है तो भाषा अपठनीय हो जाती है। इसके बावजूद, भाषा काफी सफल रही और कई संस्करण जारी किए गए।

संरचित प्रोग्रामिंग भाषाओं के विकास के बाद समस्याएं हल हो गईं: अब उनके पास प्रोग्राम ब्लॉक, स्वतंत्र सबरूटीन, रिकर्सन और स्थानीय चर के लिए समर्थन, और बिना शर्त कूद ऑपरेटर (गोटो) की अनुपस्थिति बनाने की क्षमता है। इस प्रकार, ऐसी भाषाओं ने कार्यक्रम को उसके घटक तत्वों में विभाजित करने की क्षमता का समर्थन करना शुरू कर दिया।

दस वर्षों के दौरान, काफी बड़ी संख्या में नई भाषाओं का निर्माण किया गया है:

  1. अल्गोल (1958) का उद्देश्य असतत ब्लॉकों से बने एल्गोरिदम को लिखना था;
  2. प्रबंधन और व्यवसाय में बड़े पैमाने पर डेटा प्रोसेसिंग के लिए कोबोल (1959) का उपयोग किया गया था;
  3. बेसिक (1965) ने सरल प्रोग्राम लिखना संभव बनाया, प्रोग्रामिंग की मूल बातें सिखाने के लिए इसका इस्तेमाल किया गया।

जिन भाषाओं का निर्माण हुआ उनमें से बहुत कम संरचित थीं। विशिष्ट भाषाएँ भी बनाई गईं: लिस्प, प्रोलॉग, फोर्थ, आदि। विशेष रूप से नोट पास्कल भाषा (1970) है, जिसका नाम वैज्ञानिक ब्लेज़ पास्कल के नाम पर रखा गया है, जिसका उपयोग शिक्षण और बदलती जटिलता की समस्याओं को हल करने के लिए किया गया था। पास्कल प्रोग्राम पढ़ने में आसान होते हैं, जिससे आप जल्दी से बग ढूंढ सकते हैं और ठीक कर सकते हैं, और यह अच्छी तरह से संरचित था। उपरोक्त सभी ने इसका व्यापक उपयोग किया है, और इस समय भी यह शैक्षणिक संस्थानों में सक्रिय रूप से उपयोग किया जाता है।

1972 में, C भाषा दिखाई दी, जो प्रोग्रामिंग में एक सफल कदम था। भाषा ने कई भाषाओं के फायदों को जोड़ा और बड़ी संख्या में विभिन्न नवाचार किए। इसके अध्ययन के पर्याप्त अवसरों, संरचितता और सापेक्ष सादगी ने भाषा को जल्दी से पहचानने और मुख्य भाषाओं में से एक की जगह जीतने की अनुमति दी।

संरचित प्रोग्रामिंग के आगमन ने उत्कृष्ट परिणाम दिए, लेकिन लंबे और गंभीर कार्यक्रम लिखना अभी भी मुश्किल था।

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग (OOP)

1970 के दशक से। ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) की नींव रखी गई थी, जो प्रक्रियात्मक प्रोग्रामिंग के विकास के परिणामस्वरूप उत्पन्न हुई, जिसमें डेटा और उनके प्रोसेसिंग रूटीन औपचारिक रूप से जुड़े नहीं थे।

OOP में निम्नलिखित बुनियादी अवधारणाएँ शामिल हैं:

  • कक्षा- एक अस्तित्वहीन वस्तु का एक मॉडल। वास्तव में, यह किसी वस्तु का आरेख है, जो उसकी संरचना का वर्णन करता है।
  • एक वस्तु- एक वर्ग का एक उदाहरण, एक कंप्यूटिंग सिस्टम के पता स्थान में एक इकाई जो तब प्रकट होती है जब एक वर्ग का उदाहरण बनाया जाता है।
  • मतिहीनता- किसी वस्तु को विशेषताओं का असाइनमेंट जो इसकी सीमाओं को स्पष्ट रूप से परिभाषित करता है, जो इसे अन्य सभी वस्तुओं से अलग करता है। मुख्य विचार सरल वस्तुओं के रूप में उनके कार्यान्वयन के विवरण से समग्र डेटा ऑब्जेक्ट का उपयोग करने के तरीके को अलग करना है।
  • कैप्सूलीकरण- कार्यक्रम के बाकी हिस्सों से किसी वस्तु के डेटा को छिपाने और वस्तु की अखंडता और स्वतंत्रता सुनिश्चित करने के लिए एक वर्ग में गुणों (डेटा) और विधियों (सबरूटीन्स) का संयोजन (किसी वस्तु के गुणों को बदलना केवल विशेष के माध्यम से संभव है कक्षा के तरीके)।
  • विरासत- एक भाषा तंत्र जो आपको नए गुणों और विधियों को जोड़कर मौजूदा वर्ग (या कक्षाओं) के आधार पर एक नए वर्ग का वर्णन करने की अनुमति देता है।
  • बहुरूपता- सिस्टम की संपत्ति अपने प्रकार और आंतरिक संरचना के बारे में जानकारी प्राप्त किए बिना समान इंटरफ़ेस वाली वस्तुओं का उपयोग करने के लिए।

टिप्पणी 3

1967 में, सिमुला भाषा दिखाई दी - पहली प्रोग्रामिंग भाषा जिसमें ऑब्जेक्ट ओरिएंटेशन के सिद्धांत प्रस्तावित किए गए थे। उन्होंने वस्तुओं, वर्गों, आभासी तरीकों आदि के साथ काम करने का समर्थन किया, लेकिन इन सभी संभावनाओं को समकालीनों का योग्य मूल्यांकन नहीं मिला। हालांकि, इनमें से अधिकांश अवधारणाओं को एलन के और डैन इंगल्स द्वारा स्मॉलटाक में शामिल किया गया था, जो पहली व्यापक वस्तु-उन्मुख प्रोग्रामिंग भाषा बन गई।

वर्तमान में, ऑब्जेक्ट-ओरिएंटेड प्रतिमान को लागू करने वाली लागू प्रोग्रामिंग भाषाओं की संख्या अन्य प्रतिमानों के संबंध में सबसे बड़ी है। ओओपी की अवधारणा का समर्थन करने वाली मुख्य भाषाएं सी ++, सी #, ऑब्जेक्ट पास्कल (डेल्फी), जावा आदि हैं।

इंटरनेट का विकास

WWW (वर्ल्ड वाइड वेब) तकनीक के विकास के साथ, इंटरनेट बहुत लोकप्रिय हो गया है। इंटरनेट, वेबसाइट डिजाइन, संसाधनों तक पहुंच आदि के साथ काम सुनिश्चित करने के लिए बड़ी संख्या में सहायक भाषाएं बनाई गईं।

व्याख्या की गई भाषा पर्ल व्यापक हो रही है, जो इसकी सादगी और अन्य प्लेटफार्मों के लिए आसान पोर्टेबिलिटी से अलग है। यह अलग-अलग जटिलता के अनुप्रयोगों और सीजीआई लिपियों को लिखने के लिए डिज़ाइन किया गया है। जावा भाषा भी व्यापक रूप से उपयोग की जाती है और इंटरनेट के विकास और कामकाज में महत्वपूर्ण भूमिका निभाती है।

1970 के दशक में। SQL भाषा दिखाई दी - संरचित क्वेरी भाषा, जो डेटाबेस तक पहुँचने और काम करने के लिए बनाई गई थी।

HTML हाइपरटेक्स्ट मार्कअप लैंग्वेज को वेबसाइट पेजों के लिए कोड लिखने के लिए विकसित किया गया है, जिसमें टेक्स्ट और ग्राफिक्स को मार्क करने और फॉर्मेट करने के लिए कमांड होते हैं। साइट को अधिक आकर्षक और कार्यात्मक बनाने के लिए, निम्नलिखित का उपयोग किया जाता है:

  • जावास्क्रिप्ट स्क्रिप्ट जो उपयोगकर्ता के वेब ब्राउज़र में निष्पादित की जाती हैं और मुख्य रूप से साइट की उपस्थिति में सुधार करने और छोटी समस्याओं को हल करने के लिए उपयोग की जाती हैं।
  • PHP स्क्रिप्ट जो सर्वर साइड पर क्रियान्वित की जाती हैं और उपयोगकर्ता के ब्राउज़र को पहले से ही संसाधित जानकारी भेजती हैं। गतिशील HTML पृष्ठ, अतिथि पुस्तकें, फ़ोरम और पोल बनाने के लिए उपयोग किया जाता है।
  • CGI स्क्रिप्ट, जो मुख्य रूप से पर्ल, C / C ++ में लिखी जाती हैं, सर्वर साइड पर निष्पादित की जाती हैं और विशिष्ट उपयोगकर्ता क्रियाओं पर निर्भर करती हैं। गतिशील HTML पृष्ठ, अतिथि पुस्तकें, फ़ोरम और पोल बनाने के लिए PHP स्क्रिप्ट की तरह उपयोग किया जाता है।

बीसवीं सदी के पचास के दशक में, वैक्यूम ट्यूब कंप्यूटरों के आगमन के साथ, प्रोग्रामिंग भाषाओं का तेजी से विकास शुरू हुआ। कंप्यूटर, जो उस समय किसी भी प्रोग्राम को विकसित करने की तुलना में काफी अधिक महंगे थे, को अत्यधिक कुशल कोड की आवश्यकता थी। इस तरह के कोड को भाषा में मैन्युअल रूप से विकसित किया गया था कोडांतरक... 1950 के दशक के मध्य में, जॉन बैकस के नेतृत्व में आईबीएम के लिए एल्गोरिथम प्रोग्रामिंग भाषा फोरट्रान विकसित की गई थी। इस तथ्य के बावजूद कि पहले से ही भाषा के विकास थे जो अंकगणितीय अभिव्यक्तियों को मशीन कोड में परिवर्तित करते थे, फोरट्रान भाषा (फॉर्मुला ट्रांसलेटर) का निर्माण, जो सशर्त ऑपरेटरों और आई / ओ ऑपरेटरों का उपयोग करके गणना एल्गोरिदम लिखने की क्षमता प्रदान करता है, प्रारंभिक बिंदु बन गया एल्गोरिथम प्रोग्रामिंग भाषाओं के युग की।

भाषा के लिए फोरट्रानीअत्यधिक कुशल कोड बनाने के लिए आवश्यकताएं थीं। इसलिए, कई भाषा निर्माण मूल रूप से आईबीएम 407 वास्तुकला को ध्यान में रखते हुए विकसित किए गए थे। इस भाषा के विकास की सफलता ने इस तथ्य को जन्म दिया कि अन्य कंप्यूटर सिस्टम के निर्माताओं ने अनुवादकों के अपने संस्करण बनाना शुरू कर दिया। भाषा के उस समय के कुछ संभावित एकीकरण के उद्देश्य से, 1966 में विकसित फोरट्रान IV, फोरट्रान 66 नामक पहला मानक बन गया।

ALGOL (ALGOरिदमिक लैंग्वेज) को पीटर नौर के नेतृत्व में 1950 के दशक के अंत में फोरट्रान के विकल्प के रूप में विकसित किया गया था, जो मूल रूप से IBM आर्किटेक्चर की ओर उन्मुख था। इस भाषा के डेवलपर्स द्वारा पीछा किया गया मुख्य लक्ष्य कंप्यूटिंग सिस्टम की विशिष्ट वास्तुकला से स्वतंत्रता था। इसके अलावा, ALGOL भाषा के रचनाकारों ने एक ऐसी भाषा विकसित करने की मांग की जो एल्गोरिदम का वर्णन करने के लिए सुविधाजनक हो और गणित में उपयोग की जाने वाली एक संकेतन प्रणाली का उपयोग करती हो।

फोरट्रान और ALGOL भाषाएँ कम्प्यूटेशनल प्रोग्रामिंग पर ध्यान केंद्रित करने वाली पहली भाषाएँ थीं।

भाषा पीएल / आई, जिसका पहला संस्करण 60 के दशक की शुरुआत में सामने आया था, मूल रूप से आईबीएम 360 पर केंद्रित था और उसी वर्षों के दौरान विकसित कोबोल भाषा की कुछ विशेषताओं के साथ फोरट्रान भाषा की क्षमताओं का विस्तार किया। आईबीएम कंप्यूटर और यूरोपीय संघ श्रृंखला की मशीनों पर काम करने वाले प्रोग्रामर के बीच पीएल / आई भाषा की निश्चित लोकप्रियता के बावजूद, वर्तमान में यह विशुद्ध रूप से सैद्धांतिक रुचि का है।

1960 के दशक के अंत में, उपयोगकर्ता-परिभाषित डेटा प्रकारों की अवधारणा का उपयोग करते हुए, सिमुला -67 को न्यार्ड और डाहल के नेतृत्व में विकसित किया गया था। वास्तव में, यह कक्षाओं की अवधारणा का उपयोग करने वाली पहली भाषा है।

70 के दशक के मध्य में, विर्थ ने भाषा का प्रस्ताव रखा पास्कल, जो तुरंत व्यापक रूप से उपयोग किया जाने लगा। उसी समय, अमेरिकी रक्षा विभाग की पहल पर, एडा नामक एक उच्च-स्तरीय भाषा बनाने का काम शुरू हुआ - एक प्रोग्रामर और लॉर्ड बायरन की बेटी, एडा लवलेस के सम्मान में। भाषा का निर्माण आवश्यकताओं की परिभाषा और विशिष्टताओं के विकास के साथ शुरू हुआ। चार स्वतंत्र टीमों ने परियोजना पर काम किया, लेकिन वे सभी पास्कल को आधार के रूप में इस्तेमाल करते थे। 80 के दशक की शुरुआत में, भाषा का पहला औद्योगिक संकलक विकसित किया गया था एडीए.

यूनिवर्सल प्रोग्रामिंग भाषा साथ 70 के दशक के मध्य में डेनिस रिची और केन थॉम्पसन द्वारा विकसित किया गया था। यह भाषा एक लोकप्रिय सिस्टम प्रोग्रामिंग भाषा बन गई और एक समय में इसका उपयोग UNIX ऑपरेटिंग सिस्टम के कर्नेल को लिखने के लिए किया जाता था। C भाषा मानक 1982 में ANSI मानक संस्थान के एक कार्यकारी समूह द्वारा विकसित किया गया था। C भाषा के लिए अंतर्राष्ट्रीय मानक 1990 में अपनाया गया था। C भाषा ने C++ और Java प्रोग्रामिंग भाषाओं के विकास का आधार बनाया।

एल्गोरिथम भाषाओं के साथ, व्यावसायिक जानकारी को संसाधित करने के लिए डिज़ाइन की गई भाषाएँ, साथ ही साथ कृत्रिम बुद्धिमत्ता की भाषाएँ, समानांतर में विकसित हुईं। पहला COBOL (कॉमन बिजनेस ओरिएंटेड लैंग्वेज) है, और बाद वाला भाषा है लिस्प(सूची प्रसंस्करण) और प्रस्तावना... जे मैकार्थी के नेतृत्व में 1960 के दशक में विकसित LISP, गेम थ्योरी में व्यापक रूप से उपयोग की जाने वाली पहली कार्यात्मक सूची-प्रसंस्करण भाषा थी।

पर्सनल कंप्यूटर के आगमन के साथ, भाषाएं एकीकृत विकास वातावरण का अभिन्न अंग बन गई हैं। विभिन्न कार्यालय कार्यक्रमों में इस्तेमाल की जाने वाली भाषाएं थीं, जैसे वीबीए (आवेदन के लिए विजुअल बेसिक)।

90 के दशक में, इंटरनेट के प्रसार के साथ, वितरित डेटा प्रोसेसिंग की संभावना बढ़ रही है, जो प्रोग्रामिंग भाषाओं के विकास में परिलक्षित होती है। सर्वर-साइड अनुप्रयोगों के निर्माण पर केंद्रित भाषाएँ उभर रही हैं, जैसे जावा, पर्लतथा पीएचपी, दस्तावेज़ विवरण भाषाएँ - एचटीएमएलतथा एक्सएमएल... पारंपरिक प्रोग्रामिंग भाषाएँ C++ और पास्कल भी परिवर्तन के दौर से गुजर रही हैं: एक प्रोग्रामिंग भाषा का अर्थ न केवल भाषा की कार्यक्षमता, बल्कि प्रोग्रामिंग वातावरण द्वारा प्रदान की जाने वाली क्लास लाइब्रेरी से भी होना शुरू होता है। प्रोग्रामिंग भाषाओं के विनिर्देशन से जोर स्वयं वितरित अनुप्रयोगों की बातचीत के लिए तंत्र के मानकीकरण पर स्थानांतरित कर दिया गया है। नई प्रौद्योगिकियां दिखाई देती हैं - COM और CORBA, वितरित वस्तुओं की बातचीत को निर्दिष्ट करते हुए।

कंप्यूटर अभी भी लोगों के बीच संचार के लिए उपयोग की जाने वाली प्राकृतिक भाषाओं को अच्छी तरह से नहीं समझते हैं, कम से कम उन्होंने अभी तक समझना नहीं सीखा है।

बदले में, मनुष्य को मशीनी भाषाओं की कम समझ है। इसलिए, प्रोग्रामिंग भाषाएं बनाई गई हैं जो मानव और कंप्यूटर के बीच सोच के मॉडल में समझ में इस छेद को भरती हैं।

प्रोग्रामिंग भाषाएँ हो सकती हैं:

  • सरल,
  • जटिल और
  • समझ से बाहर (उदाहरण के लिए, ग्राफिक)।

प्रोग्रामिंग भाषाओं के उद्भव का इतिहास

कई सौ प्रोग्रामिंग भाषाएं अब उपयोग में हैं, लेकिन कई और अब उपयोग में नहीं हैं। समय के साथ, नए कार्यों के लिए नई प्रोग्रामिंग भाषाओं का विकास किया गया।

शून्य पीढ़ी

  • (इलेक्ट्रो),
  • अपने स्वयं के उपकरण की संरचना द्वारा क्रमादेशित
  • अति विशिष्ट,
  • प्रोग्रामिंग विकल्प सीमित हैं।

जैक्वार्ड करघा

ऐसी मशीन का एक उदाहरण प्रोग्राम करने योग्य जेकक्वार्ड लूम है। इसे 1804 में फ्रांसीसी जोसेफ मैरी जैकार्ड द्वारा बनाया गया था। वैसे, उनके सम्मान में पैटर्न वाले, सजावटी कपड़े को जेकक्वार्ड या जेकक्वार्ड नाम दिया गया है।

मशीन की मदद से, नीचे दिए गए चित्र में दिखाए गए पंच कार्डों का उपयोग करके कपड़े पर कढ़ाई आसानी से और बड़े पैमाने पर बनाना संभव था:

चावल। 1. जैक्वार्ड लूम के लिए पंच कार्ड

पंच कार्डों पर, कपड़े पर किसी भी पैटर्न को पुन: पेश करने के लिए मशीनों के लिए क्रियाओं का एक क्रम प्रोग्राम किया गया था।

बैबेज की मशीन

इंटरनेट और वेब

विशिष्ट भाषाएँ सामने आई हैं:

  • जावास्क्रिप्ट।

कई साइटें PHP और JavaScript के साथ लिखी जाती हैं।

कुछ पूर्व-मौजूदा भाषाओं, इंटरनेट और वेब के आगमन के साथ, नए स्थान मिले और वेब-उन्मुख बन गए:

  • माणिक,
  • पिनटन,
  • जावा।

2000 के दशक तक, पुरानी प्रोग्रामिंग भाषाएं धीरे-धीरे "मर रही हैं", नई दिखाई देती हैं, लेकिन इन चीजों का क्या होता है, इसकी कोई आम तौर पर स्वीकृत अवधारणा नहीं है।

कोई भी प्रोग्रामिंग भाषा एक कृत्रिम भाषा होती है जिसका अपना जीवन चक्र होता है। इसी तरह, विंडोज परिवार के ऑपरेटिंग सिस्टम का भी अपना जीवन चक्र होता है:।

प्रोग्रामिंग भाषा का जीवन चक्र:

  • निर्माण,
  • प्रारंभिक गोद लेने (भाषा का प्रारंभिक उपयोग),
  • (औद्योगिक) सफलता,
  • विलुप्त होने, अन्य भाषाओं में परिवर्तन।

आधुनिक दुनिया में, सॉफ्टवेयर (सॉफ्टवेयर) का बड़ा हिस्सा 10-15 भाषाओं में लिखा जाता है, हालांकि पूरे समय में, जिसे हम जानते हैं, सैकड़ों से अधिक प्रोग्रामिंग भाषाएं बनाई गई हैं। आधिकारिक तौर पर 300 या 400 भाषाएं किसी न किसी तरह से पंजीकृत हैं।

प्रोग्रामिंग भाषा क्या है

भाषा है

  • वाक्यविन्यास (कार्यक्रम लिखने के नियम),
  • शब्दार्थ (तत्वों का व्यवहार जो वर्तनी नियमों में शामिल हैं और भाषा में निर्मित हैं),
  • रनटाइम (रनटाइम)।

वाक्य-विन्यास कार्यक्रमों के शाब्दिक प्रतिनिधित्व के रूप को निर्धारित करता है, अर्थात उन्हें कैसे लिखा जाना चाहिए, भाषा में कौन से शब्द शामिल हैं, अल्पविराम, रिक्त स्थान आदि कैसे लगाएं।

लिस्प सिंटैक्स

औपचारिक व्याकरण वाली सबसे सरल प्रोग्रामिंग भाषाओं में से एक LISP भाषा है।

चावल। 10. एलआईएसपी पर कार्यक्रम

LISP एक बहुत पुरानी भाषा है जो सूचियाँ बनाती है। ऐसी भाषा का व्याकरण सूचियों का व्याकरण होता है, जिसे ऊपर से नीचे तक पढ़ा जाता है।

  • लिस्प के भाव हैं: एक परमाणु या एक सूची हो सकती है;
  • परमाणु एक संख्या या प्रतीक है,
  • संख्या - एक संख्या, यानी प्लस या माइनस अंक के साथ, कम से कम एक,
  • प्रतीक - ये अक्षर हैं, जितनी बार चाहें उतनी बार भी कर सकते हैं,
  • सूची - सूची, कोष्ठक में अभिव्यक्ति एक से अधिक बार।

एक लिस्प कार्यक्रम सूचियों की एक सूची है। लिस्प में कोई विराम चिह्न नहीं है, लेकिन कोष्ठक हैं। ऐसे लंबे लिस्प कार्यक्रम हो सकते हैं, जहां अंत में 2-3 पत्ते होते हैं, जिसमें कुछ समापन कोष्ठक होते हैं।

सबसे सरल लिस्प दुभाषिया केवल 19 लाइनें लेता है! कोई अन्य भाषा इस विलासिता को वहन नहीं कर सकती।

अर्थ विज्ञान

यदि व्याकरण प्रतिनिधित्व के रूपों का वर्णन करता है: अक्षर, संख्याएं, कोष्ठक, तो शब्दार्थ वर्णन करता है कि कार्यक्रम कैसे काम करता है, इन अक्षरों, संख्याओं, कोष्ठकों का क्या अर्थ है कि वे कैसे काम करते हैं, एक दूसरे के साथ बातचीत करते हैं, आदि।

शब्दार्थ का प्रतिनिधित्व करने के विकल्प बल्कि सीमित हैं।

शब्दार्थ हो सकता है:

  • प्राकृतिक, मानवीय भाषा में वर्णित है। कई भाषाओं का वर्णन केवल इस तरह किया जा सकता है। वास्तव में, यह मुख्य मामला है जब केवल एक दस्तावेज होता है जहां रूसी या अंग्रेजी में वर्णित किया जाता है कि ऐसी और ऐसी चीज इस तरह से काम करती है, एक टीम एक काम करती है, दूसरी ऐसी और ऐसी चीजें करती है , आदि ;
  • औपचारिक रूप से सेट करें (विशेष भाषाओं में, उदाहरण के लिए, कुछ गणनाओं के लिए, तत्वों के व्यवहार को औपचारिक रूप से वर्णित किया जा सकता है);
  • मूल कार्यान्वयन द्वारा परिभाषित (शायद ही कभी उपयोग किया जाता है, लेकिन यह विवरण के लिए "अंतिम उपाय" है, जब शब्दार्थ बहुत जटिल हैं या बहुत महत्वपूर्ण नहीं हैं);
  • परीक्षणों (मामलों) के एक सेट द्वारा वर्णित है, अर्थात्, इसे इस तरह से काम करना चाहिए, और यह इसी तरह काम करता है।

शब्दार्थ को दो भागों में बांटा गया है:

  • स्थिर,
  • गतिशील।

स्थिर शब्दार्थ

  • शाब्दिक निर्माण को अर्थ देता है;
  • चर और मापदंडों के अनुमेय मूल्यों को निर्धारित करता है;
  • वाक्यात्मक प्रतिबंधों का वर्णन करता है, उदाहरण के लिए, वाक्य रचना का उपयोग करके यह वर्णन करने के लिए काम नहीं करेगा कि आप संख्याओं के साथ तार नहीं जोड़ सकते।

गतिशील बनाम ललाट रनटाइम शब्दार्थ

  • कार्यक्रम निष्पादन की सामान्य प्रकृति को निर्धारित करता है;
  • वर्णन करता है कि इनलाइन संचालन और इनलाइन पुस्तकालय कैसे काम करते हैं। यह शब्दार्थ का मुख्य भाग है जो यह समझने के लिए आवश्यक है कि कार्यक्रम कैसे रहेगा और इसके लिखे जाने के बाद काम करेगा;
  • दुभाषिया के लिए आवश्यकताओं को निर्दिष्ट करता है।

प्रोग्रामिंग भाषाओं में डेटा टाइप सिस्टम

शब्दार्थ का एक महत्वपूर्ण हिस्सा प्रकार प्रणाली है - उन तरीकों के लिए नियमों और अभिव्यक्तियों का एक समूह जो भाषा की विचारधारा में लिखे गए हैं और वे एक दूसरे के साथ कैसे बातचीत करते हैं।

आमतौर पर, एक प्रोग्रामिंग भाषा में डेटा टाइप सिस्टम होता है - स्ट्रिंग्स, नंबर, सूचियां इत्यादि। उदाहरण के लिए, फोर्स भाषा है, जहां सभी डेटा सरल है, दूसरे शब्दों में, ऐसी भाषाएं हैं जहां डेटा प्रकार बिल्कुल नहीं बनाए जाते हैं।

यदि टाइप सिस्टम मौजूद है, तो प्रोग्रामिंग भाषाओं को दो स्वतंत्र वर्गों में विभाजित करना संभव है, जो नीचे दिए गए हैं।

डेटा प्रकार प्रणाली:

  • टंकित या अलिखित भाषा
  • स्थिर या गतिशील टाइपिंग
  • मजबूत या कमजोर टाइपिंग

यदि टाइपिंग स्थिर है, तो प्रोग्राम में लिखे गए सभी प्रकार और अभिव्यक्तियों को इसके निष्पादन के क्षण तक जाना जाता है, अर्थात, जब फ़ंक्शन, वर्ग, चर का वर्णन किया जाता है, तो शर्तों को तुरंत सेट या स्पष्ट रूप से प्रदान किया जाता है इस तरह के एक निर्माण को शुरू से ही जाना जाता है। शुरू।

यदि टाइपिंग गतिशील है, तो, इसके विपरीत, निष्पादन के क्षण तक संदर्भ भाषा की वस्तुओं का प्रकार अज्ञात है, अर्थात, फ़ंक्शन का प्रकार या कुछ भी अंत तक अज्ञात रहेगा।

सशक्त टाइपिंग का अर्थ है कि यदि किसी निकाय का एक प्रकार है और यह ज्ञात है, तो इस प्रकार को बदला जा सकता है, लेकिन वस्तु का प्रकार स्वयं तय होता है, और यह नहीं बदलता है।

कमजोर टाइपिंग के साथ, संदर्भ के आधार पर और आप इसके साथ क्या करते हैं, इसके आधार पर वस्तु का प्रकार भिन्न हो सकता है।

भाषा के प्रकार प्रणाली की निगरानी की जानी चाहिए। केवल एक के गलत तरीके से निर्दिष्ट प्रकार के कारण, कार्यक्रम की शुरुआत में बहुत ध्यान देने योग्य चरित्र नहीं है, संपूर्ण अभिव्यक्ति का प्रकार बदल जाता है, और इसलिए बहुत ही अजीब त्रुटियां हो सकती हैं।

भाषा की अगली महत्वपूर्ण विशेषता है

प्रोग्रामिंग भाषा प्रतिमान

  • ग्रीक से - पैटर्न, उदाहरण, नमूना;
  • यह विचारों और अवधारणाओं की एक प्रणाली है जो इस भाषा में कार्यक्रम लिखने की शैली निर्धारित करती है - भाषा में कार्यक्रम कैसे लिखना शामिल है (विकी);
  • भाषा "एहसान" एक या अधिक प्रतिमान (बहु-प्रतिमान)।

मुख्य प्रतिमान

  • अनिवार्य: एक प्रोग्राम अनुक्रमिक निर्देशों का एक सेट है जो कंप्यूटर, डेटा इत्यादि की आंतरिक स्थिति को बदलता है। अर्थात्, प्रोग्राम एक निर्देश है;
  • कार्यात्मक: एक प्रोग्राम गणितीय कार्यों का एक समूह है। कार्यक्रम संचालन - कार्यों के मूल्यों की गणना;
  • वस्तु-उन्मुख: विषय क्षेत्र का वर्णन गुणों और विधियों के साथ वस्तुओं का उपयोग करके किया जाता है। एक कार्यक्रम वस्तुओं के बीच बातचीत की एक प्रक्रिया है;
  • तार्किक: एक कार्यक्रम एक विषय क्षेत्र के बारे में बयानों का एक समूह है। कार्यक्रम का काम इस विषय क्षेत्र के बारे में बयानों की सच्चाई को स्थापित करना है।

अक्सर, ऊपर सूचीबद्ध किसी भी प्रतिमान का उपयोग करके वही व्यावहारिक कार्य प्राप्त किया जा सकता है।

भाषा का उपयोग करते समय विचार करने के लिए भाषा का एक अन्य महत्वपूर्ण हिस्सा रनटाइम है - भाषा को कैसे निष्पादित किया जाता है।

रनटाइम - कार्यक्रम निष्पादन

कार्यक्रम को विभिन्न तरीकों से निष्पादित किया जा सकता है:

  1. किसी प्रोग्राम को क्रियान्वित करने का सबसे सरल और सबसे सरल तरीका व्याख्या है - लॉन्च के समय स्रोत कोड पढ़ना। इस प्रकार हल्की स्क्रिप्टिंग भाषाएं काम करती हैं। प्रोग्रामर खुद भी काम करता है: जब वह प्रोग्राम लिखता है, तो वह अपनी आंखों से अपने प्रोग्राम को देखता है और सोचता है कि उसका प्रोग्राम कैसे काम करेगा और क्या करना है;
  2. प्रोग्राम चलाने का एक सामान्य तरीका मशीन कोड को संकलित करना है, लॉन्च से पहले एक अलग चरण। एक अलग उपकरण है - एक कंपाइलर, जहां प्रोग्राम के स्रोत कोड पढ़े जाते हैं, उनके साथ कुछ किया जाता है, उन्हें मशीन कोड में परिवर्तित किया जाता है जो वर्तमान सिस्टम के लिए समझ में आता है। फिर यह कोड सीधे हार्डवेयर द्वारा निष्पादित किया जाता है;
  3. वर्चुअल मशीन में हाइब्रिड तरीका बाइट संकलन और निष्पादन है। कंपाइलर स्रोत कोड पढ़ता है और फिर वर्चुअल मशीन में चलने वाले बाइटकोड का उत्पादन करता है।

ये तीन विधियां अलग-अलग हैं और विभिन्न उद्देश्यों के लिए उपयोग की जाती हैं। इन तकनीकों को जोड़ा जा सकता है - दुभाषिया इसे तेजी से काम करने के लिए फ्लाई पर प्रोग्राम के कुछ हिस्सों को संकलित कर सकता है। गतिशील रूप से जेनरेट किए गए कोड को संकलन के बिना व्याख्या किया जा सकता है।

भाषाओं के प्रतिनिधि

सी भाषा

- सबसे लोकप्रिय में से एक, उस पर शारीरिक रूप से लिखित कोड के संदर्भ में सबसे महत्वपूर्ण में से एक, व्यावहारिक रूप से यह "हमारा सब कुछ" है।

इसे 1972 में डेनिस रिची और उनके सहयोगियों द्वारा बनाया गया था। D. रिची ने Linux सिस्टम और कई अन्य उपयोगी चीजें भी बनाईं।

  • अनिवार्य,
  • संकलित,
  • मैनुअल मेमोरी प्रबंधन (कुछ अंतर्निहित भाषा संचालन के साथ, आपको चर के लिए स्मृति तत्वों को आवंटित करने की आवश्यकता होती है और फिर जब उनकी आवश्यकता नहीं होती है तो आप उन्हें मुक्त कर देते हैं)।

वैसे, C आज भी प्रासंगिक है, इसका उपयोग इसके लिए किया जाता है:

  • सिस्टम प्रोग्रामिंग (उदाहरण के लिए, लिनक्स कर्नेल सी में लिखा गया है),
  • नंबर-क्रंचिंग (तथाकथित नंबर-क्रंचिंग, यानी बड़ी गणना के लिए जहां गति महत्वपूर्ण है),
  • माइक्रोकंट्रोलर और एम्बेडेड सिस्टम की प्रोग्रामिंग।

सी एक निम्न-स्तरीय भाषा है, हम कह सकते हैं कि यह एक मानव चेहरे के साथ एक असेंबलर है, क्योंकि एक व्यक्ति मैन्युअल रूप से लगभग किसी भी सी निर्माण को एक असेंबलर में परिवर्तित कर सकता है और बहुत स्पष्ट संचालन प्राप्त कर सकता है।

सी प्रोग्राम बहुत कॉम्पैक्ट हैं। यदि असेंबलर में इसी तरह के कार्यक्रम लिखे गए थे, तो वे उससे बहुत बड़े नहीं हैं। वहीं, असेंबलर की तुलना में सी में विकास बहुत तेज है।

इसलिए, सी अब उन कार्यों के लिए उपयोग किया जाता है जहां प्रदर्शन की आवश्यकता होती है, स्मृति प्रबंधन बहुत महत्वपूर्ण है, और कार्यक्रम के कॉम्पैक्ट आकार का ही बहुत महत्व है। यदि आपके पास एक छोटा माइक्रोकंट्रोलर है जो किसी डिवाइस में एम्बेडेड है, तो इसके लिए प्रोग्राम को असेंबलर या सी में लिखा जाएगा।

चावल। 11. एक साधारण सी प्रोग्राम का एक उदाहरण।

जावा

  • 1995 में बनाया गया,
  • निर्माता - जेम्स गोस्लिंग और सन माइक्रोसिस्टम्स (गोस्लिंग ने इस कंपनी के लिए काम किया)।
  • वस्तु उन्मुख, अनिवार्य (सी अनिवार्य है, लेकिन वस्तु उन्मुख नहीं है),
  • दृढ़ता से और स्थिर रूप से टाइप किया गया,
  • वर्चुअल मशीन के साथ बाइट-संकलित,
  • कोई मेमोरी एक्सेस नहीं, स्वचालित कचरा संग्रह (बाद में एक तिहाई या एक चौथाई मुफ्त मेमोरी होने पर अच्छी तरह से काम करता है)।

90 के दशक में, JAVA ने एक बहु-मंच भाषा के रूप में बहुत लोकप्रियता हासिल की। एक बार जब आप किसी प्लेटफॉर्म के लिए वर्चुअल मशीन लिख लेते हैं, जैसे कि विंडोज के लिए या लिनक्स के लिए या मैक के लिए, तो आप बिना किसी पुन: संकलन के उस पर कोई भी जावा प्रोग्राम चला सकते हैं। इसलिए, वेब के युग में भाषा लोकप्रिय थी, जब विभिन्न प्लेटफॉर्म (विंडोज के विभिन्न संस्करण, विभिन्न मैक) थे। JAVA प्रोग्राम विभिन्न प्लेटफॉर्म पर तेजी से और काफी अच्छी तरह से काम करते हैं।

के लिये उपयोग किया जाता है:

  • वेब प्रोग्रामिंग सहित एप्लाइड प्रोग्रामिंग,
  • एम्बेडेड सिस्टम (यदि C का उपयोग माइक्रोकंट्रोलर के लिए किया जाता है, तो JAVA का उपयोग मोबाइल फोन, टर्मिनलों आदि के लिए किया जाता है),
  • बड़ी संख्या में उपयोगकर्ताओं (बैंकिंग कार्यक्रम, हवाई यातायात नियंत्रण प्रणाली, आदि) के साथ उच्च-लोड सिस्टम।

जावा भाषा विनिर्देशों और विभिन्न जेवीएम कार्यान्वयन को प्रतिष्ठित किया जाना चाहिए:

  • सन JDK (सूर्य से, अब Oracle),
  • आईबीएम जेडीके (नकद के लिए बेचा गया)
  • ओपनजेडीके (पूरी तरह से मुक्त)
  • आदि।

चावल। 12. जावा में एक साधारण प्रोग्राम का एक उदाहरण।

जैसा कि अंजीर में देखा गया है। 12, सरल चरणों को पूरा करने के लिए आपको बहुत सारे पत्र लिखने होंगे। जावा को अक्सर नए कोबोल के रूप में जाना जाता है क्योंकि इसमें वही नकारात्मक गुण होते हैं जो कभी कोबोल को एक खराब भाषा बनाते थे।

फिर भी, जावा बहुत लोकप्रिय है, विशेष रूप से, ऑपरेटिंग सिस्टम का क्लाइंट हिस्सा इस पर लिखा गया है।

तुतलाना

  • यह वास्तव में पूरा करता है फूलटी पीरोसेसर (LisP);
  • 1958 में बनाया गया;
  • निर्माता - जॉन मैकार्थी;
  • शुद्ध कार्यात्मक भाषा, बल्कि अजीब वाक्य रचना के बावजूद;
  • दृढ़ता से और गतिशील रूप से टाइप किया गया;
  • आमतौर पर व्याख्या की गई;
  • मेमोरी तक कोई पहुंच नहीं, स्वचालित कचरा संग्रह, जो दुभाषिया पर पड़ता है न कि वर्चुअल मशीन पर।

के लिये उपयोग किया जाता है:

  • वैज्ञानिक प्रोग्रामिंग और अनुसंधान;
  • आर्टिफिशियल इंटेलिजेंस - लिस्प को शुरुआत में ही बुद्धि से खोज कर बनाया गया था। 1950 के दशक के अंत और 1960 के दशक की शुरुआत में, अकादमिक जगत में एक मजबूत भावना थी कि कृत्रिम बुद्धिमत्ता का निर्माण होने वाला था। तब यह माना जाता था कि कृत्रिम बुद्धि की प्रमुख विशेषताएं प्राकृतिक भाषा, पाठ, पढ़ने, बोलने और कुछ उचित चीजों के साथ काम करने की क्षमता होगी। लिस्प को टेक्स्ट से सिमेंटिक डेटा को प्रोसेस करने के लिए बनाया गया था, यह आपको ऐसी चीजों को अच्छी तरह से करने की अनुमति देता है;
  • कुछ भी, लेकिन, एक नियम के रूप में, यह बहुत प्रभावी ढंग से उपयोग नहीं किया जाता है।

1958 में विकसित लिस्प भाषा में कई बदलाव हुए हैं।

इसके कई कार्यान्वयन और बोलियाँ हैं:

  • CommonLisp (1970 के दशक में बनाया गया) एक क्लासिक कार्यान्वयन है जिसे मुख्य माना जाता है;
  • योजना - एक सरल बोली जो कॉमन लिस्प से कुछ चीजों को दूर कर देती है और इसे करना आसान बनाती है;
  • क्लोजर भाषा के संदर्भ में लिस्प की एक बोली है, लेकिन यह जावा मशीन के शीर्ष पर चलती है, यानी इसे बाइटकोड में संकलित किया जाता है और इसे जावा प्रोग्राम के रूप में निष्पादित किया जाता है।

चावल। 13. एलआईएसपी कार्यक्रम: बबल सॉर्ट

पायथन (पायथन)

  • 1970 के दशक के ब्रिटिश शो मोंटी पिंटन के फ्लाइंग सर्कस के नाम पर (पुराने चुटकुले लेकिन मज़ेदार)
  • 1991 में स्थापित
  • निर्माता - डचमैन गुइडो वैन रोसुम
  • बहु-प्रतिमान भाषा, वस्तु-उन्मुख, अनिवार्य, कार्यात्मक
  • दृढ़ता से और गतिशील रूप से टाइप किया गया
  • एक आभासी मशीन के साथ व्याख्या, बाइट-संकलित (कार्यान्वयन निर्भर)

के लिये उपयोग किया जाता है:

  • स्क्रिप्ट प्रोग्रामिंग
  • वेब प्रोग्रामिंग
  • वैज्ञानिक प्रोग्रामिंग (मॉडलिंग, संभाव्यता, सांख्यिकी और अन्य क्षेत्रों के साथ काम करने के लिए बड़े, मजबूत पैकेज हैं जो अन्य क्षेत्रों में प्राप्त अनुभव को जोड़ते हैं)

पायथन एक भाषा विनिर्देश है। कई बुनियादी कार्यान्वयन हैं:

  • CPython - मुख्य (संदर्भ)
  • ज्योथन - जेवीएम के शीर्ष पर
  • PyPy - Python में Python ("Python on Python" CPython और Jython की तुलना में तेज़ और बेहतर है)

चावल। 14. पायथन प्रोग्राम: बबल सॉर्ट

पायथन की एक महत्वपूर्ण विशेषता है - कोष्ठक (कोष्ठक, घुंघराले) के बजाय, रिक्त स्थान के साथ इंडेंटेशन का उपयोग कोड और संरचनात्मक तत्वों के ब्लॉक को उजागर करने के लिए किया जाता है, जो सभी भाषाओं के लिए असामान्य है। पायथन के अलावा, लगभग किसी के पास यह सुविधा नहीं है।

कार्य के लिए भाषा चुनना

किसी कार्य के लिए भाषा कैसे चुनें जब आप जानते हैं कि आपको क्या करना है, लेकिन यह नहीं पता कि क्या उपयोग करना है?

एक महत्वपूर्ण युक्ति: जो आप जानते हैं उसका उपयोग कैसे करें के साथ प्रोग्राम करें। यह उस चीज़ का उपयोग करने से कहीं बेहतर है जिसे आप नहीं जानते कि प्रोग्राम कैसे करें।

पारिस्थितिकी तंत्र

आप जिस भाषा को लेना चाहते हैं वह "नंगी" भाषा नहीं होनी चाहिए, इसमें एक पारिस्थितिकी तंत्र होना चाहिए जिसमें निम्न शामिल हों:

  • विकास उपकरण (सुविधाजनक आईडीई)
  • तैयार पुस्तकालय और ढांचे
  • परीक्षण मामलों को चलाने के लिए परीक्षण उपकरण: परीक्षण ढांचे और उपकरण
  • पैकेजिंग और परिनियोजन प्रणाली ताकि लिखित कोड को पैक किया जा सके, कहीं रखा जा सके, ताकि अन्य लोग इसका आसानी से उपयोग कर सकें। सी भाषा में यह संभावना नहीं है, लेकिन रूबी और पायथन भाषाएं करती हैं।
  • समुदाय। मृत भाषाओं का प्रयोग न करें, चाहे वे कितनी भी शांत क्यों न हों। अगर कोई पूछने वाला नहीं है, तो आप पूरी तरह से मृत अंत में रह जाएंगे। ऐसा माना जाता है कि कुछ समुदाय अधिक मिलनसार होते हैं, अन्य कम। उदाहरण के लिए, रूबी समुदाय भयानक है, और जावा समुदाय भयानक है - आपको वहां कुछ भी पूछने की आवश्यकता नहीं है।

लोकप्रियता

ऐसे लोगों की टीम ढूंढना मुश्किल है जो एफिल जैसी कम इस्तेमाल की जाने वाली भाषा में कोड लिखते हैं। दूसरी ओर, बहुत सारे लोग मेगा-लोकप्रिय जावा भाषा में रिक्ति के लिए दौड़ेंगे, जिसमें प्रवेश सीमा कम है, लेकिन इसमें वास्तव में अच्छा लिखने वाले लोगों को ढूंढना आसान नहीं होगा।

एक भाषा जितनी अधिक लोकप्रिय होती है, उतने ही अधिक पुस्तकालय, समुदाय, ढांचे और अन्य चीजें होती हैं जो ऊपर से अपने आप विकसित होती हैं।

सीखने की दर

लगभग कोई भी पूरी तरह से भाषा नहीं जानता है। जैसा कि आप काम करते हैं, आपको आगे और आगे भाषा सीखनी होगी। कुछ भाषाएं सीखने में आसान होती हैं, जबकि अन्य बहुत खराब होती हैं।

जावा एक ऐसी भाषा है जो सीखने में आसान और अपनी क्षमताओं में सरल है, और फिर सब कुछ भाषा की कीमत पर नहीं, बल्कि उपकरणों की कीमत पर बनाया गया है।

C++ को अंत तक सीखना असंभव है, क्योंकि कोड जनरेशन के साथ बहुत जटिल चीजें होती हैं।

आला भाषाएं

विशिष्ट आला समस्याओं को हल करने के लिए विशिष्ट भाषाएं बेहतर अनुकूल हैं।

उदाहरण 1: एक वेब अनुप्रयोग जो

  • डेटाबेस के साथ इंटरैक्ट करता है
  • कंपनी में आंतरिक सेवा
  • तेजी से विकास की जरूरत है, क्योंकि रसोइया बहुत पूछ रहा है।

ऐसे कार्य के लिए, सबसे अधिक संभावना है, पायथन या रूबी उपयुक्त हैं। इसे जावा में न करें

उदाहरण 2: एक सेलुलर ऑपरेटर की बिलिंग प्रणाली

  • प्रति सेकंड हजारों संचालन, बहुत सारे विभिन्न भुगतान और स्थानान्तरण
  • उच्च विश्वसनीयता और दोष सहिष्णुता
  • विन्यास में लचीलापन, समस्याओं का निदान

इस मामले में, हमारी पसंद जावा, सी ++, एरलांग - समृद्ध टूलकिट वाली समृद्ध भाषाएं हैं।

उदाहरण 3: उपग्रह के लिए ऑनबोर्ड कंप्यूटर कोड

  • सीमित संसाधन (केवल मेगाबाइट मेमोरी और बहुत कम घड़ी की गति)
  • कठिन वास्तविक समय ताकि उपग्रह अपना अभिविन्यास न खोए, टूटे और विस्फोट न करे
  • प्रसिद्ध कार्य, कोई लचीलापन नहीं और कोई अनुकूलन नहीं
  • बहुत सारी गणना

हमारी पसंद सी और सी जैसी भाषाएं (और यहां तक ​​​​कि असेंबलर) हैं, क्योंकि बहुत कम संसाधन हैं और इन आवश्यकताओं को पूरा किया जाना चाहिए।

लेख वीडियो पर आधारित है:

सही प्रोग्रामिंग भाषा कैसे चुनें - इवान कलिनिन

वीडियो दिसंबर 2014 में फिल्माया गया था, हालांकि, सभी जानकारी प्रासंगिक है और इसकी कोई सीमा नहीं है। आज की वास्तविकताओं के दृष्टिकोण से कई सामग्रियां निस्संदेह रुचि की हैं, उदाहरण के लिए, 1950 के दशक के अंत में - 1960 के दशक की शुरुआत में वैज्ञानिकों का मानना ​​​​था कि कृत्रिम बुद्धिमत्ता पहले से ही दहलीज पर थी और इसकी मदद से प्राकृतिक कंप्यूटर पर काम करना संभव होगा। , सामान्य, मानव भाषा।

मैं प्रोग्रामिंग भाषाओं के विकास में कुछ सामान्य प्रवृत्ति को उजागर करने की अनुमति दूंगा। मैं जो कहने जा रहा हूं, उस चतुर पाठक ने शायद बहुत पहले ही अनुमान लगा लिया था। भाषाएँ अधिक से अधिक अमूर्तता की ओर विकसित हो रही हैं। और यह दक्षता में गिरावट के साथ है। सवाल यह है कि क्या अमूर्तता इसके लायक है? उत्तर: इसके लायक। यह इसके लायक है, क्योंकि अमूर्तता के स्तर में वृद्धि से प्रोग्रामिंग विश्वसनीयता के स्तर में वृद्धि होती है। तेज कंप्यूटर बनाकर कम दक्षता का मुकाबला किया जा सकता है। यदि स्मृति आवश्यकताएँ बहुत अधिक हैं, तो आप मात्रा बढ़ा सकते हैं। बेशक, इसमें समय और पैसा लगता है, लेकिन इसे हल किया जा सकता है। लेकिन कार्यक्रमों में त्रुटियों से निपटने का केवल एक ही तरीका है: उन्हें ठीक करने की आवश्यकता है। बेहतर अभी तक, प्रतिबद्ध न हों। बेहतर अभी तक, उन्हें यथासंभव कठिन बनाएं। और प्रोग्रामिंग भाषाओं के क्षेत्र में सभी शोधों का उद्देश्य यही है। और आपको दक्षता के नुकसान के साथ आना होगा।

इस समीक्षा का उद्देश्य पाठक को मौजूदा प्रोग्रामिंग भाषाओं की सभी विविधताओं का एक विचार देने का प्रयास था। किसी विशेष भाषा (सी, सी ++, पास्कल, आदि) की "सामान्य प्रयोज्यता" के बारे में प्रोग्रामर के बीच अक्सर एक राय होती है। यह राय कई कारणों से उत्पन्न होती है: जानकारी की कमी, आदत, सोच की जड़ता। मैंने पहले कारक की थोड़ी भरपाई करने की कोशिश की। बाकी के लिए, मैं केवल इतना कह सकता हूं कि एक वास्तविक पेशेवर को अपनी पेशेवर योग्यता में सुधार करने के लिए लगातार प्रयास करना चाहिए। और इसके लिए आपको एक्सपेरिमेंट करने से डरने की जरूरत नहीं है। तो क्या हुआ अगर उनके आस-पास के सभी लोग C/C++/VB/पास्कल/पर्ल/जावा/... (आवश्यक पर जोर दें) में लिखें? कुछ नया करने की कोशिश क्यों नहीं करते? क्या होगा यदि यह अधिक प्रभावी हो? बेशक, एक नई भाषा का उपयोग करने का निर्णय लेने से पहले, आपको इसकी सभी विशेषताओं का सावधानीपूर्वक अध्ययन करने की आवश्यकता है, जिसमें एक प्रभावी कार्यान्वयन की उपस्थिति, मौजूदा मॉड्यूल के साथ बातचीत करने की क्षमता आदि शामिल हैं, और उसके बाद ही कोई निर्णय लें। बेशक, गलत रास्ते पर जाने का खतरा हमेशा बना रहता है, लेकिन... जो कुछ नहीं करता, वह गलत नहीं है।

और आगे। मैंने "भाषा ए भाषा बी से बेहतर है" जैसी चर्चाओं में सुना और कभी-कभी भाग लिया है। मुझे उम्मीद है कि इस समीक्षा को पढ़ने के बाद, कई लोग इस तरह के विवादों की मूर्खता से आश्वस्त होंगे। कुछ स्थितियों में किसी विशेष समस्या को हल करते समय अधिकतम जिस पर चर्चा की जा सकती है, वह है एक भाषा का दूसरी पर लाभ। यहाँ, वास्तव में, कभी-कभी बहस करने के लिए कुछ होता है। और निर्णय कभी-कभी स्पष्ट से बहुत दूर होता है। हालांकि, "सामान्य रूप से" बहस करना स्पष्ट बकवास है।

इस लेख का उद्देश्य उन लोगों के लिए एक प्रतिक्रिया होना है जो "X MUST DIE की भाषा" चिल्लाते हैं। मुझे आशा है कि उत्तर काफी पर्याप्त और आश्वस्त करने वाला निकला। मुझे यह भी उम्मीद है कि लेख में विवादात्मक और संज्ञानात्मक मूल्य के अलावा है।

>> सामग्री

प्रोग्रामिंग लैंग्वेज कैसे आई?

प्रोग्रामिंग भाषाएं कई दशकों से बनाई गई हैं और यह काम लंबा, जटिल और थकाऊ था। वास्तव में, एक मशीनी भाषा तार्किक रूप से स्थित शून्य और लोगों की एक श्रृंखला है, जिसके अनुक्रम का उल्लंघन एक प्रोग्राम स्टॉप और एक कंप्यूटर की खराबी को शामिल करेगा, और प्रोग्रामर के लिए आवश्यकताएं जिन्होंने कमांड लिखने के नए तरीके बनाए हैं, के विकास पर निर्भर करता है मशीनें।

प्रोग्रामिंग भाषाओं का इतिहास: शुरुआत

40 के दशक की शुरुआत कार्यक्रमों के लिए पहली भाषा की उपस्थिति से चिह्नित की गई थी - असेंबलर, जिसमें कमांड में छोटे शब्दों या उनके संक्षिप्त शब्दों का एक सेट शामिल था। असेंबलर को निम्न-स्तरीय प्रोग्रामिंग भाषा माना जाता है, इसलिए इसे मशीन-उन्मुख भाषा कहा जाता है। हालाँकि, इस भाषा में लिखे गए कार्यक्रमों को उनकी दक्षता और प्रदर्शन से अलग किया जाता है।

उच्च स्तरीय भाषाएं: एल्गोरिथम भाषाएं

प्रौद्योगिकी के विकास और नए प्रकार के डिजिटल उपकरणों की शुरूआत ने प्रोग्रामर को एल्गोरिदम पर लेखन के उन्मुखीकरण के साथ एक उच्च-स्तरीय भाषा का आविष्कार करने के लिए मजबूर किया। इस प्रकार अतिरिक्त कार्यक्रम - अनुवादक दिखाई दिए, जिन्होंने एल्गोरिथम की कार्रवाई शुरू की। दो ज्ञात प्रसारण विधियां हैं:

- संकलनया संकलन, जब निर्देश पूरे प्रोग्राम पैकेज के अनुवाद के बाद सक्रिय कार्रवाई में आते हैं;

- व्याख्याया एक व्याख्या जिसमें एक मशीनी भाषा का निष्पादन और अनुवाद समकालिक तरीके से किया जाता है।

ऐसे कार्यक्रमों की विशेषताएं हैं: निर्माण में आसानी (कोड लिखना), उपयोग करते समय सही करने की क्षमता, पढ़ने में आसानी।

1954: संरचित प्रोग्रामिंग

एक बहुत ही उच्च स्तर की प्रोग्रामिंग भाषा का पहला संकलक दुनिया के लिए जाना जाने लगा। हम बात कर रहे हैं फोरट्रान की, अंग्रेजी के संक्षिप्त नाम FORmula Translator से। भाषा के विकास को सरल बनाया गया था, लेकिन बड़े कार्यक्रम लिखते समय, भाषा लगभग अपठनीय हो गई थी, हालांकि फोरट्रान के कई संस्करण जारी किए गए थे।

प्रोग्रामिंग भाषाओं के विकास का शिखर 50-60 के दशक में आता है, फिर कई विकल्प बनाए जाते हैं:

- अल्गोलो(1958), अलग-अलग ब्लॉकों के आधार पर बनाया गया;

- कोबोल(1959) - व्यापार और प्रबंधन की भाषा, सी + का आधार;

- बुनियादी(1965), जिसे आज भी प्रोग्रामर्स जानते हैं।

1970 में, एक प्रोग्रामिंग भाषा बनाई गई, जिसका नाम वैज्ञानिक बी। पास्कल - पास्कल के नाम पर रखा गया। इस भाषा में बनाए गए कार्यक्रमों को पढ़ना आसान था, और प्रशिक्षण के दौरान कोई कठिनाई नहीं हुई। एक सरल, अच्छी तरह से संरचित भाषा अभी भी इच्छुक प्रोग्रामर के बीच लोकप्रिय है।

थोड़ी देर बाद, 1972 में, एक दूसरी प्रोग्रामिंग भाषा, सी विकसित की गई, जिसमें पहले से बनाई गई भाषाओं, नवाचारों की उपलब्धियों को शामिल किया गया, यह उपयोगकर्ताओं और प्रोग्राम निर्माताओं के बीच शायद सबसे लोकप्रिय हो गई। सरल, अच्छी तरह से संरचित, सीखने में आसान सी भाषा अन्य भाषाओं के बीच पसंदीदा होती जा रही है।

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग (OOP): 1970

कार्यों के लिए प्रक्रियात्मक प्रोग्रामिंग की विचारधारा जो औपचारिक रूप से प्रसंस्करण में संबंधित नहीं हैं, ने डेवलपर्स को भाषा संकलन की एक नई अवधारणा बनाने के लिए बैठने के लिए मजबूर किया। OOP अवधारणाएँ इस पर आधारित हैं:

किसी वस्तु का मॉडल जो अभी तक अस्तित्व में नहीं है;

कक्षा का उदाहरण;

अमूर्त, किसी वस्तु को विशेषताएँ देना;

एनकैप्सुलेशन, जब डेटा छिपाने के उद्देश्य से गुणों और विधियों को जोड़ा जाता है;

विरासत;

बहुरूपता।

पहली भाषा सिमुला थी, थोड़ी देर बाद स्मॉलटाक का आविष्कार हुआ। वर्तमान में, इस प्रकार की प्रोग्रामिंग भाषा आधुनिक कार्यक्रमों द्वारा समर्थित है: ऑब्जेक्ट पास्कल (डेल्फी), सी ++, सी #, जावा।

प्रोग्रामिंग भाषाओं के विकास का क्रम नए नवाचारों की शुरूआत पर निर्भर करता है, इसलिए इंटरनेट की उपस्थिति के बाद, संसाधनों और साइटों तक पहुंचने के लिए एक भाषा की आवश्यकता थी। प्रौद्योगिकी वर्ल्ड वाइड वेब (WWW)नई भाषाओं को जीवन दिया जो अभी भी सक्रिय रूप से उपयोग की जाती हैं: जावा, पर्ल, एसक्यूएल, एचटीएमएल, पीएचपी, जावास्क्रिप्ट।



संबंधित आलेख: