प्रोग्रामिंग भाषा क्या है विभिन्न प्रकार की प्रोग्रामिंग भाषा की व्याख्या करें - prograaming bhaasha kya hai vibhinn prakaar kee prograaming bhaasha kee vyaakhya karen

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

प्रोग्रामिंग भाषा क्या है विभिन्न प्रकार की प्रोग्रामिंग भाषा की व्याख्या करें - prograaming bhaasha kya hai vibhinn prakaar kee prograaming bhaasha kee vyaakhya karen

अधिकांश प्रोग्रामिंग भाषाओं में कंप्यूटर के लिए निर्देश होते हैं । प्रोग्राम करने योग्य मशीनें हैं जो सामान्य प्रोग्रामिंग भाषाओं के बजाय विशिष्ट निर्देशों के एक सेट का उपयोग करती हैं । 1800 के दशक की शुरुआत से, मशीनों के व्यवहार को निर्देशित करने के लिए कार्यक्रमों का उपयोग किया गया है जैसे कि जैक्वार्ड लूम्स , म्यूजिक बॉक्स और प्लेयर पियानो । [१] इन मशीनों के लिए प्रोग्राम (जैसे कि एक प्लेयर पियानो के स्क्रॉल) ने अलग-अलग इनपुट या शर्तों के जवाब में अलग-अलग व्यवहार नहीं किया।

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

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

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

परिभाषाएं

एक प्रोग्रामिंग भाषा लिखने के लिए एक अंकन है कार्यक्रमों है, जो एक गणना या के विनिर्देशों हैं एल्गोरिथ्म । [२] कुछ लेखक "प्रोग्रामिंग भाषा" शब्द को उन भाषाओं तक सीमित रखते हैं जो सभी संभावित एल्गोरिदम को व्यक्त कर सकती हैं। [२] [३] एक प्रोग्रामिंग भाषा के गठन के लिए अक्सर महत्वपूर्ण माने जाने वाले लक्षणों में शामिल हैं:

कार्य और लक्ष्य एक कंप्यूटर प्रोग्रामिंग भाषा एक है भाषा लिखने के लिए इस्तेमाल किया कंप्यूटर प्रोग्राम है, जो एक शामिल कंप्यूटर गणना किसी तरह का प्रदर्शन [4] या एल्गोरिथ्म और संभवतः जैसे बाह्य उपकरणों को नियंत्रित प्रिंटर , डिस्क ड्राइव , रोबोट , [5] और इतने पर। उदाहरण के लिए, कंप्यूटर प्रिंटर या डिस्प्ले को नियंत्रित करने के लिए किसी अन्य प्रोग्राम द्वारा पोस्टस्क्रिप्ट प्रोग्राम अक्सर बनाए जाते हैं। अधिक सामान्यतः, एक प्रोग्रामिंग भाषा कुछ, संभवतः अमूर्त, मशीन पर गणना का वर्णन कर सकती है। यह आम तौर पर स्वीकार किया जाता है कि एक प्रोग्रामिंग भाषा के लिए एक पूर्ण विनिर्देश में उस भाषा के लिए एक मशीन या प्रोसेसर का विवरण, संभवतः आदर्शीकृत, शामिल होता है। [६] अधिकांश व्यावहारिक संदर्भों में, प्रोग्रामिंग भाषा में एक कंप्यूटर शामिल होता है; नतीजतन, प्रोग्रामिंग भाषाओं को आमतौर पर इस तरह परिभाषित और अध्ययन किया जाता है। [७] प्रोग्रामिंग भाषाएं प्राकृतिक भाषाओं से इस मायने में भिन्न हैं कि प्राकृतिक भाषाओं का उपयोग केवल लोगों के बीच बातचीत के लिए किया जाता है, जबकि प्रोग्रामिंग भाषाएं भी मनुष्यों को मशीनों को निर्देश संप्रेषित करने की अनुमति देती हैं। कपोल-कल्पना प्रोग्रामिंग भाषाओं में आमतौर पर डेटा संरचनाओं को परिभाषित करने और उनमें हेरफेर करने या निष्पादन के प्रवाह को नियंत्रित करने के लिए सार होते हैं । व्यावहारिक आवश्यकता है कि एक प्रोग्रामिंग भाषा पर्याप्त अमूर्तता का समर्थन करती है, अमूर्त सिद्धांत द्वारा व्यक्त की जाती है । [८] इस सिद्धांत को कभी-कभी इस तरह के सार का उचित उपयोग करने के लिए प्रोग्रामर की सिफारिश के रूप में तैयार किया जाता है। [९] अभिव्यंजक शक्ति संगणना का सिद्धांत भाषाओं को उन संगणनाओं द्वारा वर्गीकृत करता है जिन्हें वे व्यक्त करने में सक्षम हैं। सभी ट्यूरिंग-पूर्ण भाषाएं एल्गोरिदम के समान सेट को लागू कर सकती हैं । ANSI/ISO SQL-92 और चैरिटी उन भाषाओं के उदाहरण हैं जो ट्यूरिंग पूर्ण नहीं हैं, फिर भी अक्सर प्रोग्रामिंग भाषा कहलाती हैं। [१०] [११]

XML , HTML , या troff जैसी मार्कअप भाषाएं , जो संरचित डेटा को परिभाषित करती हैं, को आमतौर पर प्रोग्रामिंग भाषा नहीं माना जाता है। [१२] [१३] [१४] हालांकि, प्रोग्रामिंग भाषाएं सिंटैक्स को मार्कअप भाषाओं के साथ साझा कर सकती हैं यदि एक कम्प्यूटेशनल शब्दार्थ परिभाषित किया गया है। एक्सएसएलटी , उदाहरण के लिए, पूरी तरह से एक्सएमएल सिंटैक्स का उपयोग कर एक ट्यूरिंग पूर्ण भाषा है। [१५] [१६] [१७] इसके अलावा, LaTeX , जिसका उपयोग ज्यादातर दस्तावेजों की संरचना के लिए किया जाता है, में एक ट्यूरिंग पूर्ण उपसमुच्चय भी होता है। [१८] [१९]

कंप्यूटर भाषा शब्द को कभी-कभी प्रोग्रामिंग भाषा के साथ एक दूसरे के स्थान पर प्रयोग किया जाता है। [२०] हालांकि, दोनों शब्दों का उपयोग लेखकों के बीच भिन्न होता है, जिसमें प्रत्येक का सटीक दायरा भी शामिल है। एक प्रयोग प्रोग्रामिंग भाषाओं को कंप्यूटर भाषाओं के सबसेट के रूप में वर्णित करता है। [२१] इसी तरह, कंप्यूटिंग में उपयोग की जाने वाली भाषाएँ जिनका लक्ष्य कंप्यूटर प्रोग्रामों को व्यक्त करने से भिन्न होता है, सामान्य रूप से निर्दिष्ट कंप्यूटर भाषाएँ हैं। उदाहरण के लिए, मार्कअप भाषाओं को कभी-कभी कंप्यूटर भाषा के रूप में संदर्भित किया जाता है ताकि इस बात पर जोर दिया जा सके कि उनका उपयोग प्रोग्रामिंग के लिए नहीं किया गया है। [22]

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

इतिहास

प्रारंभिक विकास

बहुत प्रारंभिक कंप्यूटर, जैसे कि कोलोसस , को उनके सर्किटरी को संशोधित करके या भौतिक नियंत्रण के बैंकों को सेट करके, एक संग्रहीत प्रोग्राम की सहायता के बिना प्रोग्राम किया गया था।

थोड़ी देर बाद, प्रोग्राम मशीनी भाषा में लिखे जा सकते हैं , जहां प्रोग्रामर प्रत्येक निर्देश को संख्यात्मक रूप में लिखता है जिसे हार्डवेयर सीधे निष्पादित कर सकता है। उदाहरण के लिए, दो मेमोरी स्थानों में मान जोड़ने के निर्देश में 3 नंबर शामिल हो सकते हैं: एक "ऑपकोड" जो "ऐड" ऑपरेशन और दो मेमोरी लोकेशन का चयन करता है। प्रोग्राम, दशमलव या बाइनरी रूप में, कंप्यूटर के फ्रंट पैनल पर पंच कार्ड , पेपर टेप, मैग्नेटिक टेप या टॉगल ऑन स्विच से पढ़े जाते थे । मशीनी भाषाओं को बाद में पहली पीढ़ी की प्रोग्रामिंग भाषा (1GL) कहा गया।

अगला कदम तथाकथित दूसरी पीढ़ी की प्रोग्रामिंग भाषाओं (2GL) या असेंबली भाषाओं का विकास था , जो अभी भी विशिष्ट कंप्यूटर के निर्देश सेट आर्किटेक्चर से निकटता से जुड़े हुए थे । ये कार्यक्रम को और अधिक मानव-पठनीय बनाने के लिए कार्य करते थे और प्रोग्रामर को थकाऊ और त्रुटि-प्रवण पता गणनाओं से राहत देते थे।

पहली उच्च-स्तरीय प्रोग्रामिंग भाषाएँ , या तीसरी पीढ़ी की प्रोग्रामिंग भाषाएँ (3GL), 1950 के दशक में लिखी गई थीं। कंप्यूटर के लिए डिजाइन की जाने वाली एक प्रारंभिक उच्च स्तरीय प्रोग्रामिंग भाषा प्लांकलकुल थी , जिसे 1943 और 1945 के बीच कोनराड ज़ूस द्वारा जर्मन Z3 के लिए विकसित किया गया था । हालांकि, इसे 1998 और 2000 तक लागू नहीं किया गया था। [25]

1949 में प्रस्तावित जॉन मौचली का शॉर्ट कोड , इलेक्ट्रॉनिक कंप्यूटर के लिए विकसित की गई पहली उच्च-स्तरीय भाषाओं में से एक थी । [२६] मशीन कोड के विपरीत , शॉर्ट कोड स्टेटमेंट गणितीय अभिव्यक्तियों को समझने योग्य रूप में दर्शाते हैं। हालाँकि, प्रोग्राम को हर बार चलने पर मशीन कोड में अनुवाद करना पड़ता था, जिससे प्रक्रिया समान मशीन कोड को चलाने की तुलना में बहुत धीमी हो जाती थी।

