अल्गोल: Difference between revisions
No edit summary |
No edit summary |
||
Line 16: | Line 16: | ||
| influenced = सबसे बाद की आदेशसूचक भाषाएँ (अर्थात, ऐल्गॉल जैसी भाषाएं सम्मिलित हैं)<br/>उदाहरण [[PL/I]], [[सिमुला]], [[Pascal (programming language)|पास्कल]], [[C (programming language)|सी]] और [[Scheme (programming language)|योजना]] | | influenced = सबसे बाद की आदेशसूचक भाषाएँ (अर्थात, ऐल्गॉल जैसी भाषाएं सम्मिलित हैं)<br/>उदाहरण [[PL/I]], [[सिमुला]], [[Pascal (programming language)|पास्कल]], [[C (programming language)|सी]] और [[Scheme (programming language)|योजना]] | ||
}} | }} | ||
ऐल्गॉल ({{IPAc-en|ˈ|æ|l|g|ɒ|l|,_|-|g|ɔː|l}}; | ऐल्गॉल ({{IPAc-en|ˈ|æ|l|g|ɒ|l|,_|-|g|ɔː|l}}; एल्गोरिदमिक भाषा के लिए संक्षिप्त)<ref>The name of this language family is sometimes given in mixed case ([http://www.masswerk.at/algol60/report.htm ''Algol 60''] {{webarchive|url=https://web.archive.org/web/20070625171638/http://www.masswerk.at/algol60/report.htm |date=25 June 2007}}), and sometimes in all uppercase ([https://www.cs.ru.nl/~hubbers/courses/sl1/rr.pdf ''ALGOL68''] {{webarchive|url=https://web.archive.org/web/20140913132128/http://www.cs.ru.nl/~hubbers/courses/sl1/rr.pdf |date=13 September 2014}}). For simplicity this article uses ''ALGOL''.</ref> आदेशसूचक प्रोग्रामिंग, कंप्यूटर प्रोग्रामिंग भाषाओं की एक श्रेणी होती है, जिसे मूल रूप से 1958 में विकसित किया गया था। ऐल्गॉल ने कई अन्य भाषाओं को बहुत अधिक प्रभावित किया और कंप्यूटिंग तंत्र संस्था (ACM) द्वारा पाठ्यपुस्तकों और शैक्षणिक स्रोतों में तीस से अधिक वर्षों के लिए उपयोग की जाने वाली कलनविधि विवरण के लिए मानक विधि थी।<ref>[http://calgo.acm.org/ ''Collected Algorithms of the ACM''] {{webarchive|url=http://archive.wikiwix.com/cache/20111017235805/http://calgo.acm.org/ |date=17 October 2011}} Compressed archives of the algorithms. [[Association for Computing Machinery|ACM]].</ref> | ||
इस अर्थ में | इस अर्थ में अधिकांश आधुनिक भाषाओं का वाक्य-विन्यास ऐल्गॉल की तरह होता है,<ref>{{cite web |url=http://www.eecs.qmul.ac.uk/~ohearn/Algol/intro.html |archive-url=https://web.archive.org/web/20111114122103/http://www.eecs.qmul.ac.uk/~ohearn/Algol/intro.html |title=अल्गोल जैसी भाषाएं, परिचय|last1=O'Hearn |first1=P. W. |last2=Tennent |first2=R. D. |date=September 1996 |archive-date=14 November 2011}}</ref> यह तीन अन्य उच्च-स्तरीय प्रोग्रामिंग भाषाओं की तुलना में यकीनन अधिक प्रभावशाली थी, जिनमें से यह लगभग समकालीन थी फोरट्रान, लिस्प और कोबोल।<ref>[http://groups.engin.umd.umich.edu/CIS/course.des/cis400/algol/algol.html "The ALGOL Programming Language"] {{webarchive|url=https://web.archive.org/web/20161006113915/http://groups.engin.umd.umich.edu/CIS/course.des/cis400/algol/algol.html |date=6 October 2016}}, University of Michigan-Dearborn</ref> इसे फोरट्रान के साथ कुछ कथित समस्याओं से बचने के लिए प्रतिरूपित किया गया था और अंततः PL/I, सिमुला, BCPL, B, पास्कल, और C. सहित कई अन्य प्रोग्रामिंग भाषाओं को जन्म दिया। | ||
ऐल्गॉल ने ब्लॉक (प्रोग्रामिंग) और <code>begin</code>...<code>end</code> उनका परिसीमन करने के लिए जोड़े। यह लेक्सिकल स्कोप के साथ नेस्टेड | ऐल्गॉल ने ब्लॉक (प्रोग्रामिंग) और <code>begin</code>...<code>end</code> उनका परिसीमन करने के लिए जोड़े। यह लेक्सिकल स्कोप के साथ नेस्टेड फलन परिभाषाओं को लागू करने वाली पहली भाषा भी थी। इसके अतिरिक्त, यह पहली प्रोग्रामिंग भाषा थी, जिसने औपचारिक भाषा की परिभाषा पर विस्तृत ध्यान दिया और एल्गोल 60#इतिहास के माध्यम से भाषा डिजाइन के लिए एक प्रमुख औपचारिक व्याकरण संकेत बैकस-नौर रूप मे प्रस्तुत किया। | ||
तीन प्रमुख विशिष्टताएँ थीं, जिनका नाम उन वर्षों के नाम पर रखा गया था जिन्हें वे पहली बार प्रकाशित किए गए | इसकी तीन प्रमुख विशिष्टताएँ थीं, जिनका नाम उन वर्षों के नाम पर रखा गया था, जिन्हें वे पहली बार प्रकाशित किए गए थे। | ||
* ऐल्गॉल 58 - अंतर्राष्ट्रीय बीजगणितीय भाषा के लिए मूल रूप से IAL कहलाने का प्रस्ताव | * ऐल्गॉल 58 - अंतर्राष्ट्रीय बीजगणितीय भाषा के लिए मूल रूप से IAL कहलाने का प्रस्ताव होता था। | ||
* ऐल्गॉल 60 - पहली बार 1961 में X1 ऐल्गॉल 60 के रूप में लागू किया गया। संशोधित | * ऐल्गॉल 60 - पहली बार 1961 में X1 ऐल्गॉल 60 के रूप में लागू किया गया। तथा 1963 मे संशोधित किया गया था।<ref>{{cite journal | ||
| title=एल्गोरिदमिक भाषा ALGOL 60 पर रिपोर्ट| location=Copenhagen | | title=एल्गोरिदमिक भाषा ALGOL 60 पर रिपोर्ट| location=Copenhagen | ||
|date=May 1960 | |date=May 1960 | ||
Line 48: | Line 48: | ||
| s2cid=278290 | | s2cid=278290 | ||
}}</ref><ref>{{cite web|title=एल्गोरिद्मिक लैंग्वेज एल्गोल 60 पर संशोधित रिपोर्ट|year=1963|url=http://www.masswerk.at/algol60/report.htm|access-date=8 June 2007 |archive-url=https://web.archive.org/web/20070625171638/http://www.masswerk.at/algol60/report.htm |archive-date=25 June 2007 |url-status=live}}</ref><ref>{{cite web|title=X1 के लिए एक ALGOL 60 अनुवादक|year=1961|url=https://www.cs.utexas.edu/users/EWD/MCReps/MR35.PDF |archive-url=https://ghostarchive.org/archive/20221009/https://www.cs.utexas.edu/users/EWD/MCReps/MR35.PDF |archive-date=2022-10-09 |url-status=live|access-date=7 January 2021}}</ref> | }}</ref><ref>{{cite web|title=एल्गोरिद्मिक लैंग्वेज एल्गोल 60 पर संशोधित रिपोर्ट|year=1963|url=http://www.masswerk.at/algol60/report.htm|access-date=8 June 2007 |archive-url=https://web.archive.org/web/20070625171638/http://www.masswerk.at/algol60/report.htm |archive-date=25 June 2007 |url-status=live}}</ref><ref>{{cite web|title=X1 के लिए एक ALGOL 60 अनुवादक|year=1961|url=https://www.cs.utexas.edu/users/EWD/MCReps/MR35.PDF |archive-url=https://ghostarchive.org/archive/20221009/https://www.cs.utexas.edu/users/EWD/MCReps/MR35.PDF |archive-date=2022-10-09 |url-status=live|access-date=7 January 2021}}</ref> | ||
* ऐल्गॉल 68 - | * ऐल्गॉल 68 - साव्यय सरणियों, स्लाइस, समानता, ऑपरेटर पहचान सहित नए तत्वों को प्रस्तुत किया। तथा 1973 मे संशोधित किया गया था।।<ref name=a68>{{cite web|title=एल्गोरिथम भाषा ALGOL 68 पर संशोधित रिपोर्ट|year=1973|url=https://www.cs.ru.nl/~hubbers/courses/sl1/rr.pdf|access-date=13 September 2014|url-status=live|archive-url=https://web.archive.org/web/20140913132128/http://www.cs.ru.nl/~hubbers/courses/sl1/rr.pdf|archive-date=13 September 2014}}</ref> | ||
ऐल्गॉल 68 ऐल्गॉल 60 से काफी अलग है और अच्छी तरह से प्राप्त नहीं हुआ था, इसलिए सामान्य | ऐल्गॉल 68 ऐल्गॉल 60 से काफी अलग होता है और अच्छी तरह से प्राप्त नहीं हुआ था, इसलिए सामान्य रूप से ऐल्गॉल का अर्थ ऐल्गॉल 60 और इसकी बोलियाँ होती हैं। | ||
== इतिहास == | == इतिहास == | ||
1958 में ज्यूरिख में स्विस फेडरल | 1958 में ज्यूरिख में स्विस फेडरल प्रौद्योगिकी संस्थान (cf. ऐल्गॉल 58) में एक बैठक में यूरोपीय और अमेरिकी कंप्यूटर वैज्ञानिकों की एक समिति द्वारा ऐल्गॉल को संयुक्त रूप से विकसित किया गया था। इसने तीन अलग-अलग वाक्य-विन्यास(सिंटैक्स) निर्दिष्ट किए। एक संदर्भ सिंटैक्स, प्रकाशन सिंटैक्स और कार्यान्वयन सिंटैक्स। अलग-अलग सिंटैक्स ने इसे अलग-अलग भाषाओं के लिए दशमलव बिंदुओं (अल्पविराम बनाम अवधि) के लिए अलग-अलग कीवर्ड नामों और सम्मेलनों का उपयोग करने की अनुमति प्रदान की। | ||
ऐल्गॉल का उपयोग ज्यादातर संयुक्त राज्य अमेरिका और यूरोप में अनुसंधान कंप्यूटर वैज्ञानिकों द्वारा किया जाता था। व्यावसायिक अनुप्रयोगों में इसका उपयोग इसके विवरण में मानक इनपुट/आउटपुट सुविधाओं की अनुपस्थिति और बरोज़ | ऐल्गॉल का उपयोग ज्यादातर संयुक्त राज्य अमेरिका और यूरोप में अनुसंधान कंप्यूटर वैज्ञानिकों द्वारा किया जाता था। व्यावसायिक अनुप्रयोगों में इसका उपयोग इसके विवरण में मानक इनपुट/आउटपुट सुविधाओं की अनुपस्थिति और बरोज़ निगम के अतिरिक्त बड़े कंप्यूटर विक्रेताओं द्वारा भाषा में रुचि की कमी के कारण बाधित हुआ था। ऐल्गॉल 60 हालांकि कलन विधि के प्रकाशन के लिए मानक बन गया और भविष्य के भाषा के विकास पर इसका गहरा प्रभाव पड़ा। | ||
[[File:Algol&Fortran family-by-Borkowski.svg|thumb|alt=caption|एल्गोल, फोरट्रान और कोबोल प्रोग्रामिंग लैंग्वेज डायनेस्टी का फैमिली ट्री]]जॉन बैकस ने विशेष रूप से ऐल्गॉल 58 | [[File:Algol&Fortran family-by-Borkowski.svg|thumb|alt=caption|एल्गोल, फोरट्रान और कोबोल प्रोग्रामिंग लैंग्वेज डायनेस्टी का फैमिली ट्री]]जॉन बैकस ने विशेष रूप से ऐल्गॉल 58 की प्रोग्रामिंग भाषाओं का वर्णन करने के लिए बैकस नॉर्मल फॉर्म विधि विकसित किया। इसे ऐल्गॉल 60 के लिए पीटर नौर द्वारा संशोधित और विस्तारित किया गया था।, और डोनाल्ड नुथ के सुझाव पर बैकस-नौर फॉर्म का नाम परिवर्तित दिया गया था।<ref>{{cite journal |last=Knuth |first=Donald E. |year=1964 |title=बैकस नॉर्मल फॉर्म बनाम बैकस नौर फॉर्म|journal=Communications of the ACM |volume=7 |issue=12 |pages=735–736 |doi=10.1145/355588.365140|s2cid=47537431 }}</ref> | ||
पीटर नौर: एएलजीओएल बुलेटिन के संपादक के रूप में | पीटर नौर:- एएलजीओएल बुलेटिन के संपादक के रूप में मै भाषा की अंतरराष्ट्रीय चर्चाओं में :-खीचा गया था और नवंबर 1959 में यूरोपीय भाषा प्रारुप समूह का सदस्य बनने के लिए चुना गया था। इस क्षमता में मैं एएलजीओएल 60 रिपोर्ट का संपादक था, तथा जनवरी 1960 में पेरिस में ऐल्गॉल 60 की बैठक के परिणामस्वरूप जिसे निर्मित किया गया था।<ref name="naur_acm">[http://awards.acm.org/citation.cfm?id=1024454&srt=all&aw=140&ao=AMTURING&yr=2005 ACM पुरस्कार प्रशस्ति पत्र: पीटर नौर] {{webarchive|url=https://wayback.archive-it.org/all/20120402220529/http://amturing.acm.org/award_winners/naur_1024454.cfm |date=2 April 2012}}, 2005</ref> | ||
निम्नलिखित लोगों ने पेरिस में | निम्नलिखित लोगों ने पेरिस में 1 से 16 जनवरी तक बैठक में भाग लिया था। | ||
* फ्रेडरिक एल. बाउर, पीटर नौर, हेंज रटिशौसर, क्लॉस सेमेलसन, बर्नार्ड वाउक्विस, एड्रियान वैन विजनगार्डन, और माइकल वुडगर (यूरोप से) | * फ्रेडरिक एल. बाउर, पीटर नौर, हेंज रटिशौसर, क्लॉस सेमेलसन, बर्नार्ड वाउक्विस, एड्रियान वैन विजनगार्डन, और माइकल वुडगर (यूरोप से) | ||
* जॉन बैकस | * जॉन बैकस.जॉन डब्ल्यू.बैकस, जूलियन ग्रीन (कंप्यूटर वैज्ञानिक), चार्ल्स काट्ज, जॉन मैक्कार्थी (कंप्यूटर वैज्ञानिक), एलन पर्लिस. एलन जे. पर्लिस, और जोसेफ हेनरी वेगस्टीन (यूएसए से)। | ||
एलन पेर्लिस ने बैठक का एक विशद वर्णन | एलन पेर्लिस ने बैठक का एक विशद वर्णन दिया। बैठकें थकाऊ, अंतहीन और उत्साहजनक थीं। जब किसी के अच्छे विचारों को दूसरों के बुरे विचारों के साथ छोड़ दिया गया तो वह उत्तेजित हो गया था। फिर भी, परिश्रम पूरी अवधि के दौरान उत्कृष्ट बना रहा था। | ||
ऐल्गॉल 60 ने इसके बाद आने वाली कई भाषाओं को प्रेरित किया। टोनी होरे ने टिप्पणी की, यहां एक ऐसी भाषा है जो अपने समय से बहुत आगे है कि यह न केवल अपने पूर्ववर्तियों पर बल्कि इसके लगभग सभी उत्तराधिकारियों पर भी सुधार था | ऐल्गॉल 60 ने इसके बाद आने वाली कई भाषाओं को प्रेरित किया। टोनी होरे ने टिप्पणी की, यहां एक ऐसी भाषा है जो अपने समय से बहुत आगे है कि यह न केवल अपने पूर्ववर्तियों पर बल्कि इसके लगभग सभी उत्तराधिकारियों पर भी सुधार था | ||
Line 69: | Line 69: | ||
=== ऐल्गॉल और प्रोग्रामिंग भाषा अनुसंधान === | === ऐल्गॉल और प्रोग्रामिंग भाषा अनुसंधान === | ||
जैसा कि पीटर लैंडिन ने उल्लेख किया है, ऐल्गॉल लैम्ब्डा कैलकुलस (कॉल-बाय-नेम) के साथ मूल | जैसा कि पीटर लैंडिन ने उल्लेख किया है, ऐल्गॉल लैम्ब्डा कैलकुलस (कॉल-बाय-नेम) के साथ मूल आदेशसूचक प्रभावों को संयोजित करने वाली पहली भाषा थी। जॉन सी रेनॉल्ड्स के कारण शायद भाषा का सबसे सुंदर सूत्रीकरण है, और यह अपनी वाक्य रचना और शब्दार्थ शुद्धता को सबसे अच्छा प्रदर्शित करता है। कॉल-बाय-वैल्यू भाषाओं जैसे एमएल द्वारा उपयोग किए जाने वाले वैश्विक प्रभावों के विपरीत, रेनॉल्ड्स के आदर्श ऐल्गॉल ने कॉल-बाय-नेम भाषाओं के संदर्भ में स्थानीय प्रभावों की उपयुक्तता के बारे में एक ठोस पद्धति संबंधी तर्क दिया। भाषा की वैचारिक अखंडता ने इसे प्रोग्रामिंग कंप्यूटेबल फ़ंक्शंस (PCF) और ML के साथ सिमेंटिक रिसर्च की मुख्य वस्तुओं में से एक बना दिया।<ref>{{cite book |last1=O'Hearn |first1=Peter |author1-link=Peter O'Hearn |last2=Tennent |first2=Robert D. |date=1997 |title=अल्गोल जैसी भाषाएँ|publisher=Birkhauser Boston |place=Cambridge, Massachusetts, United States |isbn=978-0-8176-3880-1 |doi=10.1007/978-1-4612-4118-8|s2cid=6273486 }}</ref> | ||
===आईएएल कार्यान्वयन समयरेखा === | ===आईएएल कार्यान्वयन समयरेखा === | ||
तिथि करने के लिए ऐल्गॉल 60 के कम से कम 70 संवर्द्धन, विस्तार, व्युत्पत्ति और उपभाषाएं हुई हैं।<ref>{{cite web|url=http://hopl.murdoch.edu.au/showlanguage.prx?exp=1807 |title=कंप्यूटर भाषाओं का विश्वकोश|access-date=20 January 2012 |url-status=dead |archive-url=https://web.archive.org/web/20110927014141/http://hopl.murdoch.edu.au/showlanguage.prx?exp=1807 |archive-date=27 September 2011 |df=dmy}}</ref> | तिथि करने के लिए ऐल्गॉल 60 के कम से कम 70 संवर्द्धन, विस्तार, व्युत्पत्ति और उपभाषाएं हुई हैं।<ref>{{cite web|url=http://hopl.murdoch.edu.au/showlanguage.prx?exp=1807 |title=कंप्यूटर भाषाओं का विश्वकोश|access-date=20 January 2012 |url-status=dead |archive-url=https://web.archive.org/web/20110927014141/http://hopl.murdoch.edu.au/showlanguage.prx?exp=1807 |archive-date=27 September 2011 |df=dmy}}</ref> | ||
Line 149: | Line 149: | ||
| | | | ||
|- | |- | ||
|[[DG/L]]|| 1972 || || अमेरीका || || कंप्यूटर के डीजी [[Data General Eclipse|एक्लिप्स]] | |[[DG/L]]|| 1972 || || अमेरीका || || कंप्यूटर के डीजी [[Data General Eclipse|एक्लिप्स]] वर्ग | ||
|- | |- | ||
|[[S-algol|S-ऐल्गॉल]]|| 1979 || [[Ron Morrison|रॉन मॉरिसन]] ||ग्रेटब्रिटेन | |[[S-algol|S-ऐल्गॉल]]|| 1979 || [[Ron Morrison|रॉन मॉरिसन]] ||ग्रेटब्रिटेन | ||
Line 160: | Line 160: | ||
आधिकारिक तौर पर परिभाषित ऐल्गॉल 60 में कोई I/O सुविधा नहीं थी। कार्यान्वयन ने स्वयं को ऐसे तरीकों से परिभाषित किया जो शायद ही कभी एक दूसरे के साथ संगत थे। इसके विपरीत, ऐल्गॉल 68 ने ट्रांसपुट (इनपुट/आउटपुट) सुविधाओं की एक विस्तृत लाइब्रेरी की पेशकश की। | आधिकारिक तौर पर परिभाषित ऐल्गॉल 60 में कोई I/O सुविधा नहीं थी। कार्यान्वयन ने स्वयं को ऐसे तरीकों से परिभाषित किया जो शायद ही कभी एक दूसरे के साथ संगत थे। इसके विपरीत, ऐल्गॉल 68 ने ट्रांसपुट (इनपुट/आउटपुट) सुविधाओं की एक विस्तृत लाइब्रेरी की पेशकश की। | ||
ऐल्गॉल 60 ने पैरामीटर पासिंग के लिए दो मूल्यांकन योजनयों की अनुमति दी: सामान्य कॉल-बाय-वैल्यू और कॉल-बाय-नेम। कॉल-बाय-रेफरेंस के विपरीत कॉल-बाय-नेम के कुछ प्रभाव हैं। उदाहरण के लिए, पैरामीटर को मान या संदर्भ के रूप में निर्दिष्ट किए बिना, ऐसी प्रक्रिया विकसित करना असंभव है जो दो पैरामीटर के मानों को स्वैप कर देगी यदि वास्तविक पैरामीटर जो एक पूर्णांक चर और एक सरणी है जो उसी पूर्णांक चर द्वारा अनुक्रमित है<ref>{{cite book |last1=Aho |first1=Alfred V. |author-link=Alfred V. Aho |last2=Sethi |first2=Ravi |author2-link=Ravi Sethi |last3=Ullman |first3=Jeffrey D. |author3-link=Jeffrey Ullman |title=[[ड्रैगन बुक (कंप्यूटर विज्ञान)|Compilers: Principles, Techniques, and Tools]] |year=1986 |edition=1st |publisher=Addison-Wesley |isbn=0-201-10194-7}}, Section 7.5, and references therein</ref> | ऐल्गॉल 60 ने पैरामीटर पासिंग के लिए दो मूल्यांकन योजनयों की अनुमति दी: सामान्य कॉल-बाय-वैल्यू और कॉल-बाय-नेम। कॉल-बाय-रेफरेंस के विपरीत कॉल-बाय-नेम के कुछ प्रभाव हैं। उदाहरण के लिए, पैरामीटर को मान या संदर्भ के रूप में निर्दिष्ट किए बिना, ऐसी प्रक्रिया विकसित करना असंभव है जो दो पैरामीटर के मानों को स्वैप कर देगी यदि वास्तविक पैरामीटर जो एक पूर्णांक चर और एक सरणी है जो उसी पूर्णांक चर द्वारा अनुक्रमित है<ref>{{cite book |last1=Aho |first1=Alfred V. |author-link=Alfred V. Aho |last2=Sethi |first2=Ravi |author2-link=Ravi Sethi |last3=Ullman |first3=Jeffrey D. |author3-link=Jeffrey Ullman |title=[[ड्रैगन बुक (कंप्यूटर विज्ञान)|Compilers: Principles, Techniques, and Tools]] |year=1986 |edition=1st |publisher=Addison-Wesley |isbn=0-201-10194-7}}, Section 7.5, and references therein</ref> फलन में स्वैप (i, A [i]) पर पॉइंटर पास करने के बारे में सोचें। अब जब हर बार स्वैप का संदर्भ दिया जाता है, तो इसका पुनर्मूल्यांकन किया जाता है। कहो मैं: = 1 और ए [i]: = 2, इसलिए हर बार स्वैप का संदर्भ दिया जाता है, यह मूल्यों के अन्य संयोजन को लौटाएगा ([1,2], [2,1], [1,2] और इसी तरह ). इसी तरह की स्थिति वास्तविक तर्क के रूप में पारित एक यादृच्छिक कार्य के साथ होती है। | ||
कॉल-बाय-नाम कई कंपाइलर डिजाइनरों द्वारा दिलचस्प थंक्स के लिए जाना जाता है जो इसे लागू करने के लिए उपयोग किए जाते हैं। डोनाल्ड नुथ ने पुनरावृत्ति और गैर-स्थानीय संदर्भों को सही ढंग से लागू करने वाले अलग-अलग कंपाइलरों के लिए मैन या बॉय परीक्षण तैयार किया। इस परीक्षण में कॉल-बाय-नाम का एक उदाहरण है। | कॉल-बाय-नाम कई कंपाइलर डिजाइनरों द्वारा दिलचस्प थंक्स के लिए जाना जाता है जो इसे लागू करने के लिए उपयोग किए जाते हैं। डोनाल्ड नुथ ने पुनरावृत्ति और गैर-स्थानीय संदर्भों को सही ढंग से लागू करने वाले अलग-अलग कंपाइलरों के लिए मैन या बॉय परीक्षण तैयार किया। इस परीक्षण में कॉल-बाय-नाम का एक उदाहरण है। | ||
Line 247: | Line 247: | ||
ऐल्गॉल 58 में कोई I/O सुविधा नहीं थी। | ऐल्गॉल 58 में कोई I/O सुविधा नहीं थी। | ||
==== अल जूल 60 | ==== अल जूल 60 वर्ग ==== | ||
{{main|ऐल्गॉल 60}} | {{main|ऐल्गॉल 60}} | ||
Revision as of 11:54, 16 December 2022
Paradigm | कार्यविधि, आदेशसूचक, संरचित भाषा |
---|---|
परिवार | ऐल्गॉल |
द्वारा डिज़ाइन किया गया | बाउअर, बॉटनब्रुक, रूटीशौसर, सैमुएलसन, बैकस, काट्ज़, पर्लिस, वेगस्टीन, नौर, वाउक्विस, वैन विजनगार्डन, वुडगर, ग्रीन, मैक कार्थी |
पहली प्रस्तुति | 1958 |
टाइपिंग अनुशासन | स्थैतिक, जटिल |
स्कोप | लेक्सिकल |
Influenced | |
सबसे बाद की आदेशसूचक भाषाएँ (अर्थात, ऐल्गॉल जैसी भाषाएं सम्मिलित हैं) उदाहरण PL/I, सिमुला, पास्कल, सी और योजना |
ऐल्गॉल (/ˈælɡɒl, -ɡɔːl/; एल्गोरिदमिक भाषा के लिए संक्षिप्त)[1] आदेशसूचक प्रोग्रामिंग, कंप्यूटर प्रोग्रामिंग भाषाओं की एक श्रेणी होती है, जिसे मूल रूप से 1958 में विकसित किया गया था। ऐल्गॉल ने कई अन्य भाषाओं को बहुत अधिक प्रभावित किया और कंप्यूटिंग तंत्र संस्था (ACM) द्वारा पाठ्यपुस्तकों और शैक्षणिक स्रोतों में तीस से अधिक वर्षों के लिए उपयोग की जाने वाली कलनविधि विवरण के लिए मानक विधि थी।[2]
इस अर्थ में अधिकांश आधुनिक भाषाओं का वाक्य-विन्यास ऐल्गॉल की तरह होता है,[3] यह तीन अन्य उच्च-स्तरीय प्रोग्रामिंग भाषाओं की तुलना में यकीनन अधिक प्रभावशाली थी, जिनमें से यह लगभग समकालीन थी फोरट्रान, लिस्प और कोबोल।[4] इसे फोरट्रान के साथ कुछ कथित समस्याओं से बचने के लिए प्रतिरूपित किया गया था और अंततः PL/I, सिमुला, BCPL, B, पास्कल, और C. सहित कई अन्य प्रोग्रामिंग भाषाओं को जन्म दिया।
ऐल्गॉल ने ब्लॉक (प्रोग्रामिंग) और begin
...end
उनका परिसीमन करने के लिए जोड़े। यह लेक्सिकल स्कोप के साथ नेस्टेड फलन परिभाषाओं को लागू करने वाली पहली भाषा भी थी। इसके अतिरिक्त, यह पहली प्रोग्रामिंग भाषा थी, जिसने औपचारिक भाषा की परिभाषा पर विस्तृत ध्यान दिया और एल्गोल 60#इतिहास के माध्यम से भाषा डिजाइन के लिए एक प्रमुख औपचारिक व्याकरण संकेत बैकस-नौर रूप मे प्रस्तुत किया।
इसकी तीन प्रमुख विशिष्टताएँ थीं, जिनका नाम उन वर्षों के नाम पर रखा गया था, जिन्हें वे पहली बार प्रकाशित किए गए थे।
- ऐल्गॉल 58 - अंतर्राष्ट्रीय बीजगणितीय भाषा के लिए मूल रूप से IAL कहलाने का प्रस्ताव होता था।
- ऐल्गॉल 60 - पहली बार 1961 में X1 ऐल्गॉल 60 के रूप में लागू किया गया। तथा 1963 मे संशोधित किया गया था।[5][6][7]
- ऐल्गॉल 68 - साव्यय सरणियों, स्लाइस, समानता, ऑपरेटर पहचान सहित नए तत्वों को प्रस्तुत किया। तथा 1973 मे संशोधित किया गया था।।[8]
ऐल्गॉल 68 ऐल्गॉल 60 से काफी अलग होता है और अच्छी तरह से प्राप्त नहीं हुआ था, इसलिए सामान्य रूप से ऐल्गॉल का अर्थ ऐल्गॉल 60 और इसकी बोलियाँ होती हैं।
इतिहास
1958 में ज्यूरिख में स्विस फेडरल प्रौद्योगिकी संस्थान (cf. ऐल्गॉल 58) में एक बैठक में यूरोपीय और अमेरिकी कंप्यूटर वैज्ञानिकों की एक समिति द्वारा ऐल्गॉल को संयुक्त रूप से विकसित किया गया था। इसने तीन अलग-अलग वाक्य-विन्यास(सिंटैक्स) निर्दिष्ट किए। एक संदर्भ सिंटैक्स, प्रकाशन सिंटैक्स और कार्यान्वयन सिंटैक्स। अलग-अलग सिंटैक्स ने इसे अलग-अलग भाषाओं के लिए दशमलव बिंदुओं (अल्पविराम बनाम अवधि) के लिए अलग-अलग कीवर्ड नामों और सम्मेलनों का उपयोग करने की अनुमति प्रदान की।
ऐल्गॉल का उपयोग ज्यादातर संयुक्त राज्य अमेरिका और यूरोप में अनुसंधान कंप्यूटर वैज्ञानिकों द्वारा किया जाता था। व्यावसायिक अनुप्रयोगों में इसका उपयोग इसके विवरण में मानक इनपुट/आउटपुट सुविधाओं की अनुपस्थिति और बरोज़ निगम के अतिरिक्त बड़े कंप्यूटर विक्रेताओं द्वारा भाषा में रुचि की कमी के कारण बाधित हुआ था। ऐल्गॉल 60 हालांकि कलन विधि के प्रकाशन के लिए मानक बन गया और भविष्य के भाषा के विकास पर इसका गहरा प्रभाव पड़ा।
जॉन बैकस ने विशेष रूप से ऐल्गॉल 58 की प्रोग्रामिंग भाषाओं का वर्णन करने के लिए बैकस नॉर्मल फॉर्म विधि विकसित किया। इसे ऐल्गॉल 60 के लिए पीटर नौर द्वारा संशोधित और विस्तारित किया गया था।, और डोनाल्ड नुथ के सुझाव पर बैकस-नौर फॉर्म का नाम परिवर्तित दिया गया था।[9]
पीटर नौर:- एएलजीओएल बुलेटिन के संपादक के रूप में मै भाषा की अंतरराष्ट्रीय चर्चाओं में :-खीचा गया था और नवंबर 1959 में यूरोपीय भाषा प्रारुप समूह का सदस्य बनने के लिए चुना गया था। इस क्षमता में मैं एएलजीओएल 60 रिपोर्ट का संपादक था, तथा जनवरी 1960 में पेरिस में ऐल्गॉल 60 की बैठक के परिणामस्वरूप जिसे निर्मित किया गया था।[10]
निम्नलिखित लोगों ने पेरिस में 1 से 16 जनवरी तक बैठक में भाग लिया था।
- फ्रेडरिक एल. बाउर, पीटर नौर, हेंज रटिशौसर, क्लॉस सेमेलसन, बर्नार्ड वाउक्विस, एड्रियान वैन विजनगार्डन, और माइकल वुडगर (यूरोप से)
- जॉन बैकस.जॉन डब्ल्यू.बैकस, जूलियन ग्रीन (कंप्यूटर वैज्ञानिक), चार्ल्स काट्ज, जॉन मैक्कार्थी (कंप्यूटर वैज्ञानिक), एलन पर्लिस. एलन जे. पर्लिस, और जोसेफ हेनरी वेगस्टीन (यूएसए से)।
एलन पेर्लिस ने बैठक का एक विशद वर्णन दिया। बैठकें थकाऊ, अंतहीन और उत्साहजनक थीं। जब किसी के अच्छे विचारों को दूसरों के बुरे विचारों के साथ छोड़ दिया गया तो वह उत्तेजित हो गया था। फिर भी, परिश्रम पूरी अवधि के दौरान उत्कृष्ट बना रहा था।
ऐल्गॉल 60 ने इसके बाद आने वाली कई भाषाओं को प्रेरित किया। टोनी होरे ने टिप्पणी की, यहां एक ऐसी भाषा है जो अपने समय से बहुत आगे है कि यह न केवल अपने पूर्ववर्तियों पर बल्कि इसके लगभग सभी उत्तराधिकारियों पर भी सुधार था रेफरी>प्रोग्रामिंग लैंग्वेज डिजाइन पर संकेत Archived 15 September 2009 at the Wayback Machine, गाड़ी। होरे, दिसंबर 1973. पृष्ठ 27. (इस कथन को कभी-कभी गलत तरीके से एडजर डब्ल्यू. डिजस्ट्रा के लिए जिम्मेदार ठहराया जाता है, जो पहले एल्गोल 60 कंपाइलर को लागू करने में भी सम्मिलित था।) </ रेफ> योजना प्रोग्रामिंग भाषा, लिस्प का एक संस्करण जिसने ब्लॉक को अपनाया ऐल्गॉल की संरचना और लेक्सिकल स्कोप, ऐल्गॉल को श्रद्धांजलि में इसके मानक दस्तावेजों के लिए एल्गोरिदमिक लैंग्वेज स्कीम पर संशोधित रिपोर्ट शब्दों को भी अपनाया। रेफरी नाम = r3rs >Dybvig, R. K.; et al. Rees, Jonathan; Clinger, William; Abelson, Hal (eds.). "एल्गोरिदमिक भाषा योजना पर संशोधित (3) रिपोर्ट, (ALGOL 60 की स्मृति को समर्पित)". Archived from the original on 14 January 2010. Retrieved 20 October 2009.</रेफरी>
ऐल्गॉल और प्रोग्रामिंग भाषा अनुसंधान
जैसा कि पीटर लैंडिन ने उल्लेख किया है, ऐल्गॉल लैम्ब्डा कैलकुलस (कॉल-बाय-नेम) के साथ मूल आदेशसूचक प्रभावों को संयोजित करने वाली पहली भाषा थी। जॉन सी रेनॉल्ड्स के कारण शायद भाषा का सबसे सुंदर सूत्रीकरण है, और यह अपनी वाक्य रचना और शब्दार्थ शुद्धता को सबसे अच्छा प्रदर्शित करता है। कॉल-बाय-वैल्यू भाषाओं जैसे एमएल द्वारा उपयोग किए जाने वाले वैश्विक प्रभावों के विपरीत, रेनॉल्ड्स के आदर्श ऐल्गॉल ने कॉल-बाय-नेम भाषाओं के संदर्भ में स्थानीय प्रभावों की उपयुक्तता के बारे में एक ठोस पद्धति संबंधी तर्क दिया। भाषा की वैचारिक अखंडता ने इसे प्रोग्रामिंग कंप्यूटेबल फ़ंक्शंस (PCF) और ML के साथ सिमेंटिक रिसर्च की मुख्य वस्तुओं में से एक बना दिया।[11]
आईएएल कार्यान्वयन समयरेखा
तिथि करने के लिए ऐल्गॉल 60 के कम से कम 70 संवर्द्धन, विस्तार, व्युत्पत्ति और उपभाषाएं हुई हैं।[12]
नाम | वर्ष | लेखक | देश | विवरण | लक्ष्य सीपीयू |
---|---|---|---|---|---|
ZMMD-कार्यान्वयन | 1958 | फ्रेडरिक एल. बाउर , हेंज रूटीशौसर, क्लॉस सेमेलसन, हरमन बॉटनब्रुक | जर्मनी | ऐल्गॉल 58 का कार्यान्वयन | Z22 (later Zuse's Z23 was delivered with an ऐल्गॉल 60 compiler)[13] |
X1 ऐल्गॉल 60 | August 1960[14] | Edsger W. Dijkstra and Jaap A. Zonneveld | नीदरलैंड | First implementation of ऐल्गॉल 60[15] | Electrologica X1 |
इलियट ऐल्गॉल | 1960s | C. A. R. Hoare | ग्रेटब्रिटेन | Subject of the 1980 Turing lecture[16] | Elliott 803, Elliott 503, Elliott 4100 series |
JOVIAL | 1960 | Jules Schwartz | अमेरीका | A DOD HOL prior to Ada | Various (see article) |
बरोज़ ऐल्गॉल (विभिन्न प्रकार) | 1961 | Burroughs Corporation (with participation by Hoare, Dijkstra, and others) | अमेरीका | Basis of the Burroughs (and now Unisys MCP based) computers | Burroughs large systems and their midrange also. |
केस ऐल्गॉल | 1961 | केस प्रौद्योगिकी संस्थान[17] | अमेरीका | सिमुला को मूल रूप से ऐल्गॉल केस के सिमुलेशन विस्तार के रूप में अनुबंधित किया गया था। | UNIVAC 1107 |
गोगोल | 1961 | William M. McKeeman | अमेरीका | For ODIN time-sharing system[18] | PDP-1 |
रेग्नेसेंट्रलेन ऐल्गॉल | 1961 | Peter Naur, Jørn Jensen | डेनमार्क | पूर्ण ऐल्गॉल 60 का कार्यान्वयन | रेगेंसेन्ट्रलेन में डस्क |
डार्टमाउथ ऐल्गॉल 30 | 1962 | Thomas Eugene Kurtz et al. | अमेरीका | एलजीपी-30 | |
USS 90 ऐल्गॉल | 1962 | L. Petrone | इटली | ||
ऐल्गॉल भाषान्तर | 1962 | G. van der Mey and W.L. van der Poel | नीदरलैंड | स्टैट्सबेड्रिजफ डेर पोस्टेरिजेन, टेलीग्राफी एन टेलीफोनी | ज़ेबरा |
किड्सग्रोव ऐल्गॉल | 1963 | एफ जी डंकन | ग्रेटब्रिटेन | अंग्रेजी इलेक्ट्रिक कंपनी KDF9 | |
वी ऐल्गॉल | 1963 | वैल शोरे | अमेरीका | A test of the META II compiler compiler | |
वेटस्टोन | 1964 | ब्रायन रान्डेल और एल जे रसेल | ग्रेटब्रिटेन | अंग्रेजी इलेक्ट्रिक कंपनी का परमाणु ऊर्जा प्रभाग. Precursor to Ferranti Pegasus, National Physical Laboratories ACE and English Electric DEUCE implementations. | English Electric Company KDF9 |
एनयू ऐल्गॉल | 1965 | नॉर्वे | UNIVAC | ||
अल्गेक | 1965 | सोवियत संघ | किफायती कार्यों के लिए एल्गॉल-60 और कोबोल समर्थन पर आधारित एजेक | मिन्स्क-22 | |
ऐल्गॉल W | 1966 | निकलॉस विर्थ | अमेरीका | ऐल्गॉल 60 के लिए प्रस्तावित उत्तराधिकारी | IBM प्रणाली/360 |
M ऐल्गॉल | 1966 | पब्लिकेशंस ए.विल, एम कोटली और एम. राखेंडी, | एस्टोनिया, सोवियत संघ | मिन्स्क-22 | |
एल्गाम्स | 1967 | जीएएमएस समूह (जीएएमएस, ऑटोमैटिसेज ग्रुप प्रोग्राम, कमकॉन अकादमियों ऑफ साइंस का सहयोग) | कॉमकॉन | Minsk-22, later ES EVM, BESM | |
ऐल्गॉल/ZAM | 1967 | पोलैंड | पोलिश ZAM कंप्यूटर | ||
सिमुला 67 | 1967 | ओले-जोहान डाहल और क्रिस्टन न्यागार्ड | नॉर्वे | ऐल्गॉल 60 कक्षाओं के साथ | यूनीवैक 1107 |
ट्रिपलएक्स-ऐल्गॉल कार्लज़ूए | 1967/1968 | कार्लज़ूए, जर्मनी | ऐल्गॉल 60 (1963) इंटरवल अंकगणित के लिए ट्रिपलेक्स संख्या के साथ | [19] | |
चीन का ऐल्गॉल | 1972 | चीन | प्रतीक प्रणाली के माध्यम से व्यक्त चीनी वर्ण | ||
DG/L | 1972 | अमेरीका | कंप्यूटर के डीजी एक्लिप्स वर्ग | ||
S-ऐल्गॉल | 1979 | रॉन मॉरिसन | ग्रेटब्रिटेन | शिक्षण भाषा के रूप में इच्छित उपयोग के साथ ऑर्थोगोनल डेटाटाइप्स का जोड़ | Java VM पर बाद के कार्यान्वयन के साथ PDP-11 |
बरोज़ बोलियों में ESPOL और NEWP जैसी विशेष बूटस्ट्रैपिंग बोलियाँ सम्मिलित थीं। बाद वाला अभी भी यूनिसिस एमसीपी सिस्टम सॉफ्टवेयर के लिए उपयोग किया जाता है।
गुण
आधिकारिक तौर पर परिभाषित ऐल्गॉल 60 में कोई I/O सुविधा नहीं थी। कार्यान्वयन ने स्वयं को ऐसे तरीकों से परिभाषित किया जो शायद ही कभी एक दूसरे के साथ संगत थे। इसके विपरीत, ऐल्गॉल 68 ने ट्रांसपुट (इनपुट/आउटपुट) सुविधाओं की एक विस्तृत लाइब्रेरी की पेशकश की।
ऐल्गॉल 60 ने पैरामीटर पासिंग के लिए दो मूल्यांकन योजनयों की अनुमति दी: सामान्य कॉल-बाय-वैल्यू और कॉल-बाय-नेम। कॉल-बाय-रेफरेंस के विपरीत कॉल-बाय-नेम के कुछ प्रभाव हैं। उदाहरण के लिए, पैरामीटर को मान या संदर्भ के रूप में निर्दिष्ट किए बिना, ऐसी प्रक्रिया विकसित करना असंभव है जो दो पैरामीटर के मानों को स्वैप कर देगी यदि वास्तविक पैरामीटर जो एक पूर्णांक चर और एक सरणी है जो उसी पूर्णांक चर द्वारा अनुक्रमित है[20] फलन में स्वैप (i, A [i]) पर पॉइंटर पास करने के बारे में सोचें। अब जब हर बार स्वैप का संदर्भ दिया जाता है, तो इसका पुनर्मूल्यांकन किया जाता है। कहो मैं: = 1 और ए [i]: = 2, इसलिए हर बार स्वैप का संदर्भ दिया जाता है, यह मूल्यों के अन्य संयोजन को लौटाएगा ([1,2], [2,1], [1,2] और इसी तरह ). इसी तरह की स्थिति वास्तविक तर्क के रूप में पारित एक यादृच्छिक कार्य के साथ होती है।
कॉल-बाय-नाम कई कंपाइलर डिजाइनरों द्वारा दिलचस्प थंक्स के लिए जाना जाता है जो इसे लागू करने के लिए उपयोग किए जाते हैं। डोनाल्ड नुथ ने पुनरावृत्ति और गैर-स्थानीय संदर्भों को सही ढंग से लागू करने वाले अलग-अलग कंपाइलरों के लिए मैन या बॉय परीक्षण तैयार किया। इस परीक्षण में कॉल-बाय-नाम का एक उदाहरण है।
ऐल्गॉल 68 को एड्रियन वैन विंजार्डन द्वारा आविष्कृत एक दो-स्तरीय व्याकरण औपचारिकता का उपयोग करके परिभाषित किया गया था और जो उनके नाम पर आधारित है। वैन विजनार्डन व्याकरण एक संदर्भ-मुक्त व्याकरण का उपयोग करता है जो कि एक विशेष ऐल्गॉल 68 प्रोग्राम को पहचानने वाली प्रस्तुतियों का एक अनंत सेट उत्पन्न करता है; विशेष रूप से, वे उस तरह की आवश्यकताओं को व्यक्त करने में सक्षम होते हैं, जो कई अन्य प्रोग्रामिंग भाषा मानकों में शब्दार्थ के रूप में लेबल किए गए हैं और उन्हें अस्पष्टता-प्रवण प्राकृतिक भाषा गद्य में व्यक्त किया जाना है, और फिर संकलक में औपचारिक पार्सर भाषा से जुड़े तदर्थ कोड के रूप में लागू किया गया है।
उदाहरण और पोर्टेबिलिटी मुद्दे
कोड नमूना तुलना
ऐल्गॉल 60
जिस तरह से बोल्ड टेक्स्ट को लिखा जाना है, वह कार्यान्वयन पर निर्भर करता है, उदाहरण के लिए 'INTEGER'—उद्धरण चिह्न सम्मिलित होते हैं तथा पूर्णांक के लिए इसे स्ट्रॉपिंग के रूप में जाना जाता है।
procedure Absmax(a) Size:(n, m) Result:(y) Subscripts:(i, k); value n, m; array a; integer n, m, i, k; real y; comment The absolute greatest element of the matrix a, of size n by m is transferred to y, and the subscripts of this element to i and k; begin integer p, q; y := 0; i := k := 1; for p := 1 step 1 until n do for q := 1 step 1 until m do if abs(a[p, q]) > y then begin y := abs(a[p, q]); i := p; k := q end end Absmax
इलियट 803 ऐल्गॉल का उपयोग करके टेबल बनाने का एक उदाहरण यहां दिया गया है।[21]
फ़्लोटिंग पॉइंट एल्गोल परीक्षण
BEGIN REAL A,B,C,D' READ D' FOR A:= 0.0 STEP D UNTIL 6.3 DO BEGIN PRINT PUNCH(3),££L??' B := SIN(A)' C := COS(A)' PRINT PUNCH(3),SAMELINE,ALIGNED(1,6),A,B,C' END' END'
PUNCH(3) टेप पंच के अतिरिक्त टेलीप्रिंटर को आउटपुट भेजता है।
SAMELINE सामान्य रूप से तर्कों के बीच मुद्रित कैरिज return + लाइन फीड को दबा देता है।
ALIGNED(1,6) दशमलव बिंदु के पहले 1 अंक और 6 के साथ आउटपुट के प्रारूप को नियंत्रित करता है।
ऐल्गॉल 68
निम्नलिखित कोड नमूने उपरोक्त ऐल्गॉल 60 कोड नमूने के ऐल्गॉल 68 संस्करण हैं।
ऐल्गॉल 68 कार्यान्वयन ने स्ट्रॉपिंग के लिए ऐल्गॉल 60 के दृष्टिकोण का उपयोग किया। ऐल्गॉल 68 के स्थितिमें बोल्ड टाइपफेस वाले टोकन आरक्षित शब्द, प्रकार (मोड) या ऑपरेटर हैं।
proc abs max = ([,]real a, ref real y, ref int i, k)real: comment The absolute greatest element of the matrix a, of size ⌈a by 2⌈a is transferred to y, and the subscripts of this element to i and k; comment begin real y := 0; i := ⌊a; k := 2⌊a; for p from ⌊a to ⌈a do for q from 2⌊a to 2⌈a do if abs a[p, q] > y then y := abs a[p, q]; i := p; k := q fi od od; y end # abs max #
नोट: किसी सरणी की निचली (⌊) और ऊपरी (⌈) सीमाएं, और सरणी स्लाइसिंग, सीधे प्रोग्रामर के लिए उपलब्ध हैं।
floating point ऐल्गॉल68 test: ( real a,b,c,d; # printf – sends output to the file stand out. # # printf($p$); – selects a new page # printf(($pg$, Enter d: )); read(d); for step from 0 while a:=step*d; a <= 2*pi do printf($l$); # $l$ - selects a new line. # b := sin(a); c := cos(a); printf(($z-d.6d$,a,b,c)) # formats output with 1 digit before and 6 after the decimal point. # od )
समयरेखा: हैलो वर्ल्ड
एक कार्यान्वयन से दूसरे कार्यान्वयन में कार्यक्रमों की विविधता और पोर्टेबिलिटी की कमी को क्लासिक हैलो वर्ल्ड प्रोग्राम द्वारा सरलता से प्रदर्शित किया जाता है।
ऐल्गॉल 58 (आईएएल)
ऐल्गॉल 58 में कोई I/O सुविधा नहीं थी।
अल जूल 60 वर्ग
चूंकि ऐल्गॉल 60 में कोई I/O सुविधा नहीं थी, इसलिए ऐल्गॉल में कोई पोर्टेबल हैलो वर्ल्ड प्रोग्राम नहीं है। अगले तीन उदाहरण बरोज़ एक्सटेंडेड ऐल्गॉल में हैं। परस्पर संवादात्मक टर्मिनल पर पहले दो प्रत्यक्ष आउटपुट वे चलते हैं। पहला सी के समान एक वर्ण सरणी का उपयोग करता है। भाषा सरणी पहचानकर्ता को सरणी के सूचक के रूप में उपयोग करने की अनुमति देती है, और इसलिए एक REPLACE कथन में।
BEGIN
FILE F(KIND=REMOTE);
EBCDIC ARRAY E[0:11];
REPLACE E BY "HELLO WORLD!";
WRITE(F, *, E);
END.
एक इनलाइन प्रारूप का उपयोग कर एक सरल प्रोग्राम:
BEGIN
FILE F(KIND=REMOTE);
WRITE(F, <"HELLO WORLD!">);
END.
डिस्प्ले स्टेटमेंट का उपयोग करने वाला एक और भी सरल प्रोग्राम। ध्यान दें कि इसका आउटपुट सिस्टम कंसोल ('एसपीओ') पर समाप्त होगा:
BEGIN DISPLAY("HELLO WORLD!") END.
इलियट एल्गोल I/O का उपयोग करने वाला एक वैकल्पिक उदाहरण इस प्रकार है। इलियट ऐल्गॉल ने ओपन-स्ट्रिंग-कोट और क्लोज-स्ट्रिंग-कोट के लिए अलग-अलग वर्णों का उपयोग किया, जिसे यहां दर्शाया गया है ‘ तथा ’ .
program HiFolks;
begin
print ‘Hello world’
end;
नीचे इलियट 803 एल्गोल (ए104) से एक संस्करण है। मानक इलियट 803 में पांच-छेद वाले पेपर टेप का उपयोग किया गया था और इस प्रकार केवल ऊपरी मामला था। कोड में किसी भी उद्धरण वर्ण का अभाव था इसलिए £ (यूके पाउंड साइन) का उपयोग खुले उद्धरण के लिए किया गया था और ? (प्रश्न चिह्न) करीबी उद्धरण के लिए। विशेष दृश्यों को दोहरे उद्धरण चिह्नों में रखा गया था (उदाहरण के लिए ££L?? ने टेलीप्रिंटर पर एक नई पंक्ति बनाई)।
HIFOLKS'
BEGIN PRINT £HELLO WORLD£L??' END'
ICT 1900 श्रृंखला ऐल्गॉल I/O संस्करण ने पेपर टेप या पंच कार्ड से इनपुट की अनुमति दी। पेपर टेप 'फुल' मोड में लोअर केस की अनुमति है। आउटपुट एक लाइन प्रिंटर के लिए था। ओपन और क्लोज कोट कैरेक्टर्स को '(' और ')' और स्पेस को % द्वारा दर्शाया गया था। [24][22]
'BEGIN' WRITE TEXT('('HELLO%WORLD')'); 'END'
ऐल्गॉल 68
ऐल्गॉल 68 कोड सामान्य रूप से लोअरकेस में आरक्षित शब्दों के साथ प्रकाशित किया गया था, लेकिन बोल्ड या रेखांकित किया गया।
begin printf(($gl$, Hello, world! )) end
ऐल्गॉल 68 रिपोर्ट की भाषा में इनपुट/आउटपुट सुविधाओं को सामूहिक रूप से ट्रांसपुट कहा जाता था।
ऐल्गॉल विशेष वर्णों की समयरेखा
ऐल्गॉल की कल्पना ऐसे समय में की गई थी जब चरित्र सेट विविध थे और तेजी से विकसित हो रहे थे; इसके अतिरिक्त, ऐल्गॉल-एस को परिभाषित किया गया था ताकि केवल अपरकेस अक्षरों की आवश्यकता हो।
1960: IFIP - ऐल्गॉल 60 भाषा और रिपोर्ट में कई गणितीय प्रतीक सम्मिलित थे जो आधुनिक कंप्यूटर और ऑपरेटिंग सिस्टम पर उपलब्ध हैं, लेकिन दुर्भाग्य से, उस समय अधिकांश कंप्यूटिंग सिस्टम पर असमर्थित थे। उदाहरण के लिए: ×, ÷, ≤, ≥, ≠, ¬, ∨, ∧, ⊂, ≡, ␣ और ⏨।
1961 सितंबर: ASCII - ASCII वर्ण सेट, तब विकास के प्रारंभिक चरण में, ऐल्गॉल के बूलियन ऑपरेटरों /\ और \/ का समर्थन करने के लिए इसमें \ (बैक स्लैश) वर्ण जोड़ा गया था।[23]
1962: एल्कोर - इस कैरेक्टर सेट में असामान्य ᛭ सम्मिलित था रूनिक क्रॉस[24] गुणन के लिए वर्ण और ⏨ दशमलव घातांक चिह्न[25] फ़्लोटिंग पॉइंट नोटेशन के लिए।[26][27][28]
1964: GOST - 1964 के सोवियत मानक GOST 10859 ने ऐल्गॉल में 4-बिट, 5-बिट, 6-बिट और 7-बिट वर्णों की एन्कोडिंग की अनुमति दी।[29]
1968: ऐल्गॉल 68 रिपोर्ट - मौजूदा ऐल्गॉल वर्णों का उपयोग किया गया, और आगे अपनाया गया →, ↓, ↑, □, ⌊, ⌈, ⎩, ⎧, ○, ⊥, और ¢ वर्ण जो IBM 2741 कीबोर्ड पर पाए जा सकते हैं टाइपबॉल (या गोल्फ बॉल) प्रिंट हेड डाले गए (जैसे एपीएल गोल्फ बॉल)। ये 1960 के दशक के मध्य में उपलब्ध हुए जब ऐल्गॉल 68 का मसौदा तैयार किया जा रहा था। रिपोर्ट का रूसी, जर्मन, फ्रेंच और बल्गेरियाई में अनुवाद किया गया था, और बड़े वर्ण सेट वाली भाषाओं में प्रोग्रामिंग की अनुमति दी गई थी, उदाहरण के लिए, सोवियत BESM-4 के सिरिलिक वर्णमाला। ऐल्गॉल के सभी अक्षर भी यूनिकोड मानक का हिस्सा हैं और उनमें से अधिकांश कई लोकप्रिय फोंट में उपलब्ध हैं।
2009 अक्टूबर: यूनिकोड - फ़्लोटिंग पॉइंट नोटेशन के लिए ⏨
(दशमलव प्रतिपादक प्रतीक) को यूनिकोड 5.2 में ऐतिहासिक बुरान कार्यक्रम ऐल्गॉल सॉफ़्टवेयर के साथ पिछड़े संगतता के लिए जोड़ा गया था।[30]
यह भी देखें
संदर्भ
- ↑ The name of this language family is sometimes given in mixed case (Algol 60 Archived 25 June 2007 at the Wayback Machine), and sometimes in all uppercase (ALGOL68 Archived 13 September 2014 at the Wayback Machine). For simplicity this article uses ALGOL.
- ↑ Collected Algorithms of the ACM Archived 17 October 2011 at Wikiwix Compressed archives of the algorithms. ACM.
- ↑ O'Hearn, P. W.; Tennent, R. D. (September 1996). "अल्गोल जैसी भाषाएं, परिचय". Archived from the original on 14 November 2011.
- ↑ "The ALGOL Programming Language" Archived 6 October 2016 at the Wayback Machine, University of Michigan-Dearborn
- ↑ Backus, J. W.; Bauer, F. L.; Green, J.; Katz, C.; McCarthy, J.; Perlis, A. J.; Rutishauser, H.; Samelson, K.; Vauquois, B.; Wegstein, J. H.; van Wijngaarden, A.; Woodger, M. (May 1960). Naur, Peter (ed.). "एल्गोरिदमिक भाषा ALGOL 60 पर रिपोर्ट". Communications of the ACM. Copenhagen. 3 (5): 299–314. doi:10.1145/367236.367262. ISSN 0001-0782. S2CID 278290.
- ↑ "एल्गोरिद्मिक लैंग्वेज एल्गोल 60 पर संशोधित रिपोर्ट". 1963. Archived from the original on 25 June 2007. Retrieved 8 June 2007.
- ↑ "X1 के लिए एक ALGOL 60 अनुवादक" (PDF). 1961. Archived (PDF) from the original on 9 October 2022. Retrieved 7 January 2021.
- ↑ "एल्गोरिथम भाषा ALGOL 68 पर संशोधित रिपोर्ट" (PDF). 1973. Archived (PDF) from the original on 13 September 2014. Retrieved 13 September 2014.
- ↑ Knuth, Donald E. (1964). "बैकस नॉर्मल फॉर्म बनाम बैकस नौर फॉर्म". Communications of the ACM. 7 (12): 735–736. doi:10.1145/355588.365140. S2CID 47537431.
- ↑ ACM पुरस्कार प्रशस्ति पत्र: पीटर नौर Archived 2 April 2012 at Archive-It, 2005
- ↑ O'Hearn, Peter; Tennent, Robert D. (1997). अल्गोल जैसी भाषाएँ. Cambridge, Massachusetts, United States: Birkhauser Boston. doi:10.1007/978-1-4612-4118-8. ISBN 978-0-8176-3880-1. S2CID 6273486.
- ↑ "कंप्यूटर भाषाओं का विश्वकोश". Archived from the original on 27 September 2011. Retrieved 20 January 2012.
- ↑ Computer Museum History Archived 20 August 2010 at the Wayback Machine, Historical Zuse-Computer Z23, restored by the Konrad Zuse Schule in Hünfeld, for the Computer Museum History Center in Mountain View (California) USA
- ↑ Daylight, E. G. (2011). "Dijkstra's Rallying Cry for Generalization: the Advent of the Recursive Procedure, late 1950s – early 1960s". The Computer Journal. 54 (11): 1756–1772. CiteSeerX 10.1.1.366.3916. doi:10.1093/comjnl/bxr002. Archived from the original on 12 March 2013.
- ↑ Kruseman Aretz, F.E.J. (30 June 2003). "The Dijkstra-Zonneveld ALGOL 60 compiler for the Electrologica X1". Software Engineering (PDF). History of Computer Science. Amsterdam: Centrum Wiskunde & Informatica. Archived (PDF) from the original on 4 March 2016.
- ↑ Hoare, Antony (1980). "The Emperor's Old Clothes". Communications of the ACM. 24 (2): 75–83. doi:10.1145/358549.358561. Archived from the original on 13 September 2017.
- ↑ Koffman, Eliot. "All I Really Need to KnowI Learned in CS1" (PDF). Archived from the original (PDF) on 12 October 2012. Retrieved 20 May 2012.
- ↑ "GOGOL – PDP-1 Algol 60 (Computer Language)". Online Historical Encyclopaedia of Programming Languages. Archived from the original on 2 February 2018. Retrieved 1 February 2018.
- ↑ Wippermann, Hans-Wilm (1968) [1967-06-15, 1966]. "Definition von Schrankenzahlen in Triplex-ALGOL". Computing (in Deutsch). Karlsruhe, Germany: Springer. 3 (2): 99–109. doi:10.1007/BF02277452. ISSN 0010-485X. S2CID 36685400. (11 pages)
- ↑ Aho, Alfred V.; Sethi, Ravi; Ullman, Jeffrey D. (1986). Compilers: Principles, Techniques, and Tools (1st ed.). Addison-Wesley. ISBN 0-201-10194-7., Section 7.5, and references therein
- ↑ "803 ALGOL" Archived 29 May 2010 at the Wayback Machine, the manual for Elliott 803 ALGOL
- ↑ "ICL 1900 श्रृंखला: एल्गोरिथम भाषा". ICL Technical Publication 3340. 1965.
- ↑ How ASCII Got Its Backslash Archived 11 July 2014 at the Wayback Machine, Bob Bemer
- ↑ iron/runic cross
- ↑ Decimal Exponent Symbol
- ↑ Baumann, R. (October 1961). "एल्कोर ग्रुप का एल्गोल मैनुअल, भाग 1" [ALGOL Manual of the ALCOR Group]. Elektronische Rechenanlagen (in Deutsch): 206–212.
- ↑ Baumann, R. (December 1961). "एल्कोर ग्रुप का एल्गोल मैनुअल, भाग 2" [ALGOL Manual of the ALCOR Group]. Elektronische Rechenanlagen (in Deutsch). 6: 259–265.
- ↑ Baumann, R. (April 1962). "एल्कोर ग्रुप का एल्गोल मैनुअल, भाग 3" [ALGOL Manual of the ALCOR Group]. Elektronische Rechenanlagen (in Deutsch). 2.
- ↑ "GOST 10859 मानक". Archived from the original on 16 June 2007. Retrieved 5 June 2007.
- ↑ Broukhis, Leonid (22 January 2008). "Revised proposal to encode the decimal exponent symbol" (PDF). www.unicode.org. ISO/IEC JTC 1/SC 2/WG 2. Archived (PDF) from the original on 31 July 2015. Retrieved 24 January 2016.
This means that the need to transcode GOST-based software and documentation can still arise: legacy numerical algorithms (some of which may be of interest,e.g. for the automatic landing of the Buran shuttle ...) optimized for the non-IEEE floating point representation of BESM-6 cannot be simply recompiled and be expected to work reliably, and some human intervention may be necessary.
अग्रिम पठन
- Baumann, Richard [in Deutsch]; Feliciano, Manuel; Bauer, Friedrich Ludwig; Samelson, Klaus (1964). Introduction to ALGOL – A primer for the non-specialist, emphasizing the practical uses of the algorithmic language. Series in Automatic Computation. Englewood Cliffs, New Jersey, USA: Prentice-Hall, Inc. ISBN 0-13-477828-6. LCCN 64-10740. ark:/13960/t6qz35p37. Retrieved 23 October 2022.
- Brian Randell and L. J. Russell, ऐल्गॉल 60 Implementation: The Translation and Use of ऐल्गॉल 60 Programs on a Computer. Academic Press, 1964. The design of the Whetstone Compiler. One of the early published descriptions of implementing a compiler. See the related papers: Whetstone ऐल्गॉल Revisited, and The Whetstone KDF9 ऐल्गॉल Translator by Brian Randell
- Dijkstra, E. W (1961), Algol 60 translation: an algol 60 translator for the x1 and making a translator for algol 60 (PDF), report MR 35/61, Amsterdam: Mathematisch Centrum, archived (PDF) from the original on 9 October 2022
- Kruseman Aretz, Frans E.J., The Dijkstra–Zonneveld ALGOL 60 compiler for the Electrologica X1 (PDF), Historical note SEN, 2, Amsterdam: Centrum voor Wiskunde en Informatica, archived (PDF) from the original on 9 October 2022
- Revised Report on the Algorithmic Language ऐल्गॉल 60 by Peter Naur, et al. ऐल्गॉल definition
- The European Side of the Last Phase of the Development of ऐल्गॉल 60 by Peter Naur