पर मैनचेस्टर विश्वविद्यालय , एलिक ग्लेनी विकसित Autocode 1950 के दशक में। एक प्रोग्रामिंग भाषा के रूप में , इसने भाषा को मशीन कोड में स्वचालित रूप से परिवर्तित करने के लिए एक कंपाइलर का उपयोग किया । पहला कोड और कंपाइलर 1952 में मैनचेस्टर विश्वविद्यालय में मार्क 1 कंप्यूटर के लिए विकसित किया गया था और इसे पहली संकलित उच्च-स्तरीय प्रोग्रामिंग भाषा माना जाता है । [27] [28]

दूसरा ऑटोकोड 1954 में आरए ब्रूकर द्वारा मार्क 1 के लिए विकसित किया गया था और इसे "मार्क 1 ऑटोकोड" कहा जाता था। ब्रूकर ने 1950 के दशक में मैनचेस्टर विश्वविद्यालय के साथ मिलकर फेरांती मर्करी के लिए एक ऑटोकोड भी विकसित किया । के लिए संस्करण एडसैक 2 द्वारा तैयार किया गया था DF हार्टले की कैम्ब्रिज गणितीय प्रयोगशाला विश्वविद्यालय 1961 एडसैक 2 Autocode रूप में जाना जाता है, यह बुध Autocode से एक सीधी विकास स्थानीय परिस्थितियों के लिए अनुकूलित और उसके ऑब्जेक्ट कोड अनुकूलन और स्रोत-भाषा के लिए उल्लेख किया गया था निदान जो उस समय के लिए उन्नत थे। मैनचेस्टर एटलस 1 मशीन के विश्वविद्यालय के लिए एक समकालीन लेकिन विकास का अलग धागा, एटलस ऑटोकोड विकसित किया गया था ।

1954 में, जॉन बैकस द्वारा आईबीएम में फोरट्रान का आविष्कार किया गया था । कागज पर सिर्फ एक डिजाइन के विपरीत, कार्यात्मक कार्यान्वयन के लिए यह पहली व्यापक रूप से इस्तेमाल की जाने वाली उच्च-स्तरीय सामान्य प्रयोजन प्रोग्रामिंग भाषा थी। [२९] [३०] यह अभी भी उच्च-प्रदर्शन कंप्यूटिंग के लिए एक लोकप्रिय भाषा है [३१] और इसका उपयोग उन कार्यक्रमों के लिए किया जाता है जो दुनिया के सबसे तेज सुपर कंप्यूटरों को बेंचमार्क और रैंक करते हैं । [32]

अमेरिका में ग्रेस हॉपर द्वारा एक और प्रारंभिक प्रोग्रामिंग भाषा तैयार की गई , जिसे फ्लो-मैटिक कहा जाता है । यह के लिए विकसित किया गया था UNIVAC मैं पर रेमिंगटन रैंड तक 1959 हूपर ने पाया कि व्यापार डेटा संसाधित ग्राहकों गणितीय संकेतन के साथ असहज थे 1955 से इस अवधि के दौरान, और जल्दी 1955 को, वह और उसकी टीम एक के लिए एक विनिर्देश लिखा अंग्रेजी प्रोग्रामिंग भाषा और कार्यान्वित एक प्रोटोटाइप। [३३] फ्लो-मैटिक कंपाइलर १९५८ की शुरुआत में सार्वजनिक रूप से उपलब्ध हो गया और १९५९ में काफी हद तक पूरा हो गया। [३४] कोबोल के डिजाइन में फ्लो-मैटिक का एक बड़ा प्रभाव था , क्योंकि केवल यह और इसके प्रत्यक्ष वंशज एआईएमएसीओ वास्तविक उपयोग में थे। समय। [35]

शोधन

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

१९६० के दशक से १९७० के दशक के अंत तक की अवधि में अब उपयोग में आने वाले प्रमुख भाषा प्रतिमानों का विकास हुआ:

  • एपीएल ने सरणी प्रोग्रामिंग की शुरुआत की और कार्यात्मक प्रोग्रामिंग को प्रभावित किया । [36]
  • ALGOL ने संरचित प्रक्रियात्मक प्रोग्रामिंग और भाषा विनिर्देश के अनुशासन दोनों को परिष्कृत किया ; "एल्गोरिथम भाषा ALGOL 60 पर संशोधित रिपोर्ट " बाद में भाषा विनिर्देशों को कैसे लिखा गया, इसके लिए एक मॉडल बन गया।
  • 1958 में कार्यान्वित लिस्प , पहली गतिशील रूप से टाइप की जाने वाली कार्यात्मक प्रोग्रामिंग भाषा थी।
  • 1960 के दशक में, सिमुला पहली भाषा थी जिसे ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग का समर्थन करने के लिए डिज़ाइन किया गया था ; 1970 के दशक के मध्य में, स्मॉलटाक ने पहली "विशुद्ध रूप से" वस्तु-उन्मुख भाषा का अनुसरण किया।
  • C को 1969 और 1973 के बीच यूनिक्स ऑपरेटिंग सिस्टम के लिए सिस्टम प्रोग्रामिंग लैंग्वेज के रूप में विकसित किया गया था और यह लोकप्रिय बना हुआ है। [37]
  • 1972 में डिजाइन किया गया प्रोलॉग , पहली लॉजिक प्रोग्रामिंग लैंग्वेज थी।
  • 1978 में, एमएल ने लिस्प के शीर्ष पर एक बहुरूपी प्रकार की प्रणाली का निर्माण किया , जो सांख्यिकीय रूप से टाइप की गई कार्यात्मक प्रोग्रामिंग भाषाओं को अग्रणी बनाती है ।

इनमें से प्रत्येक भाषा ने वंशजों को जन्म दिया, और अधिकांश आधुनिक प्रोग्रामिंग भाषाओं में से कम से कम एक को उनके वंश में गिना जाता है।

1960 और 1970 के दशक में भी संरचित प्रोग्रामिंग के गुणों पर काफी बहस हुई , और क्या प्रोग्रामिंग भाषाओं को इसका समर्थन करने के लिए डिज़ाइन किया जाना चाहिए। [३८] एड्सगर डिजस्ट्रा ने एसीएम के संचार में प्रकाशित एक प्रसिद्ध १९६८ पत्र में तर्क दिया कि गोटो के बयानों को सभी "उच्च स्तरीय" प्रोग्रामिंग भाषाओं से हटा दिया जाना चाहिए। [39]

समेकन और विकास

लोकप्रिय और अस्पष्ट दोनों भाषाओं में प्रोग्रामिंग सिखाने वाली पाठ्यपुस्तकों का चयन। ये हजारों प्रोग्रामिंग भाषाओं और बोलियों में से कुछ ही हैं जिन्हें इतिहास में डिजाइन किया गया है।

1980 के दशक सापेक्ष समेकन के वर्ष थे। सी ++ संयुक्त वस्तु-उन्मुख और सिस्टम प्रोग्रामिंग। संयुक्त राज्य सरकार ने एडा को मानकीकृत किया , एक सिस्टम प्रोग्रामिंग भाषा जो पास्कल से ली गई है और रक्षा ठेकेदारों द्वारा उपयोग के लिए अभिप्रेत है। जापान और अन्य जगहों पर, तथाकथित "पांचवीं पीढ़ी" भाषाओं की जांच में बड़ी रकम खर्च की गई, जिसमें तर्क प्रोग्रामिंग संरचनाएं शामिल थीं । [४०] कार्यात्मक भाषा समुदाय एमएल और लिस्प को मानकीकृत करने के लिए चले गए । नए प्रतिमानों का आविष्कार करने के बजाय, इन सभी आंदोलनों ने पिछले दशकों में आविष्कार किए गए विचारों पर विस्तार से बताया।

1980 के दशक के दौरान बड़े पैमाने की प्रणालियों की प्रोग्रामिंग के लिए भाषा डिजाइन में एक महत्वपूर्ण प्रवृत्ति मॉड्यूल या कोड के बड़े पैमाने पर संगठनात्मक इकाइयों के उपयोग पर अधिक ध्यान केंद्रित करना था । 1980 के दशक में मोडुला -2 , एडा और एमएल सभी ने उल्लेखनीय मॉड्यूल सिस्टम विकसित किए, जिन्हें अक्सर सामान्य प्रोग्रामिंग निर्माणों से जोड़ा जाता था। [41]

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

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

चौथी पीढ़ी की प्रोग्रामिंग भाषाएं (4GL) कंप्यूटर प्रोग्रामिंग भाषाएं हैं जिनका उद्देश्य 3GL की तुलना में आंतरिक कंप्यूटर हार्डवेयर विवरण का उच्च स्तर का अमूर्तन प्रदान करना है। पांचवीं पीढ़ी की प्रोग्रामिंग भाषाएं (5GL)एक प्रोग्रामर द्वारा लिखित एल्गोरिथम का उपयोग करने के बजाय, प्रोग्राम को दी गई बाधाओं का उपयोग करके समस्याओं को हल करने पर आधारित प्रोग्रामिंग भाषाएं हैं।

तत्वों

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

वाक्य - विन्यास

प्रोग्रामिंग भाषा क्या है विभिन्न प्रकार की प्रोग्रामिंग भाषा की व्याख्या करें - prograaming bhaasha kya hai vibhinn prakaar kee prograaming bhaasha kee vyaakhya karen

इनसेट टोकननाइजेशन के साथ पायथन कोड का पार्स ट्री

प्रोग्रामिंग भाषा क्या है विभिन्न प्रकार की प्रोग्रामिंग भाषा की व्याख्या करें - prograaming bhaasha kya hai vibhinn prakaar kee prograaming bhaasha kee vyaakhya karen

स्रोत कोड के तत्वों को पहचानने में प्रोग्रामर की सहायता के लिए अक्सर सिंटैक्स हाइलाइटिंग का उपयोग किया जाता है। उपरोक्त भाषा पायथन है ।

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

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

प्रोग्रामिंग लैंग्वेज सिंटैक्स को आमतौर पर रेगुलर एक्सप्रेशन ( लेक्सिकल स्ट्रक्चर के लिए) और बैकस-नौर फॉर्म ( व्याकरणिक स्ट्रक्चर के लिए) के संयोजन का उपयोग करके परिभाषित किया जाता है । लिस्प पर आधारित एक सरल व्याकरण नीचे दिया गया है :

अभिव्यक्ति ::= परमाणु | सूचीपरमाणु ::= संख्या | प्रतीकसंख्या ::= [+-]?['0'-'9']+प्रतीक ::= ['ए'-'जेड''ए'-'जेड']।*सूची ::= '(' अभिव्यक्ति * ')'

यह व्याकरण निम्नलिखित निर्दिष्ट करता है:

  • एक व्यंजक या तो एक परमाणु या एक सूची है ;
  • एक परमाणु या तो एक संख्या या एक प्रतीक है ;
  • एक संख्या एक या अधिक दशमलव अंकों का एक अखंड अनुक्रम है, वैकल्पिक रूप से प्लस या माइनस चिह्न से पहले;
  • एक प्रतीक एक अक्षर है जिसके बाद शून्य या अधिक वर्ण होते हैं (व्हाट्सएप को छोड़कर); तथा
  • एक सूची कोष्ठकों की एक मिलान जोड़ी है, जिसके अंदर शून्य या अधिक भाव हैं।

इस व्याकरण में अच्छी तरह से गठित टोकन अनुक्रमों के उदाहरण निम्नलिखित हैं: 12345, ()तथा (a b c232 (1))

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

एक उदाहरण के रूप में प्राकृतिक भाषा का प्रयोग करना , व्याकरणिक रूप से सही वाक्य को अर्थ निर्दिष्ट करना संभव नहीं हो सकता है या वाक्य गलत हो सकता है:

  • " रंगहीन हरे रंग के विचार उग्र रूप से सोते हैं ।" व्याकरणिक रूप से अच्छी तरह से गठित है लेकिन इसका कोई आम तौर पर स्वीकृत अर्थ नहीं है।
  • "जॉन एक विवाहित कुंवारा है।" व्याकरणिक रूप से अच्छी तरह से बनाया गया है लेकिन एक अर्थ व्यक्त करता है जो सच नहीं हो सकता।

निम्नलिखित सी भाषा टुकड़ा वाक्य रचना सही है, लेकिन प्रदर्शन के संचालन कि अर्थ की दृष्टि से परिभाषित नहीं कर रहे हैं (आपरेशन *p >> 4जटिल प्रकार के होने एक मूल्य के लिए कोई मतलब नहीं है और p->imपरिभाषित नहीं है की वजह से मूल्य pहै नल पॉइंटर ):

जटिल  * पी  =  न्यूल ; जटिल  abs_p  =  sqrt ( * p  >>  4  +  p -> im );

यदि पहली पंक्ति पर प्रकार की घोषणा को छोड़ दिया गया था, तो प्रोग्राम संकलन के दौरान अपरिभाषित चर "पी" पर एक त्रुटि को ट्रिगर करेगा। हालांकि, प्रोग्राम अभी भी वाक्य रचनात्मक रूप से सही होगा क्योंकि प्रकार की घोषणाएं केवल अर्थ संबंधी जानकारी प्रदान करती हैं।

प्रोग्रामिंग भाषा को निर्दिष्ट करने के लिए आवश्यक व्याकरण को चॉम्स्की पदानुक्रम में अपनी स्थिति के आधार पर वर्गीकृत किया जा सकता है । अधिकांश प्रोग्रामिंग भाषाओं के सिंटैक्स को टाइप -2 व्याकरण का उपयोग करके निर्दिष्ट किया जा सकता है, अर्थात, वे संदर्भ-मुक्त व्याकरण हैं । [४२] पर्ल और लिस्प सहित कुछ भाषाओं में ऐसे निर्माण होते हैं जो पार्सिंग चरण के दौरान निष्पादन की अनुमति देते हैं। जिन भाषाओं में रचनाएँ होती हैं जो प्रोग्रामर को पार्सर के व्यवहार को बदलने की अनुमति देती हैं, वाक्य रचना विश्लेषण को एक अपरिहार्य समस्या बनाती हैं , और आम तौर पर पार्सिंग और निष्पादन के बीच के अंतर को धुंधला करती हैं। [४३] लिस्प के मैक्रो सिस्टम और पर्ल के BEGINब्लॉकों के विपरीत , जिसमें सामान्य गणनाएं हो सकती हैं, सी मैक्रोज़ केवल स्ट्रिंग प्रतिस्थापन हैं और कोड निष्पादन की आवश्यकता नहीं है। [44]

अर्थ विज्ञान

शब्दार्थ शब्द का अर्थ भाषाओं के अर्थ से है, उनके रूप ( वाक्यविन्यास ) के विपरीत ।

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

स्थैतिक शब्दार्थ मान्य ग्रंथों की संरचना पर प्रतिबंधों को परिभाषित करता है जो मानक वाक्यात्मक औपचारिकताओं में व्यक्त करना कठिन या असंभव है। [२] संकलित भाषाओं के लिए, स्थैतिक शब्दार्थ में अनिवार्य रूप से वे शब्दार्थ नियम शामिल होते हैं जिन्हें संकलन समय पर जाँचा जा सकता है। उदाहरणों में यह जांचना शामिल है कि प्रत्येक पहचानकर्ता को उपयोग करने से पहले घोषित किया जाता है (उन भाषाओं में जिन्हें इस तरह की घोषणाओं की आवश्यकता होती है) या केस स्टेटमेंट की बाहों पर लेबल अलग होते हैं। [४५] इस प्रकार के कई महत्वपूर्ण प्रतिबंध, जैसे कि पहचानकर्ताओं का उपयुक्त संदर्भ में उपयोग किया जाता है (उदाहरण के लिए किसी फ़ंक्शन नाम में पूर्णांक नहीं जोड़ना), या यह कि सबरूटीन कॉल में उपयुक्त संख्या और प्रकार के तर्क हैं, को परिभाषित करके लागू किया जा सकता है उन्हें एक तर्क में नियम के रूप में कहा जाता है जिसे एक प्रकार प्रणाली कहा जाता है । डेटा प्रवाह विश्लेषण जैसे स्थिर विश्लेषण के अन्य रूप भी स्थिर शब्दार्थ का हिस्सा हो सकते हैं। की तरह नई प्रोग्रामिंग भाषाओं जावा और सी # है निश्चित काम विश्लेषण , डेटा के एक फार्म प्रवाह विश्लेषण, उनके स्थिर अर्थ विज्ञान के भाग के रूप।

गतिशील शब्दार्थ

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

सिस्टम टाइप करें

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

टाइप की गई बनाम अलिखित भाषाएं

एक भाषा टाइप की जाती है यदि प्रत्येक ऑपरेशन का विनिर्देश डेटा के प्रकार को परिभाषित करता है जिस पर ऑपरेशन लागू होता है। [४६] उदाहरण के लिए, द्वारा दर्शाया गया डेटा "this text between the quotes"एक स्ट्रिंग है , और कई प्रोग्रामिंग भाषाओं में एक संख्या को एक स्ट्रिंग से विभाजित करने का कोई अर्थ नहीं है और इसे निष्पादित नहीं किया जाएगा। अमान्य संचालन का पता तब लगाया जा सकता है जब प्रोग्राम को संकलित किया जाता है ("स्थिर" प्रकार की जाँच) और संकलन त्रुटि संदेश के साथ संकलक द्वारा अस्वीकार कर दिया जाएगा, या प्रोग्राम के चलने के दौरान इसका पता लगाया जा सकता है ("गतिशील" प्रकार की जाँच), जिसके परिणामस्वरूप रन-टाइम अपवाद में । कई भाषाएं इस अपवाद को संभालने के लिए एक अपवाद हैंडलर नामक फ़ंक्शन की अनुमति देती हैं और, उदाहरण के लिए, परिणाम के रूप में हमेशा "-1" लौटाएं।

टाइप की गई भाषाओं का एक विशेष मामला एकल-टाइप की गई भाषाएं हैं। ये अक्सर स्क्रिप्टिंग या मार्कअप भाषाएं होती हैं, जैसे कि REXX या SGML , और इनमें केवल एक डेटा प्रकार [ संदिग्ध - चर्चा ] होता है - सबसे सामान्य रूप से वर्ण स्ट्रिंग्स जो प्रतीकात्मक और संख्यात्मक डेटा दोनों के लिए उपयोग की जाती हैं।

इसके विपरीत, बिना टाइप की गई भाषा , जैसे कि अधिकांश असेंबली भाषाएं , किसी भी डेटा पर किसी भी ऑपरेशन को करने की अनुमति देती हैं, आम तौर पर विभिन्न लंबाई के बिट्स के अनुक्रम। [४६] उच्च-स्तरीय गैर-टाइप की गई भाषाओं में बीसीपीएल , टीसीएल , और फोर्थ की कुछ किस्में शामिल हैं ।

व्यवहार में, जबकि कुछ भाषाओं को टाइप थ्योरी से टाइप किया गया माना जाता है (सभी कार्यों को सत्यापित या अस्वीकार करना), अधिकांश आधुनिक भाषाएं टाइपिंग की एक डिग्री प्रदान करती हैं। [४६] कई प्रोडक्शन लैंग्वेज प्रोग्राम के निष्पादन पर बेहतर नियंत्रण के लिए टाइप सिस्टम, ट्रेडिंग टाइप-सेफ्टी को बायपास या सबवर्ट करने के साधन प्रदान करती हैं ( कास्टिंग देखें )।

स्थिर बनाम गतिशील टाइपिंग

में स्थिर टाइपिंग , सभी भाव उनके प्रकार, जब कार्यक्रम क्रियान्वित किया जाता है से पहले निर्धारित आम तौर पर संकलन समय पर की है। उदाहरण के लिए, 1 और (2+2) पूर्णांक व्यंजक हैं; उन्हें ऐसे फ़ंक्शन में पास नहीं किया जा सकता है जो एक स्ट्रिंग की अपेक्षा करता है, या एक वेरिएबल में संग्रहीत होता है जिसे तिथियों को पकड़ने के लिए परिभाषित किया जाता है। [46]

सांख्यिकीय रूप से टाइप की गई भाषाएं या तो स्पष्ट रूप से टाइप की जा सकती हैं या टाइप-अनुमानित । पहले मामले में, प्रोग्रामर को कुछ पाठ्य पदों पर स्पष्ट रूप से प्रकार लिखना चाहिए (उदाहरण के लिए, चर घोषणाओं पर )। दूसरे मामले में, संकलक संदर्भ के आधार पर अभिव्यक्तियों और घोषणाओं के प्रकारों का अनुमान लगाता है। अधिकांश मुख्यधारा की सांख्यिकीय रूप से टाइप की जाने वाली भाषाएँ, जैसे C++ , C# और Java , स्पष्ट रूप से टाइप की जाती हैं। पूर्ण प्रकार का अनुमान परंपरागत रूप से कम मुख्यधारा की भाषाओं से जुड़ा हुआ है, जैसे हास्केल और एमएल । हालांकि, कई स्पष्ट रूप से टाइप की गई भाषाएं आंशिक प्रकार के अनुमान का समर्थन करती हैं; उदाहरण के लिए, सी ++ , जावा और सी # कुछ सीमित मामलों में सभी प्रकार के अनुमान लगाते हैं। [४७] इसके अतिरिक्त, कुछ प्रोग्रामिंग भाषाएं कुछ प्रकारों को स्वचालित रूप से अन्य प्रकारों में परिवर्तित करने की अनुमति देती हैं; उदाहरण के लिए, एक int का उपयोग किया जा सकता है जहां प्रोग्राम एक फ्लोट की अपेक्षा करता है।

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

कमजोर और मजबूत टाइपिंग

कमजोर टाइपिंग एक प्रकार के मान को दूसरे के रूप में मानने की अनुमति देती है, उदाहरण के लिए एक स्ट्रिंग को एक संख्या के रूप में मानना। [४६] यह कभी-कभी उपयोगी हो सकता है, लेकिन यह कुछ प्रकार के प्रोग्राम दोषों को संकलन समय पर और यहां तक ​​कि रन टाइम पर भीअनदेखा कर सकता है ।

मजबूत टाइपिंग इन प्रोग्राम दोषों को रोकता है। गलत प्रकार के मान पर एक ऑपरेशन करने का प्रयास एक त्रुटि उत्पन्न करता है। [४६] सशक्त रूप से टाइप की जाने वाली भाषाओं को अक्सर सुरक्षित या सुरक्षित कहा जाता है।

"कमजोर टाइप" के लिए एक वैकल्पिक परिभाषा पर्ल और जावास्क्रिप्ट जैसी भाषाओं को संदर्भित करती है , जो बड़ी संख्या में निहित प्रकार के रूपांतरणों की अनुमति देती है। जावास्क्रिप्ट में, उदाहरण के लिए, अभिव्यक्ति 2 * xपरोक्ष रूप xसे एक संख्या में परिवर्तित हो जाती है, और यह रूपांतरण सफल होता xहै null, भले ही , undefined, Arraya , या अक्षरों की एक स्ट्रिंग हो। ऐसे निहित रूपांतरण अक्सर उपयोगी होते हैं, लेकिन वे प्रोग्रामिंग त्रुटियों को छुपा सकते हैं। मजबूत और स्थिर अब आम तौर पर ऑर्थोगोनल अवधारणाएं मानी जाती हैं, लेकिन साहित्य में उपयोग अलग है। कुछ उपयोग अवधि दृढ़ता से टाइप किया मतलब करने के लिए दृढ़ता से स्थिर टाइप किया , या, और भी अधिक संदेहास्पद रूप से मतलब करने के लिए बस स्थिर टाइप किया । इस प्रकार सी को दृढ़ता से टाइप किया गया और कमजोर रूप से, स्थिर रूप से टाइप किया गया कहा गया है। [४८] [४९]

कुछ पेशेवर प्रोग्रामर के लिए यह अजीब लग सकता है कि सी "कमजोर, स्थिर रूप से टाइप किया गया" हो सकता है। हालांकि, ध्यान दें कि जेनेरिक पॉइंटर, शून्य * पॉइंटर का उपयोग, स्पष्ट कास्ट करने की आवश्यकता के बिना पॉइंटर्स को अन्य पॉइंटर्स पर कास्टिंग करने की अनुमति देता है। यह किसी भी तरह से स्पष्ट कलाकारों का उपयोग किए बिना सी में किसी भी प्रकार के डेटाटाइप में बाइट्स की सरणी कास्टिंग करने के समान ही है, जैसे (int)या (char)

मानक पुस्तकालय और रन-टाइम सिस्टम

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

एक भाषा और उसके मूल पुस्तकालय के बीच की रेखा एक भाषा से दूसरी भाषा में भिन्न होती है। कुछ मामलों में, भाषा डिजाइनर पुस्तकालय को भाषा से अलग इकाई के रूप में मान सकते हैं। हालाँकि, किसी भाषा के मूल पुस्तकालय को अक्सर उसके उपयोगकर्ताओं द्वारा भाषा के हिस्से के रूप में माना जाता है, और कुछ भाषा विनिर्देशों के लिए यह भी आवश्यक है कि यह पुस्तकालय सभी कार्यान्वयनों में उपलब्ध कराया जाए। वास्तव में, कुछ भाषाओं को इस तरह से डिज़ाइन किया गया है कि कुछ वाक्यात्मक निर्माणों के अर्थों को मूल पुस्तकालय का उल्लेख किए बिना भी वर्णित नहीं किया जा सकता है। उदाहरण के लिए, जावा में , एक स्ट्रिंग अक्षर को java.lang.Stringवर्ग के उदाहरण के रूप में परिभाषित किया गया है ; इसी तरह, स्मॉलटाक में , एक अनाम फ़ंक्शन एक्सप्रेशन (एक "ब्लॉक") पुस्तकालय की BlockContextकक्षा का एक उदाहरण बनाता है। इसके विपरीत, योजना में कई सुसंगत उपसमुच्चय होते हैं जो बाकी भाषा को पुस्तकालय मैक्रोज़ के रूप में बनाने के लिए पर्याप्त होते हैं, और इसलिए भाषा डिजाइनर यह कहने की जहमत नहीं उठाते कि भाषा के किन हिस्सों को भाषा निर्माण के रूप में लागू किया जाना चाहिए, और जिन्हें भागों के रूप में लागू किया जाना चाहिए। एक पुस्तकालय का।

डिज़ाइन और सुधार

प्रोग्रामिंग भाषाएं संचार के लिए वाहन के रूप में अपने उद्देश्य से संबंधित प्राकृतिक भाषाओं के साथ गुणों को साझा करती हैं, एक वाक्य-विन्यास रूप इसके शब्दार्थ से अलग होता है, और संबंधित भाषाओं के भाषा परिवारों को एक से दूसरे में विभाजित करता है । [५०] [५१] लेकिन कृत्रिम निर्माण के रूप में, वे उपयोग के माध्यम से विकसित होने वाली भाषाओं से मौलिक तरीकों से भी भिन्न हैं। एक महत्वपूर्ण अंतर यह है कि एक प्रोग्रामिंग भाषा को पूरी तरह से वर्णित और अध्ययन किया जा सकता है क्योंकि इसकी एक सटीक और सीमित परिभाषा है। [५२] इसके विपरीत, प्राकृतिक भाषाओं के अलग-अलग समुदायों में उनके उपयोगकर्ताओं द्वारा दिए गए अर्थ बदलते हैं। जबकि निर्मित भाषाएं भी एक विशिष्ट उद्देश्य के साथ जमीन से तैयार की गई कृत्रिम भाषाएं हैं, उनमें एक प्रोग्रामिंग भाषा की सटीक और पूर्ण अर्थ परिभाषा का अभाव है।

कई प्रोग्रामिंग भाषाओं को नए सिरे से डिजाइन किया गया है, नई जरूरतों को पूरा करने के लिए बदल दिया गया है, और अन्य भाषाओं के साथ जोड़ा गया है। कई अंततः अनुपयोगी हो गए हैं। यद्यपि एक "सार्वभौमिक" प्रोग्रामिंग भाषा को डिजाइन करने का प्रयास किया गया है जो सभी उद्देश्यों की पूर्ति करता है, वे सभी इस भूमिका को भरने के रूप में आम तौर पर स्वीकार करने में विफल रहे हैं। [५३] विविध प्रोग्रामिंग भाषाओं की आवश्यकता उन संदर्भों की विविधता से उत्पन्न होती है जिनमें भाषाओं का उपयोग किया जाता है:

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

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

प्राकृतिक भाषा प्रोग्रामिंग को प्रोग्रामिंग के लिए एक विशेष भाषा की आवश्यकता को समाप्त करने के तरीके के रूप में प्रस्तावित किया गया है। हालाँकि, यह लक्ष्य दूर रहता है और इसके लाभों पर बहस हो सकती है। Edsger W. Dijkstra ने यह स्थिति ली कि अर्थहीन निर्माणों की शुरूआत को रोकने के लिए औपचारिक भाषा का उपयोग आवश्यक है, और प्राकृतिक भाषा प्रोग्रामिंग को "मूर्खतापूर्ण" के रूप में खारिज कर दिया । [५५] एलन पर्लिस इसी तरह इस विचार को खारिज कर रहे थे। [५६] स्ट्रक्चर्ड इंग्लिश और एसक्यूएल में हाइब्रिड दृष्टिकोण अपनाया गया है ।

एक भाषा के डिजाइनरों और उपयोगकर्ताओं को प्रोग्रामिंग के अभ्यास को नियंत्रित और सक्षम करने वाली कई कलाकृतियों का निर्माण करना चाहिए। इन कलाकृतियों में सबसे महत्वपूर्ण भाषा विनिर्देश और कार्यान्वयन हैं ।

विनिर्देश

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

एक प्रोग्रामिंग भाषा विनिर्देश निम्नलिखित सहित कई रूप ले सकता है:

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

कार्यान्वयन

एक प्रोग्रामिंग भाषा का कार्यान्वयन उस भाषा में प्रोग्राम लिखने और उन्हें हार्डवेयर और सॉफ़्टवेयर के एक या अधिक कॉन्फ़िगरेशन पर निष्पादित करने का एक तरीका प्रदान करता है। प्रोग्रामिंग भाषा के कार्यान्वयन के लिए मोटे तौर पर दो दृष्टिकोण हैं: संकलन और व्याख्या । किसी भी तकनीक का उपयोग करके किसी भाषा को लागू करना आम तौर पर संभव है।

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

प्रोग्राम जो सीधे हार्डवेयर पर निष्पादित होते हैं, आमतौर पर सॉफ़्टवेयर में व्याख्या किए गए प्रोग्राम की तुलना में बहुत तेज़ चलते हैं। [६०] [ बेहतर स्रोत की जरूरत ]

व्याख्या किए गए कार्यक्रमों के प्रदर्शन में सुधार के लिए एक तकनीक समय-समय पर संकलन है । यहां वर्चुअल मशीन , निष्पादन से ठीक पहले, बायटेकोड के ब्लॉक का अनुवाद करती है जो हार्डवेयर पर सीधे निष्पादन के लिए मशीन कोड में उपयोग किए जाने वाले हैं।

मालिकाना भाषाएं

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

कुछ प्रोग्रामिंग भाषाएं मालिकाना और खुले के बीच की सीमा पर मौजूद हैं; उदाहरण के लिए, Oracle कार्पोरेशन जावा प्रोग्रामिंग भाषा के कुछ पहलुओं पर स्वामित्व अधिकारों का दावा करता है , [६१] और माइक्रोसॉफ्ट की C# प्रोग्रामिंग भाषा, जिसमें सिस्टम के अधिकांश हिस्सों का खुला कार्यान्वयन है, में एक बंद के रूप में सामान्य भाषा रनटाइम (CLR) भी है। वातावरण। [62]

कई स्वामित्व वाली भाषाओं का व्यापक रूप से उपयोग किया जाता है, उनकी स्वामित्व प्रकृति के बावजूद; उदाहरणों में शामिल हैं MATLAB , VBScript , और Wolfram Language । कुछ भाषाएं बंद से खुले में संक्रमण कर सकती हैं; उदाहरण के लिए, एरलांग मूल रूप से एरिक्सन की आंतरिक प्रोग्रामिंग भाषा थी। [63]

प्रयोग करें

मुख्य रूप से कंप्यूटिंग क्षेत्र में हजारों विभिन्न प्रोग्रामिंग भाषाएं बनाई गई हैं। [६४] व्यक्तिगत सॉफ्टवेयर परियोजनाएं आमतौर पर पांच या अधिक प्रोग्रामिंग भाषाओं का उपयोग करती हैं। [65]

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

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

कंप्यूटर के लिए प्रोग्राम मानव संपर्क के बिना बैच प्रक्रिया में निष्पादित किए जा सकते हैं , या उपयोगकर्ता किसी दुभाषिया के इंटरैक्टिव सत्र में कमांड टाइप कर सकता है । इस मामले में "कमांड" केवल प्रोग्राम होते हैं, जिनका निष्पादन एक साथ जंजीर में होता है। जब कोई भाषा किसी दुभाषिया (जैसे यूनिक्स शेल या अन्य कमांड-लाइन इंटरफ़ेस ) के माध्यम से अपने आदेश चला सकती है , बिना संकलन के, इसे स्क्रिप्टिंग भाषा कहा जाता है । [67]

भाषा के उपयोग को मापना

यह निर्धारित करना कि सबसे व्यापक रूप से उपयोग की जाने वाली प्रोग्रामिंग भाषा कौन सी है, क्योंकि उपयोग की परिभाषा संदर्भ के अनुसार भिन्न होती है। एक भाषा अधिक से अधिक प्रोग्रामर घंटों पर कब्जा कर सकती है, एक अलग में कोड की अधिक लाइनें होती हैं, और एक तिहाई सबसे अधिक CPU समय का उपभोग कर सकता है। कुछ भाषाएँ विशेष प्रकार के अनुप्रयोगों के लिए बहुत लोकप्रिय हैं। उदाहरण के लिए, कॉर्पोरेट डेटा सेंटर में COBOL अभी भी मजबूत है, अक्सर बड़े मेनफ्रेम पर ; [६८] [६९] वैज्ञानिक और इंजीनियरिंग अनुप्रयोगों में फोरट्रान ; एयरोस्पेस, परिवहन, सैन्य, वास्तविक समय और एम्बेडेड अनुप्रयोगों में एडीए ; और सी एम्बेडेड अनुप्रयोगों और ऑपरेटिंग सिस्टम में। कई अलग-अलग प्रकार के एप्लिकेशन लिखने के लिए अन्य भाषाओं का नियमित रूप से उपयोग किया जाता है।

भाषा की लोकप्रियता को मापने के विभिन्न तरीकों का प्रस्ताव किया गया है, प्रत्येक विषय जो मापा जाता है उस पर एक अलग पूर्वाग्रह के लिए प्रस्तावित किया गया है:

  • भाषा का उल्लेख करने वाले नौकरी के विज्ञापनों की संख्या की गणना करना [70]
  • बेची गई पुस्तकों की संख्या जो भाषा सिखाती या वर्णन करती है [71]
  • भाषा में लिखे गए कोड की मौजूदा पंक्तियों की संख्या का अनुमान - जो सार्वजनिक खोजों में अक्सर नहीं पाई जाने वाली भाषाओं को कम आंक सकता है [72]
  • वेब खोज इंजन का उपयोग करते हुए पाए गए भाषा संदर्भों की संख्या (अर्थात, भाषा के नाम पर)।

विभिन्न इंटरनेट साइटों से जानकारी का संयोजन और औसत, stackify.com ने दस सबसे लोकप्रिय प्रोग्रामिंग भाषाओं की सूचना दी (समग्र लोकप्रियता के अवरोही क्रम में): जावा , सी , सी ++ , पायथन , सी # , जावास्क्रिप्ट , वीबी .NET , आर , पीएचपी , और मैटलैब । [73]

बोलियां, स्वाद और कार्यान्वयन

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

फोर्थ बोलियों के विस्फोट ने कहा, "यदि आपने एक फोर्थ देखा है ... आपने एक फोर्थ देखा है ।"

taxonomies

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

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

व्यापक स्ट्रोक में, प्रोग्रामिंग भाषाओं में विभाजित मानदंड प्रोग्रामिंग द्वारा और एक वर्गीकरण उपयोग की इरादा डोमेन, साथ सामान्य प्रयोजन प्रोग्रामिंग भाषाओं से प्रतिष्ठित डोमेन-विशिष्ट प्रोग्रामिंग भाषाओं । परंपरागत रूप से, प्रोग्रामिंग भाषाओं को अनिवार्य वाक्यों के संदर्भ में गणना का वर्णन करने के रूप में माना जाता है, अर्थात आदेश जारी करना। इन्हें आम तौर पर अनिवार्य प्रोग्रामिंग भाषा कहा जाता है । प्रोग्रामिंग भाषाओं में अनुसंधान के एक बड़े सौदे का उद्देश्य एक प्रोग्राम के बीच के अंतर को निर्देशों के एक सेट के रूप में और एक प्रोग्राम को वांछित उत्तर के बारे में एक अभिकथन के रूप में धुंधला करना है, जो कि घोषणात्मक प्रोग्रामिंग की मुख्य विशेषता है । [७४] अधिक परिष्कृत प्रतिमानों में प्रक्रियात्मक प्रोग्रामिंग , वस्तु-उन्मुख प्रोग्रामिंग , कार्यात्मक प्रोग्रामिंग और तर्क प्रोग्रामिंग शामिल हैं ; कुछ भाषाएं प्रतिमान या बहु-प्रतिमान के संकर हैं। एक असेंबली भाषा एक अंतर्निहित मशीन वास्तुकला के प्रत्यक्ष मॉडल के रूप में इतना प्रतिमान नहीं है। उद्देश्य से, प्रोग्रामिंग भाषाओं को सामान्य उद्देश्य, सिस्टम प्रोग्रामिंग भाषाएं , स्क्रिप्टिंग भाषाएं, डोमेन-विशिष्ट भाषाएं, या समवर्ती/वितरित भाषाएं (या इनमें से एक संयोजन) माना जा सकता है । [७५] कुछ सामान्य प्रयोजन वाली भाषाओं को बड़े पैमाने पर शैक्षिक लक्ष्यों के साथ डिजाइन किया गया था। [76]

प्रोग्रामिंग प्रतिमान से असंबंधित कारकों द्वारा एक प्रोग्रामिंग भाषा को भी वर्गीकृत किया जा सकता है। उदाहरण के लिए, अधिकांश प्रोग्रामिंग भाषाएं अंग्रेजी भाषा के कीवर्ड का उपयोग करती हैं , जबकि अल्पसंख्यक नहीं करते हैं । अन्य भाषाओं को जानबूझकर गूढ़ होने या न होने के रूप में वर्गीकृत किया जा सकता है ।

यह सभी देखें

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

संदर्भ

  1. ^ एटिंगर, जेम्स (2004) जैक्वार्ड्स वेब , ऑक्सफ़ोर्ड यूनिवर्सिटी प्रेस
  2. ^ ए बी सी अबी, एंथोनी (२००४)। प्रोग्रामिंग भाषाओं का परिचय । से संग्रहीत मूल 8 नवंबर 2012 को 29 सितंबर 2012 को लिया गया
  3. ^ गणितीय शब्दों में, इसका मतलब है कि प्रोग्रामिंग भाषा ट्यूरिंग-पूर्ण हैमैकलेनन, ब्रूस जे. (1987)। प्रोग्रामिंग भाषाओं के सिद्धांत । ऑक्सफोर्ड यूनिवरसिटि प्रेस। पी 1. आईएसबीएन 978-0-19-511306-8.
  4. ^ एसीएम सिगप्लान (2003)। "कंप्यूटिंग मशीनरी एसोसिएशन की प्रोग्रामिंग भाषाओं पर विशेष रुचि समूह के उपनियम" । मूल से 22 जून 2006 को संग्रहीत ।SIGPLAN का दायरा कंप्यूटर प्रोग्रामिंग भाषाओं का सिद्धांत, डिजाइन, कार्यान्वयन, विवरण और अनुप्रयोग है - ऐसी भाषाएं जो विभिन्न गणनाओं के विनिर्देश की अनुमति देती हैं, जिससे उपयोगकर्ता को कंप्यूटर पर महत्वपूर्ण नियंत्रण (तत्काल या विलंबित) प्रदान होता है। ऑपरेशन।"
  5. ^ डीन, टॉम (2002)। "प्रोग्रामिंग रोबोट" । बुद्धिमान रोबोट का निर्माण । ब्राउन विश्वविद्यालय कंप्यूटर विज्ञान विभाग। मूल से २९ अक्टूबर २००६ को संग्रहीत ।
  6. ^ आर. नरसिम्हन, प्रोग्रामिंग लैंग्वेजेज एंड कंप्यूटर्स: ए यूनिफाइड मेटाथरी, पीपी। 189-247 फ्रांज ऑल्ट में, मॉरिस रुबिनॉफ (संस्करण।) एडवांस इन कंप्यूटर्स, वॉल्यूम 8, एकेडमिक प्रेस, 1994, ISBN  0-12-012108-5 , p.193 : "एक प्रोग्रामिंग भाषा के पूर्ण विनिर्देश में, परिभाषा के अनुसार, उस भाषा के लिए एक प्रोसेसर-आदर्श, यदि आप चाहें, का एक विनिर्देश शामिल होना चाहिए।" [स्रोत इस कथन का समर्थन करने के लिए कई संदर्भों का हवाला देते हैं]
  7. ^ बेन अरी, मोर्दचाई (1996)। प्रोग्रामिंग भाषाओं को समझना । जॉन विले एंड संस। कार्यक्रमों और भाषाओं को विशुद्ध रूप से औपचारिक गणितीय वस्तुओं के रूप में परिभाषित किया जा सकता है। हालांकि, अन्य गणितीय वस्तुओं जैसे कि समूहों की तुलना में कार्यक्रमों में अधिक लोग रुचि रखते हैं, ठीक इसलिए क्योंकि कंप्यूटर के निष्पादन को नियंत्रित करने के लिए प्रोग्राम-प्रतीकों के अनुक्रम का उपयोग करना संभव है। जबकि हम प्रोग्रामिंग के सिद्धांत के अध्ययन की अत्यधिक अनुशंसा करते हैं, यह पाठ आमतौर पर कार्यक्रमों के अध्ययन तक ही सीमित रहेगा क्योंकि उन्हें कंप्यूटर पर निष्पादित किया जाता है।
  8. ^ डेविड ए. श्मिट, टाइप प्रोग्रामिंग भाषाओं की संरचना , एमआईटी प्रेस, 1994, आईएसबीएन  0-262-19349-3 , पृ. 32
  9. ^ पियर्स, बेंजामिन (2002)। प्रकार और प्रोग्रामिंग भाषाएँ । एमआईटी प्रेस. पी 339 . आईएसबीएन 978-0-262-16209-8.
  10. ^ डिजिटल उपकरण निगम। "सूचना प्रौद्योगिकी - डेटाबेस भाषा एसक्यूएल (डीआईएस 9075 का प्रस्तावित संशोधित पाठ)" । आईएसओ/आईईसी 9075:1992, डेटाबेस भाषा एसक्यूएल । मूल से २१ जून २००६ को संग्रहीत 29 जून 2006 को लिया गया
  11. ^ चैरिटी डेवलपमेंट ग्रुप (दिसंबर 1996)। "द चैरिटी होम पेज" । मूल से 18 जुलाई 2006 को संग्रहीत किया गया।, "चैरिटी एक स्पष्ट प्रोग्रामिंग भाषा है...", "सभी चैरिटी गणनाएं समाप्त हो जाती हैं।"
  12. ^ 10 अंक में XML संग्रहीत में 6 सितंबर 2009 वेबैक मशीन W3C , 1999, "एक्सएमएल नहीं एक प्रोग्रामिंग भाषा है।"
  13. ^ पॉवेल, थॉमस (2003)। एचटीएमएल और एक्सएचटीएमएल: पूरा संदर्भ । मैकग्रा-हिल। पी 25. आईएसबीएन 978-0-07-222942-4. HTML एक प्रोग्रामिंग भाषा नहीं है।
  14. ^ डाइक्स, लुसिंडा; टिटेल, एड (2005)। डमी के लिए एक्सएमएल (चौथा संस्करण)। विले। पी 20 . आईएसबीएन 978-0-7645-8845-7. ...यह एक मार्कअप भाषा है, प्रोग्रामिंग भाषा नहीं।
  15. ^ "XSLT किस प्रकार की भाषा है?" . आईबीएम डॉट कॉम। २० अप्रैल २००५। मूल से ११ मई २०११ को संग्रहीत ।
  16. ^ "एक्सएसएलटी एक प्रोग्रामिंग भाषा है" । एमएसडीएन.माइक्रोसॉफ्ट.कॉम. मूल से ३ फरवरी २०११ को संग्रहीत 3 दिसंबर 2010 को लिया गया
  17. ^ स्कॉट, माइकल (2006)। प्रोग्रामिंग भाषा व्यावहारिक । मॉर्गन कॉफ़मैन । पी 802 . आईएसबीएन 978-0-12-633951-2. एक्सएसएलटी, हालांकि एक्सएमएल के रूपांतरण के लिए अत्यधिक विशिष्ट है, एक ट्यूरिंग-पूर्ण प्रोग्रामिंग भाषा है।
  18. ^ ओटिकर, टोबियास; पार्टल, ह्यूबर्ट; हिना, आइरीन; श्लेगल, एलिजाबेथ (20 जून 2016)। "द नॉट सो शॉर्ट इंट्रोडक्शन टू लेटेक्स 2ε" (संस्करण 5.06) । tobi.oetiker.ch . पीपी. 1-157. 14 मार्च 2017 को मूल से संग्रहीत (पीडीएफ)
  19. ^ सिरोपोलोस, एपोस्टोलोस; एंटोनिस सोलोमाइटिस; निक सोफ्रोनियो (2003)। LaTeX का उपयोग कर डिजिटल टाइपोग्राफी । स्प्रिंगर-वेरलाग। पी २१३ . आईएसबीएन 978-0-387-95217-8. टीएक्स न केवल एक उत्कृष्ट टाइपसेटिंग इंजन है बल्कि एक वास्तविक प्रोग्रामिंग भाषा भी है।
  20. ^ रॉबर्ट ए. एडमंड्स, द प्रेंटिस-हॉल स्टैण्डर्ड ग्लोसरी ऑफ़ कंप्यूटर टर्मिनोलॉजी, प्रेंटिस-हॉल, १९८५, पृ. ९१
  21. ^ पास्कल लैंडो, ऐनी Lapujade, गाइल्स कसेल, और फ्रेडेरिक Fürst, की ओर कंप्यूटर प्रोग्राम के एक जनरल आंटलजी संग्रहीत 7 जुलाई 2015 में वेबैक मशीन , ICSOFT 2007 संग्रहीत 27 अप्रैल 2010 वेबैक मशीन , पीपी। 163-170
  22. ^ एसके बाजपेयी, कंप्यूटर और सी प्रोग्रामिंग का परिचय , न्यू एज इंटरनेशनल, 2007, आईएसबीएन  ८१-२२४-१३७९-एक्स , पृ. 346
  23. ^ आर. नरसिम्हन, प्रोग्रामिंग लैंग्वेजेज एंड कंप्यूटर्स: ए यूनिफाइड मेटाथरी, पीपी। 189-247 फ्रांज ऑल्ट में, मॉरिस रुबिनॉफ (संस्करण।) एडवांस इन कंप्यूटर्स, वॉल्यूम 8, एकेडमिक प्रेस, 1994, ISBN  0-12-012108-5 , p.215: "[...] कंप्यूटर भाषाओं के लिए मॉडल [...] केवल दो मामलों में प्रोग्रामिंग भाषाओं के लिए [...] से भिन्न है। एक कंप्यूटर भाषा में, केवल बहुत से नाम हैं - या रजिस्टर - जो केवल बहुत से मूल्यों को ग्रहण कर सकते हैं - या राज्य - और इन राज्यों को किसी भी अन्य विशेषताओं के संदर्भ में अलग नहीं किया जाता है। [लेखक का फुटनोट:] यह एक सत्यवाद की तरह लग सकता है लेकिन इसके निहितार्थ हैं दूरगामी। उदाहरण के लिए, इसका अर्थ यह होगा कि प्रोग्रामिंग भाषाओं के लिए कोई भी मॉडल, इसके कुछ मापदंडों या विशेषताओं को तय करके, कंप्यूटर भाषाओं के लिए एक मॉडल के लिए प्राकृतिक तरीके से कम किया जा सकता है।"
  24. ^ जॉन सी. रेनॉल्ड्स, "प्रोग्रामिंग और प्रोग्रामिंग भाषाओं को पढ़ाने पर कुछ विचार", सिगप्लान नोटिस , खंड 43, अंक 11, नवंबर 2008, पृष्ठ 109
  25. ^ रोजस, राउल , एट अल। (2000)। "प्लैंकलकुल: द फर्स्ट हाई-लेवल प्रोग्रामिंग लैंग्वेज एंड इट्स इम्प्लीमेंटेशन"। इंस्टिट्यूट फर इंफॉर्मेटिक, फ्री यूनिवर्सिटी बर्लिन, तकनीकी रिपोर्ट बी-3/2000। (पूरा पाठ) संग्रहीत 18 अक्टूबर 2014 पर वेबैक मशीन
  26. ^ सेबेस्टा, डब्ल्यूएस कॉन्सेप्ट्स ऑफ प्रोग्रामिंग लैंग्वेजेज। २००६;एम६ १४:१८ पीपी.४४। आईएसबीएन  0-321-33025-0
  27. ^ नुथ, डोनाल्ड ई.; पार्डो, लुइस ट्रैब। "प्रोग्रामिंग भाषाओं का प्रारंभिक विकास"। कंप्यूटर विज्ञान और प्रौद्योगिकी का विश्वकोश । 7 : 419-493।
  28. ^ पीटर जे बेंटले (2012)। डिजीटल: कंप्यूटर का विज्ञान और यह हमारी दुनिया को कैसे आकार देता है । ऑक्सफोर्ड यूनिवरसिटि प्रेस। पी 87. आईएसबीएन ९७८०१९९६९३७९५. मूल से २९ अगस्त २०१६ को संग्रहीत किया गया।
  29. ^ "फोरट्रान निर्माता जॉन बैकस मर जाता है - टेक और गैजेट्स" । एनबीसी न्यूज। 20 मार्च 2007 25 अप्रैल 2010 को लिया गया
  30. ^ "सीएससी-302 99एस: कक्षा 02: प्रोग्रामिंग भाषाओं का एक संक्षिप्त इतिहास" । गणित.ग्रिन.edu. मूल से 15 जुलाई 2010 को संग्रहीत किया गया 25 अप्रैल 2010 को लिया गया
  31. ^ यूजीन लोह (18 जून 2010)। "आदर्श एचपीसी प्रोग्रामिंग भाषा" । कतार । 8 (6)। मूल से 4 मार्च 2016 को संग्रहीत किया गया।
  32. ^ "HPL - डिस्ट्रिब्यूटेड-मेमोरी कंप्यूटरों के लिए उच्च-प्रदर्शन लिनपैक बेंचमार्क का एक पोर्टेबल कार्यान्वयन" । मूल से 15 फरवरी 2015 को संग्रहीत किया गया 21 फरवरी 2015 को लिया गया
  33. ^ हूपर (1978) पी. 16.
  34. ^ सम्मेट (1969) पी. ३१६
  35. ^ सम्मेट (1978) पी. 204.
  36. ^ रिचर्ड एल. वेक्सब्लैट: प्रोग्रामिंग लैंग्वेज का इतिहास , अकादमिक प्रेस, 1981, अध्याय XIV।
  37. ^ फ़्राँस्वा लेबल। "प्रोग्रामिंग भाषा उपयोग ग्राफ" । स्रोत फोर्ज । मूल से १७ जून २००६ को संग्रहीत २१ जून २००६ को पुनःप्राप्त .. यह तुलना एक लोकप्रिय सामुदायिक प्रोग्रामिंग रिपॉजिटरी द्वारा होस्ट की गई परियोजनाओं की संख्या के रुझानों का विश्लेषण करती है। तुलना के अधिकांश वर्षों के दौरान, C काफी अंतर से आगे बढ़ता है; 2006 में, जावा ने सी को पीछे छोड़ दिया, लेकिन सी/सी ++ का संयोजन अभी भी काफी आगे बढ़ता है।
  38. ^ हेस, ब्रायन (2006)। "अर्धविराम युद्ध"। अमेरिकी वैज्ञानिक । ४ (४: २९९-३०३)। डोई : 10.1511/2006.60.299 ।
  39. ^ दिज्क्स्ट्रा, एडस्गर डब्ल्यू. (मार्च 1968)। "हानिकारक माने जाने वाले वक्तव्य पर जाएं" (पीडीएफ) । एसीएम का संचार । ११ (३): १४७-१४८. डोई : 10.1145/362929.362947 । एस२  सीआईडी १७४६ ९ ८० ९ । मूल से 13 मई 2014 को संग्रहीत (पीडीएफ)
  40. ^ टेटसुरो फुजिस, ताकाशी चिकायामा, काज़ुकी रोकुसावा, अकिहिको नाकासे (दिसंबर 1994)। "केएलआईसी: केएल1 का एक पोर्टेबल कार्यान्वयन" प्रक्रिया । एफजीसीएस '94, आईसीओटी टोक्यो, दिसंबर 1994। "संग्रहीत प्रति" । से संग्रहीत मूल 25 सितम्बर, 2006 को ९ अक्टूबर २००६ को पुनःप्राप्त .CS1 रखरखाव: शीर्षक के रूप में संग्रहीत प्रति ( लिंक )KLIC समवर्ती तर्क प्रोग्रामिंग भाषा KL1 का पोर्टेबल कार्यान्वयन है ।
  41. ^ जिम बेंडर (15 मार्च 2004)। "कार्यात्मक प्रोग्रामिंग भाषाओं के लिए मॉड्यूल पर लघु ग्रंथ सूची" । ReadScheme.org । मूल से २४ सितंबर २००६ को संग्रहीत ।
  42. ^ माइकल सिप्सर (1996)। गणना के सिद्धांत का परिचय । पीडब्लूएस प्रकाशन। आईएसबीएन 978-0-534-94728-6. धारा २.२: पुशडाउन ऑटोमेटा, पीपी.१०१-११४।
  43. ^ जेफरी Kegler, " पर्ल और Undecidability संग्रहीत 17 अगस्त 2009 को वेबैक मशीन ", पर्ल की समीक्षा । पेपर २ और ३ साबित करते हैं, क्रमशः राइस के प्रमेय और हॉल्टिंग समस्या में प्रत्यक्ष कमी का उपयोग करते हुए, कि पर्ल कार्यक्रमों का विश्लेषण सामान्य रूप से अनिर्णीत है।
  44. ^ मार्टी हॉल, 1995, व्याख्यान नोट्स: मैक्रो संग्रहीत में 6 अगस्त 2013 वेबैक मशीन , पोस्टस्क्रिप्ट संस्करण संग्रहीत 17 अगस्त 2000 में वेबैक मशीन
  45. ^ माइकल ली स्कॉट, प्रोग्रामिंग भाषा व्यावहारिकता , संस्करण 2, मॉर्गन कॉफ़मैन, 2006, आईएसबीएन  0-12-633951-1 , पृ. 18-19–
  46. ^ ए बी सी डी ई एफ जी एंड्रयू कुक। "कंप्यूटर भाषाओं का परिचय" । मूल से 15 अगस्त 2012 को संग्रहीत 13 जुलाई 2012 को लिया गया
  47. ^ विशेष रूप से,कुछ अभिव्यक्ति रूपों के लिए सामान्य प्रकारकी तात्कालिकता काअनुमान लगाया जाता है। में प्रकार निष्कर्ष जेनेरिक जावा अनुसंधान भाषा है कि जावा के लिए आधार प्रदान की 1.5 की घिरा पैरामीट्रिक पोलिमोर्फ़िज्मके प्रकार की मेलिंग सूची से दो अनौपचारिक पांडुलिपियों में एक्सटेंशन-है पर चर्चा की: जेनेरिक जावा प्रकार निष्कर्ष अस्वस्थ है संग्रहीत 29 जनवरी 2007 में वेबैक मशीन ( एलन जेफरी , 17 दिसंबर 2001) और ध्वनि जेनेरिक जावा प्रकार निष्कर्ष संग्रहीत 29 जनवरी 2007 में वेबैक मशीन ( मार्टिन ओडर्स्की , 15 जनवरी 2002)। C# का टाइप सिस्टम जावा के समान है, और एक समान आंशिक प्रकार की अनुमान योजना का उपयोग करता है।
  48. ^ "एल्गोरिदमिक भाषा योजना पर संशोधित रिपोर्ट" । २० फरवरी १९९८। मूल से १४ जुलाई २००६ को संग्रहीत ।
  49. ^ लुका कार्डेली और पीटर वेगनर । "समझने के प्रकार, डेटा अमूर्तता, और बहुरूपता पर" । पांडुलिपि (1985) । मूल से 19 जून 2006 को संग्रहीत ।
  50. ^ स्टीवन आर. फिशर, भाषा का इतिहास , रिएक्शन बुक्स, 2003, आईएसबीएन  १-८६१८९-०८०-एक्स , पृ. 205
  51. ^ एरिक लेवेनेज़ (2011)। "कंप्यूटर भाषा इतिहास" । मूल से ७ जनवरी २००६ को संग्रहीत ।
  52. ^ जिंग हुआंग। "कृत्रिम भाषा बनाम प्राकृतिक भाषा" । मूल से 3 सितंबर 2009 को संग्रहीत ।
  53. ^ आईबीएम ने पहली बार पीएल/आई को प्रकाशित किया, उदाहरण के लिए, बल्कि महत्वाकांक्षी रूप से अपने मैनुअल द यूनिवर्सल प्रोग्रामिंग लैंग्वेज पीएल/आई (आईबीएम लाइब्रेरी; 1966)। शीर्षक असीमित सब्मिटिंग क्षमता के लिए आईबीएम के लक्ष्यों को दर्शाता है: "पीएल / आई को इस तरह से डिज़ाइन किया गया है कि कोई विशेष अनुप्रयोगों की आवश्यकताओं को पूरा करने वाले सबसेट को इससे अलग कर सकता है।" ( "पीएल / आई" । गणित का विश्वकोश । मूल से 26 अप्रैल 2012 को संग्रहीत 29 जून 2006 को लिया गया) एडा और यूएनसीओएल के शुरुआती लक्ष्य समान थे।
  54. ^ फ्रेडरिक पी. ब्रूक्स, जूनियर: द मिथिकल मैन-मंथ , एडिसन-वेस्ले, 1982, पीपी. 93-94
  55. ^ दिज्क्स्ट्रा, एडस्गर डब्ल्यू . "नेचुरल लैंग्वेज प्रोग्रामिंग" की मूर्खता पर. संग्रहीत 20 जनवरी 2008 वेबैक मशीन EWD667।
  56. ^ पर्लिस, एलन (सितंबर 1982)। "प्रोग्रामिंग पर एपिग्राम" । सिगप्लान नोटिस वॉल्यूम। 17, नंबर 9 । पीपी. 7–13. मूल से १७ जनवरी १९९९ को संग्रहीत ।
  57. ^ मिलनर, आर. ; एम. टोफ़्टे ; आर हार्पर ; डी. मैकक्वीन (1997)। मानक एमएल (संशोधित) की परिभाषा । एमआईटी प्रेस. आईएसबीएन 978-0-262-63181-5.
  58. ^ केल्सी, रिचर्ड; विलियम क्लिंजर; जोनाथन रीस (फरवरी 1998)। "धारा 7.2 औपचारिक शब्दार्थ" । एल्गोरिथम भाषा योजना पर संशोधित 5 रिपोर्ट । मूल से 6 जुलाई 2006 को संग्रहीत ।
  59. ^ एएनएसआई - प्रोग्रामिंग लैंग्वेज रेक्स, एक्स3-274.1996
  60. ^ स्टीव, मैककोनेल (2004)। कोड पूरा (दूसरा संस्करण)। रेडमंड, वाशिंगटन। पीपी.  590, 600 । आईएसबीएन ०७३५६१९६७०. ओसीएलसी  54974573 ।
  61. ^ देखें: Oracle अमेरिका, Inc. बनाम Google, Inc.
  62. ^ "प्रोग्रामिंग भाषाओं के लिए गाइड | ComputerScience.org" । ComputerScience.org 13 मई 2018 को लिया गया
  63. ^ "मूल बातें" । आईबीएम.कॉम . 10 मई 2011 13 मई 2018 को लिया गया
  64. ^ "HOPL: प्रोग्रामिंग भाषाओं का एक इंटरैक्टिव रोस्टर" । ऑस्ट्रेलिया: मर्डोक विश्वविद्यालय । से संग्रहीत मूल 20 फरवरी, 2011 को 1 जून 2009 को लिया गया । यह साइट 8512 भाषाओं को सूचीबद्ध करती है।
  65. ^ मेयर, फिलिप; बाउर, अलेक्जेंडर (2015)। ओपन सोर्स प्रोजेक्ट्स में कई प्रोग्रामिंग भाषाओं के उपयोग का एक अनुभवजन्य विश्लेषण । सॉफ्टवेयर इंजीनियरिंग में मूल्यांकन और मूल्यांकन पर 19वें अंतर्राष्ट्रीय सम्मेलन की कार्यवाही - EASE '15। न्यूयॉर्क, एनवाई, यूएसए: एसीएम। पीपी. 4:1–4:10. डोई : 10.1145/2745802.2745805 । आईएसबीएन 978-1-4503-3350-4. परिणाम: हमने पाया (ए) स्पष्ट रूप से प्रभावी मुख्य सामान्य-उद्देश्य वाली भाषा और 5 अक्सर उपयोग किए जाने वाले डीएसएल प्रकारों के साथ प्रति परियोजना ५ भाषाओं की एक औसत संख्या, (बी) आकार, कमिट की संख्या और मुख्य भाषा का एक महत्वपूर्ण प्रभाव भाषाओं की संख्या के साथ-साथ उम्र और योगदानकर्ताओं की संख्या का कोई महत्वपूर्ण प्रभाव नहीं है, और (सी) एक्सएमएल, शैल/मेक, और एचटीएमएल/सीएसएस के आसपास समूहीकृत तीन भाषा पारिस्थितिक तंत्र। निष्कर्ष: बहु-भाषा प्रोग्रामिंग ओपन-सोर्स प्रोजेक्ट्स में सामान्य प्रतीत होती है और यह एक ऐसा कारक है जिसे टूलिंग में और ऐसे सॉफ़्टवेयर सिस्टम के विकास और रखरखाव का आकलन करते समय निपटा जाना चाहिए।
  66. ^ एबेलसन, सुस्मान, और सुस्मान। "कंप्यूटर प्रोग्राम की संरचना और व्याख्या" । से संग्रहीत मूल 26 फरवरी 2009 को 3 मार्च 2009 को लिया गयाCS1 रखरखाव: कई नाम: लेखकों की सूची ( लिंक )
  67. ^ ब्राउन विकी (1999)। "स्क्रिप्टिंग भाषाएँ" । mactech.com . 2 दिसंबर 2017 को मूल से संग्रहीत ।
  68. ^ जॉर्जीना स्वान (21 सितंबर 2009)। "कोबोल 50 साल का हो गया" । computerworld.com.au. मूल से 19 अक्टूबर 2013 को संग्रहीत 19 अक्टूबर 2013 को लिया गया
  69. ^ एड ऐरे (3 मई 2012)। "COBOL के 7 मिथक खारिज" । डेवलपर डॉट कॉम। मूल से 19 अक्टूबर 2013 को संग्रहीत 19 अक्टूबर 2013 को लिया गया
  70. ^ निकोलस एंटिक्नैप। "एसएसएल/कंप्यूटर वीकली आईटी सैलरी सर्वे: फाइनेंस बूम ड्राइव्स आईटी जॉब ग्रोथ" । कंप्यूटर वीकली । मूल से 26 अक्टूबर 2011 को संग्रहीत किया गया 14 जून 2013 को लिया गया
  71. ^ "पुस्तक बिक्री द्वारा प्रोग्रामिंग भाषाओं की गणना" । रडार.ओरीली.कॉम। 2 अगस्त से 2006 संग्रहीत मूल पर 17 मई 2008।
  72. ^ बायमैन, जेएम; मर्डॉक, वी., फाइंडिंग कोड ऑन द वर्ल्ड वाइड वेब: एक प्रारंभिक जांच, प्रोसीडिंग्स फर्स्ट आईईईई इंटरनेशनल वर्कशॉप ऑन सोर्स कोड एनालिसिस एंड मैनिपुलेशन, 2001
  73. ^ "2018 की सबसे लोकप्रिय और प्रभावशाली प्रोग्रामिंग भाषाएं" । stackify.com. 18 दिसंबर 2017 29 अगस्त 2018 को लिया गया
  74. ^ कार्ल ए. गुंटर, सिमेंटिक्स ऑफ प्रोग्रामिंग लैंग्वेजेज: स्ट्रक्चर्स एंड टेक्निक्स , एमआईटी प्रेस, 1992, आईएसबीएन  0-262-57095-5 , पृ. 1
  75. ^ "ट्यून्स: प्रोग्रामिंग लैंग्वेज" । मूल से 20 अक्टूबर 2007 को संग्रहीत ।
  76. ^ विर्थ, निकलॉस (1993)। "पास्कल के विकास के बारे में यादें"। प्रोग्रामिंग भाषाओं के इतिहास पर दूसरा ACM SIGPLAN सम्मेलन - HOPL-II । प्रोक। प्रोग्रामिंग भाषाओं के इतिहास पर दूसरा एसीएम सिगप्लान सम्मेलन । 28 . पीपी. 333-342. साइटसीरएक्स  10.1.1.475.6989 । डोई : 10.1145/154766.155378 । आईएसबीएन 978-0-89791-570-0. S2CID  9783524 ।

अग्रिम पठन

  • एबेलसन, हेरोल्ड ; सुस्मान, गेराल्ड जे (1996)। कंप्यूटर प्रोग्राम की संरचना और व्याख्या (द्वितीय संस्करण)। एमआईटी प्रेस. मूल से 9 मार्च 2018 को संग्रहीत किया गया ।
  • राफेल फिंकेल : उन्नत प्रोग्रामिंग भाषा डिजाइन , एडिसन वेस्ले 1995।
  • डेनियल पी. फ्रीडमैन , मिशेल वैंड , क्रिस्टोफर टी. हेन्स : एसेंशियल्स ऑफ प्रोग्रामिंग लैंग्वेजेज , द एमआईटी प्रेस 2001।
  • मौरिज़ियो गैब्रिएली और सिमोन मार्टिनी: "प्रोग्रामिंग भाषाएँ: सिद्धांत और प्रतिमान", स्प्रिंगर, 2010।
  • डेविड गेलर्नटर , सुरेश जगन्नाथन : प्रोग्रामिंग भाषाविज्ञान , एमआईटी प्रेस 1990।
  • एलिस होरोविट्ज़ (सं।): प्रोग्रामिंग लैंग्वेज, ए ग्रैंड टूर (तीसरा संस्करण), 1987।
  • एलिस होरोविट्ज़: प्रोग्रामिंग लैंग्वेज के फंडामेंटल्स , 1989।
  • श्रीराम कृष्णमूर्ति : प्रोग्रामिंग भाषाएँ: आवेदन और व्याख्या , ऑनलाइन प्रकाशन ।
  • ब्रूस जे मैकलेनन : प्रोग्रामिंग भाषाओं के सिद्धांत: डिजाइन, मूल्यांकन और कार्यान्वयन , ऑक्सफोर्ड यूनिवर्सिटी प्रेस 1999।
  • जॉन सी. मिशेल : कॉन्सेप्ट्स इन प्रोग्रामिंग लैंग्वेजेज , कैम्ब्रिज यूनिवर्सिटी प्रेस 2002।
  • बेंजामिन सी. पियर्स : प्रकार और प्रोग्रामिंग भाषाएं , एमआईटी प्रेस 2002।
  • टेरेंस डब्ल्यू। प्रैट और मार्विन वी। ज़ेल्कोविट्ज़ : प्रोग्रामिंग लैंग्वेज: डिज़ाइन एंड इम्प्लीमेंटेशन (चौथा संस्करण), अप्रेंटिस हॉल 2000।
  • पीटर एच. सेलस । प्रोग्रामिंग भाषाओं की हैंडबुक (4 खंड)। मैकमिलन 1998।
  • रवि सेठी : प्रोग्रामिंग लैंग्वेज: कॉन्सेप्ट्स एंड कंस्ट्रक्शंस , दूसरा संस्करण, एडिसन-वेस्ले 1996।
  • माइकल एल. स्कॉट : प्रोग्रामिंग लैंग्वेज प्रैग्मैटिक्स , मॉर्गन कॉफ़मैन पब्लिशर्स 2005.
  • रॉबर्ट डब्ल्यू सेबेस्टा : प्रोग्रामिंग भाषाओं की अवधारणा , 9वां संस्करण, एडिसन वेस्ले 2009।
  • मार्क शेल्डन के साथ फ्रैंकलिन टर्बक और डेविड गिफोर्ड : प्रोग्रामिंग भाषाओं में डिजाइन अवधारणाएं , एमआईटी प्रेस 2009।
  • पीटर वैन रॉय और सेफ हरदी । कंप्यूटर प्रोग्रामिंग की अवधारणा, तकनीक और मॉडल , एमआईटी प्रेस 2004।
  • डेविड ए वाट । प्रोग्रामिंग भाषा अवधारणाओं और प्रतिमान । अप्रेंटिस हॉल 1990।
  • डेविड ए. वाट और मफी थॉमस । प्रोग्रामिंग भाषा सिंटेक्स और शब्दार्थ । प्रेंटिस हॉल 1991।
  • डेविड ए वाट। प्रोग्रामिंग भाषा प्रोसेसर । प्रेंटिस हॉल 1993।
  • डेविड ए वाट। प्रोग्रामिंग भाषा डिजाइन अवधारणाओं । जॉन विले एंड संस 2004।

बाहरी कड़ियाँ

प्रोग्रामिंग भाषा क्या है इसके प्रकार बताइए?

मुख्य रूप से, कंप्यूटर प्रोग्रामिंग भाषाएँ तीन प्रकार की होती हैं, वे हैं:.
निम्न-स्तर की प्रोग्रामिंग भाषाएं (Low-level programming languages)।.
मध्य-स्तर की प्रोग्रामिंग भाषाएं (Middle-level programming languages)।.
उच्च-स्तरीय प्रोग्रामिंग भाषाएं (High-level programming languages)।.

प्रोग्रामिंग पद्धति कितने प्रकार की होती है?

चौथी पीढ़ी की प्रोग्रामिंग भाषा (Fourth generation programming language) - तीसरी पीढ़ी की प्रोग्रामिंग भाषा के मुकाबले चौथी पीढ़ी की प्रोग्रामिंग भाषा को अधिक सरल बनाया गया, इस भाषा में कोडिंग करना उसे समझना बहुत सरल हो गया इसी समय C, C++ भाषा का विकास हुआ, जिससे प्रोग्रामिंग करना अधिक सरल हुआ।

प्रोग्रामिंग क्या है in Hindi?

Programming Kya Hoti hain ? Programming निर्देशों का एक set बनाने की प्रक्रिया है जो कंप्यूटर को किसी कार्य को करने का तरीका बताती है। प्रोग्रामिंग अलग अलग कंप्यूटर प्रोग्रामिंग भाषाओं जैसे कि BASIC, JavaScript, Python और C++ का उपयोग करके की जा सकती है।

प्रोग्रामिंग लैंग्वेज क्या हैं उदाहरण?

कंप्यूटर प्रोग्रामिंग लैंग्वेज क्या है (Programming Language in Hindi): कंप्यूटर प्रोग्रामिंग लैंग्वेज निर्देशों का एक सेट है, जो प्रोग्राम को कुछ ऐसे कार्य करने में मदद करता है जो वैध इनपुट के लिए वांछित आउटपुट लौटाते हैं। प्रोग्रामिंग भाषाओं के उदाहरण: पायथन, जावास्क्रिप्ट, PHP, सी, जावा आदि है