अल्गोल

From Vigyanwiki
Revision as of 21:39, 15 December 2022 by alpha>Ashutoshyadav

ऐल्गॉल
1965 ALGOL-20 A Language Manual, Fierst et al - cover.jpg
ऐल्गॉल-20 के लिए 1965 का स्वतः
Paradigm कार्यविधि संबन्धी, आदेशसूचक, संरचित भाषा
परिवारऐल्गॉल
द्वारा डिज़ाइन किया गयाबाउअर, बॉटनब्रुक, रूटीशौसर, सैमुएलसन, बैकस, काट्ज़, पर्लिस, वेगस्टीन, नौर, वाउक्विस, वैन विजनगार्डन, वुडगर, ग्रीन, मैक कार्थी
पहली प्रस्तुति1958; 66 years ago (1958)
टाइपिंग अनुशासनस्थैतिक, जटिल
स्कोपLexical
Influenced
Most subsequent imperative languages (including so-called ALGOL-like languages)
e.g. PL/I, Simula, Pascal, C and Scheme

अल्गोल (/ˈælɡɒl, -ɡɔːl/; एल्गोरिथम भाषा के लिए संक्षिप्त)[1] अनिवार्य प्रोग्रामिंग कंप्यूटर प्रोग्रामिंग भाषाओं का एक परिवार है जिसे मूल रूप से 1958 में विकसित किया गया था। ALGOL ने कई अन्य भाषाओं को बहुत अधिक प्रभावित किया और एसोसिएशन फॉर कंप्यूटिंग मशीनरी (ACM) द्वारा पाठ्यपुस्तकों और शैक्षणिक स्रोतों में तीस से अधिक वर्षों के लिए उपयोग की जाने वाली एल्गोरिथम विवरण के लिए मानक विधि थी।[2] इस अर्थ में कि अधिकांश आधुनिक भाषाओं की सिंटेक्स (प्रोग्रामिंग भाषाएं) एल्गोल जैसी हैं,[3] यह यकीनन तीन अन्य उच्च-स्तरीय प्रोग्रामिंग भाषाओं की तुलना में अधिक प्रभावशाली थी, जिनमें से यह मोटे तौर पर समकालीन थी: फोरट्रान, लिस्प (प्रोग्रामिंग भाषा), और कोबोल।[4] इसे फोरट्रान के साथ कुछ कथित समस्याओं से बचने के लिए डिज़ाइन किया गया था और अंततः पीएल / आई, सिमुला, बीसीपीएल, बी (प्रोग्रामिंग भाषा), पास्कल (प्रोग्रामिंग भाषा), और सी (प्रोग्रामिंग भाषा) सहित कई अन्य प्रोग्रामिंग भाषाओं को जन्म दिया।

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

तीन प्रमुख विशिष्टताएँ थीं, जिनका नाम उन वर्षों के नाम पर रखा गया था जिन्हें वे पहली बार प्रकाशित किए गए थे:

  • ALGOL 58 - अंतर्राष्ट्रीय बीजगणितीय भाषा के लिए मूल रूप से IAL कहलाने का प्रस्ताव है।
  • ALGOL 60 - पहली बार 1961 में X1 ALGOL 60 के रूप में लागू किया गया। संशोधित 1963।[5][6][7]
  • ALGOL 68 - लचीली सरणियों, स्लाइस, समानता, ऑपरेटर पहचान सहित नए तत्वों को पेश किया। संशोधित 1973।[8]

ALGOL 68 ALGOL 60 से काफी अलग है और अच्छी तरह से प्राप्त नहीं हुआ था, इसलिए सामान्य तौर पर Algol का अर्थ ALGOL 60 और इसकी बोलियाँ हैं।

इतिहास

1958 में ETH ज्यूरिख (cf. ALGOL 58) में एक बैठक में यूरोपीय और अमेरिकी कंप्यूटर वैज्ञानिकों की एक समिति द्वारा ALGOL को संयुक्त रूप से विकसित किया गया था। इसने तीन अलग-अलग सिंटैक्स निर्दिष्ट किए: एक संदर्भ सिंटैक्स, एक प्रकाशन सिंटैक्स और एक कार्यान्वयन सिंटैक्स। अलग-अलग सिंटैक्स ने इसे अलग-अलग भाषाओं के लिए दशमलव बिंदुओं (अल्पविराम बनाम अवधि) के लिए अलग-अलग कीवर्ड नामों और सम्मेलनों का उपयोग करने की अनुमति दी।

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

caption
एल्गोल, फोरट्रान और कोबोल प्रोग्रामिंग लैंग्वेज डायनेस्टी का फैमिली ट्री

जॉन बैकस ने विशेष रूप से ALGOL 58 के लिए प्रोग्रामिंग भाषाओं का वर्णन करने के लिए बैकस सामान्य रूप विधि विकसित की। इसे ALGOL 60 के लिए पीटर नौर द्वारा संशोधित और विस्तारित किया गया था, और डोनाल्ड नुथ के सुझाव पर इसका नाम बदलकर बैकस-नौर रखा गया।[9]

पीटर नौर: ALGOL बुलेटिन के संपादक के रूप में मैं भाषा की अंतर्राष्ट्रीय चर्चाओं में शामिल हो गया था और नवंबर 1959 में यूरोपीय भाषा डिजाइन समूह का सदस्य बनने के लिए चुना गया था। इस क्षमता में मैं ALGOL 60 रिपोर्ट का संपादक था, जिसे इस रूप में तैयार किया गया था जनवरी 1960 में पेरिस में ALGOL 60 बैठक का परिणाम।[10]

निम्नलिखित लोगों ने पेरिस में बैठक में भाग लिया (1 से 16 जनवरी तक):

  • फ्रेडरिक एल. बाउर, पीटर नौर, हेंज रटिशौसर, क्लॉस सेमेलसन, बर्नार्ड वाउक्विस, एड्रियान वैन विजनगार्डन, और माइकल वुडगर (यूरोप से)
  • जॉन बैकस|जॉन डब्ल्यू.बैकस, जूलियन ग्रीन (कंप्यूटर वैज्ञानिक), चार्ल्स काट्ज, जॉन मैक्कार्थी (कंप्यूटर वैज्ञानिक), एलन पर्लिस|एलन जे. पर्लिस, और जोसेफ हेनरी वेगस्टीन (यूएसए से)।

एलन पेर्लिस ने बैठक का एक विशद विवरण दिया: बैठकें थकाऊ, अंतहीन और उत्साहजनक थीं। जब दूसरों के बुरे विचारों के साथ-साथ अपने अच्छे विचारों को भी त्याग दिया जाता है तो व्यक्ति क्रोधित हो जाता है। फिर भी, पूरी अवधि के दौरान परिश्रम जारी रहा। 13 की केमिस्ट्री बेहतरीन थी।

ALGOL 60 ने इसके बाद आने वाली कई भाषाओं को प्रेरित किया। टोनी होरे ने टिप्पणी की: यहां एक ऐसी भाषा है जो अपने समय से बहुत आगे है कि यह न केवल अपने पूर्ववर्तियों पर बल्कि इसके लगभग सभी उत्तराधिकारियों पर भी सुधार था। रेफरी>प्रोग्रामिंग लैंग्वेज डिजाइन पर संकेत Archived 15 September 2009 at the Wayback Machine, गाड़ी। होरे, दिसंबर 1973. पृष्ठ 27. (इस कथन को कभी-कभी गलत तरीके से एडजर डब्ल्यू. डिजस्ट्रा के लिए जिम्मेदार ठहराया जाता है, जो पहले एल्गोल 60 कंपाइलर को लागू करने में भी शामिल था।) </ रेफ> योजना (प्रोग्रामिंग भाषा) प्रोग्रामिंग भाषा, लिस्प का एक संस्करण ( प्रोग्रामिंग लैंग्वेज) जिसने ALGOL के ब्लॉक स्ट्रक्चर और लेक्सिकल स्कोप को अपनाया, ALGOL को श्रद्धांजलि में इसके मानक दस्तावेजों के लिए एल्गोरिथम लैंग्वेज स्कीम पर वर्डिंग रिवाइज्ड रिपोर्ट को भी अपनाया। रेफरी नाम = 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.</रेफरी>

ALGOL और प्रोग्रामिंग भाषा अनुसंधान

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


आईएएल कार्यान्वयन समयरेखा

तिथि करने के लिए अल्गोल 60 के कम से कम 70 संवर्द्धन, विस्तार, व्युत्पत्ति और उपभाषाएं हुई हैं।[12]

Name Year Author Country Description Target CPU
ZMMD-implementation 1958 Friedrich L. Bauer, Heinz Rutishauser, Klaus Samelson, Hermann Bottenbruch Germany implementation of ALGOL 58 Z22
(later Zuse's Z23 was delivered with an Algol 60 compiler)[13]
X1 ALGOL 60 August 1960[14] Edsger W. Dijkstra and Jaap A. Zonneveld Netherlands First implementation of ALGOL 60[15] Electrologica X1
Elliott ALGOL 1960s C. A. R. Hoare UK Subject of the 1980 Turing lecture[16] Elliott 803, Elliott 503, Elliott 4100 series
JOVIAL 1960 Jules Schwartz USA A DOD HOL prior to Ada Various (see article)
Burroughs Algol
(Several variants)
1961 Burroughs Corporation (with participation by Hoare, Dijkstra, and others) USA Basis of the Burroughs (and now Unisys MCP based) computers Burroughs large systems and their midrange also.
Case ALGOL 1961 Case Institute of Technology[17] USA Simula was originally contracted as a simulation extension of the Case ALGOL UNIVAC 1107
GOGOL 1961 William M. McKeeman USA For ODIN time-sharing system[18] PDP-1
RegneCentralen ALGOL 1961 Peter Naur, Jørn Jensen Denmark Implementation of full Algol 60 DASK at Regnecentralen
Dartmouth ALGOL 30 1962 Thomas Eugene Kurtz et al. USA LGP-30
USS 90 Algol 1962 L. Petrone Italy
Algol Translator 1962 G. van der Mey and W.L. van der Poel Netherlands Staatsbedrijf der Posterijen, Telegrafie en Telefonie ZEBRA
Kidsgrove Algol 1963 F. G. Duncan UK English Electric Company KDF9
VALGOL 1963 Val Schorre USA A test of the META II compiler compiler
Whetstone 1964 Brian Randell and L. J. Russell UK Atomic Power Division of English Electric Company. Precursor to Ferranti Pegasus, National Physical Laboratories ACE and English Electric DEUCE implementations. English Electric Company KDF9
NU ALGOL 1965 Norway UNIVAC
ALGEK 1965 USSR АЛГЭК, based on ALGOL-60 and COBOL support, for economical tasks Minsk-22
ALGOL W 1966 Niklaus Wirth USA Proposed successor to ALGOL 60 IBM System/360
MALGOL 1966 publ. A. Viil, M Kotli & M. Rakhendi, Estonia, USSR Minsk-22
ALGAMS 1967 GAMS group (ГАМС, группа автоматизации программирования для машин среднего класса), cooperation of Comecon Academies of Science Comecon Minsk-22, later ES EVM, BESM
ALGOL/ZAM 1967 Poland Polish ZAM computer
Simula 67 1967 Ole-Johan Dahl and Kristen Nygaard Norway Algol 60 with classes UNIVAC 1107
Triplex-ALGOL Karlsruhe 1967/1968 Karlsruhe, Germany ALGOL 60 (1963) with triplex numbers for interval arithmetic [19]
Chinese Algol 1972 China Chinese characters, expressed via the Symbol system
DG/L 1972 USA DG Eclipse family of Computers
S-algol 1979 Ron Morrison UK Addition of orthogonal datatypes with intended use as a teaching language PDP-11 with a subsequent implementation on the Java VM

बरोज़ बोलियों में विशेष बूटस्ट्रैपिंग बोलियाँ शामिल थीं जैसे कि एक्जीक्यूटिव सिस्टम प्रॉब्लम ओरिएंटेड लैंग्वेज और NEWP। बाद वाला अभी भी यूनिसिस एमसीपी सिस्टम सॉफ्टवेयर के लिए उपयोग किया जाता है।

गुण

आधिकारिक तौर पर परिभाषित ALGOL 60 में कोई I/O सुविधा नहीं थी; कार्यान्वयन ने स्वयं को ऐसे तरीकों से परिभाषित किया जो शायद ही कभी एक दूसरे के साथ संगत थे। इसके विपरीत, ALGOL 68 ने ट्रांसपुट (इनपुट/आउटपुट) सुविधाओं की एक विस्तृत लाइब्रेरी की पेशकश की।

ALGOL 60 ने पैरामीटर (कंप्यूटर साइंस) पास करने के लिए दो मूल्यांकन रणनीति की अनुमति दी: कॉमन कॉल-बाय-वैल्यू और कॉल-बाय-नेम। कॉल-बाय-रेफरेंस के विपरीत कॉल-बाय-नेम के कुछ प्रभाव हैं। उदाहरण के लिए, पैरामीटर को मान या संदर्भ के रूप में निर्दिष्ट किए बिना, ऐसी प्रक्रिया विकसित करना असंभव है जो दो पैरामीटर के मानों को स्वैप कर देगी यदि वास्तविक पैरामीटर जो एक पूर्णांक चर और एक सरणी है जो उसी पूर्णांक चर द्वारा अनुक्रमित है .[20] फ़ंक्शन में स्वैप (i, A [i]) पर पॉइंटर पास करने के बारे में सोचें। अब जब हर बार स्वैप का संदर्भ दिया जाता है, तो इसका पुनर्मूल्यांकन किया जाता है। कहो मैं: = 1 और ए [i]: = 2, इसलिए हर बार स्वैप का संदर्भ दिया जाता है, यह मूल्यों के अन्य संयोजन को लौटाएगा ([1,2], [2,1], [1,2] और इसी तरह ). इसी तरह की स्थिति वास्तविक तर्क के रूप में पारित एक यादृच्छिक कार्य के साथ होती है।

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

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

उदाहरण और पोर्टेबिलिटी मुद्दे

कोड नमूना तुलना

अल्गोल 60

(जिस तरह से बोल्ड टेक्स्ट को लिखा जाना है, वह कार्यान्वयन पर निर्भर करता है, उदाहरण के लिए 'INTEGER'-उद्धरण चिह्न शामिल हैं-पूर्णांक के लिए। इसे स्ट्रॉपिंग (प्रोग्रामिंग) के रूप में जाना जाता है।)

प्रक्रिया एब्समैक्स (ए) आकार: (एन, एम) परिणाम: (वाई) सबस्क्रिप्ट: (i, के);
    मूल्य एन, एम; सरणी ए; पूर्णांक एन, एम, आई, के; असली वाई;
टिप्पणी मैट्रिक्स ए का पूर्ण सबसे बड़ा तत्व, आकार एन द्वारा एम
    y में स्थानांतरित किया जाता है, और इस तत्व की सदस्यता i और k में;
शुरू करना
    पूर्णांक पी, क्यू;
    वाई: = 0; मैं := के := 1;
    p के लिए := 1 चरण 1 तक n करें
        q के लिए := 1 चरण 1 तक m करें
            अगर एब्स (ए [पी, क्यू])> वाई तो
                बेगिन वाई: = एब्स (ए [पी, क्यू]);
                    मैं := पी; के:= क्यू
                समाप्त
एब्समैक्स को समाप्त करें

इलियट 803 ALGOL का उपयोग करके टेबल (सूचना) कैसे तैयार करें, इसका एक उदाहरण यहां दिया गया है।[21] फ़्लोटिंग पॉइंट एल्गोल टेस्ट'

 वास्तविक ए, बी, सी, डी 'शुरू करें
 
 पुनः जोड़ो'
 
 A के लिए:= 0.0 STEP D 6.3 DO तक
 शुरू करना
   प्रिंट पंच(3),££L??'
   बी := पाप (ए)'
   सी := सीओएस(ए)'
   प्रिंट पंच (3), समलाइन, संरेखित (1,6), ए, बी, सी '
 समाप्त'
 समाप्त'

PUNCH(3) टेप पंच के बजाय टेलीप्रिंटर को आउटपुट भेजता है।
SAMELINE कैरिज रिटर्न + लाइन फीड को आम तौर पर तर्कों के बीच मुद्रित करता है।
ALIGNED(1,6) दशमलव बिंदु के पहले 1 अंक और 6 के साथ आउटपुट के प्रारूप को नियंत्रित करता है।

अल्गोल 68

निम्नलिखित कोड नमूने उपरोक्त ALGOL 60 कोड नमूने के ALGOL 68 संस्करण हैं।

ALGOL 68 कार्यान्वयन ने स्ट्रॉपिंग (प्रोग्रामिंग) के लिए ALGOL 60 के दृष्टिकोण का उपयोग किया। ALGOL 68 के मामले में बोल्ड टाइपफेस वाले टोकन आरक्षित शब्द, प्रकार (मोड) या ऑपरेटर हैं।

प्रो एब्स अधिकतम = ([,] असली ए, रेफरी असली वाई, रेफरी इंट आई, के) असली:
टिप्पणी ⌈a बटा 2⌈a के आकार का, मैट्रिक्स a का सबसे बड़ा अवयव
y में स्थानांतरित किया जाता है, और इस तत्व की सदस्यता i और k में; टिप्पणी
शुरू करना
   रियल वाई := 0; मैं := ⌊a; के := 2⌊ए;
   p के लिए ⌊a से ⌈a do
     q के लिए 2⌊a से 2⌈a तक करें
       अगर एब्स [पी, क्यू]> वाई तो
           वाई: = एब्स ए [पी, क्यू];
           मैं := पी; के:= क्यू
       फाई
     आयुध डिपो
   ओड;
   वाई
अंत # एब्स मैक्स #

नोट: किसी सरणी की निचली (⌊) और ऊपरी (⌈) सीमाएं, और सरणी स्लाइसिंग, सीधे प्रोग्रामर के लिए उपलब्ध हैं।

फ़्लोटिंग पॉइंट algol68 टेस्ट:
(
  वास्तविक ए, बी, सी, डी;
  
  # प्रिंटफ - 'स्टैंड आउट' फाइल को आउटपुट भेजता है। #
  # प्रिंटफ ($ पी $); - एक नया पृष्ठ चुनता है #
  प्रिंटफ (($ पीजी $, डी दर्ज करें:));
  पुनः जोड़ो);
  
  for step from 0 while a:=step*d; ए <= 2 * पीआई करते हैं
    प्रिंटफ ($ एल $); # $l$ - एक नई लाइन का चयन करता है। #
    बी: = पाप (ए);
    सी: = कॉस (ए);
    printf(($z-d.6d$,a,b,c)) # दशमलव बिंदु के पहले 1 अंक और 6 के साथ आउटपुट स्वरूप। #
  आयुध डिपो
)

समयरेखा: हैलो वर्ल्ड

एक कार्यान्वयन से दूसरे कार्यान्वयन में कार्यक्रमों की विविधता और पोर्टेबिलिटी की कमी को क्लासिक हैलो वर्ल्ड प्रोग्राम द्वारा आसानी से प्रदर्शित किया जाता है।

अल्गोल 58 (आईएएल)

ALGOL 58 में कोई I/O सुविधा नहीं थी।

अल जूल 60 परिवार

चूंकि ALGOL 60 में कोई I/O सुविधा नहीं थी, इसलिए ALGOL में कोई पोर्टेबल हैलो वर्ल्ड प्रोग्राम नहीं है। अगले तीन उदाहरण बरोज़ एक्सटेंडेड अल्गोल में हैं। इंटरएक्टिव टर्मिनल पर पहले दो डायरेक्ट आउटपुट वे चलते हैं। पहला सी के समान एक वर्ण सरणी का उपयोग करता है। भाषा सरणी पहचानकर्ता को सरणी के सूचक के रूप में उपयोग करने की अनुमति देती है, और इसलिए एक 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?? ने टेलीप्रिंटर पर एक नई पंक्ति बनाई)।

  हैलो यारो'
  शुरू करना
     प्रिंट £हैलो वर्ल्ड£एल?'
  समाप्त'

ICT 1900 श्रृंखला Algol I/O संस्करण ने पेपर टेप या पंच कार्ड से इनपुट की अनुमति दी। पेपर टेप 'फुल' मोड में लोअर केस की अनुमति है। आउटपुट एक लाइन प्रिंटर के लिए था। ओपन और क्लोज़ कोट कैरेक्टर्स को '(' और ')' और स्पेसेस को % द्वारा दर्शाया गया था।[22] 'शुरू करना'

     टेक्स्ट लिखें ('('हेलो% वर्ल्ड')');
  'समाप्त'

अल्गोल 68

ALGOL 68 कोड आमतौर पर लोअरकेस में आरक्षित शब्दों के साथ प्रकाशित किया गया था, लेकिन बोल्ड या रेखांकित किया गया।

शुरू करना
  प्रिंटफ ($ जीएल $, हैलो, दुनिया!))
समाप्त

अल्गोल 68 रिपोर्ट की भाषा में इनपुट/आउटपुट सुविधाओं को सामूहिक रूप से ट्रांसपुट कहा जाता था।

ALGOL विशेष वर्णों की समयरेखा

ALGOL की कल्पना ऐसे समय में की गई थी जब चरित्र सेट विविध थे और तेजी से विकसित हो रहे थे; इसके अलावा, ALGOLs को परिभाषित किया गया था ताकि केवल अपरकेस अक्षरों की आवश्यकता हो।

1960: IFIP - Algol 60 भाषा और रिपोर्ट में कई गणितीय प्रतीक शामिल थे जो आधुनिक कंप्यूटर और ऑपरेटिंग सिस्टम पर उपलब्ध हैं, लेकिन दुर्भाग्य से, उस समय अधिकांश कंप्यूटिंग सिस्टम पर असमर्थित थे। उदाहरण के लिए: ×, ÷, ≤, ≥, ≠, ¬, ∨, ∧, ⊂, ≡, ␣ और ⏨।

1961 सितंबर: ASCII - ASCII वर्ण सेट, तब विकास के प्रारंभिक चरण में, ALGOL के बूलियन डेटा प्रकार ऑपरेटरों ALGOL 68#Dyadic ऑपरेटरों को संबद्ध प्राथमिकताओं के साथ समर्थन करने के लिए इसमें \ (बैक स्लैश) वर्ण जोड़ा गया था|/\ और ALGOL 68#डायडिक ऑपरेटर संबंधित प्राथमिकताओं के साथ|\/.[23] 1962: एल्कोर - इस कैरेक्टर सेट में असामान्य ᛭ शामिल था रूनिक क्रॉस[24] गुणन के लिए वर्ण और ⏨ दशमलव घातांक चिह्न[25] फ़्लोटिंग पॉइंट नोटेशन के लिए।[26][27][28] 1964: GOST - 1964 के सोवियत मानक GOST 10859 ने ALGOL में 4-बिट, 5-बिट, 6-बिट और 7-बिट वर्णों की एन्कोडिंग की अनुमति दी।[29] 1968: अल्गोल 68 रिपोर्ट - मौजूदा ALGOL वर्णों का उपयोग किया गया, और आगे अपनाया गया →, ↓, ↑, □, ⌊, ⌈, ⎩, ⎧, ○, ⊥, और ¢ वर्ण जो IBM 2741 कीबोर्ड पर IBM Selectric के साथ पाए जा सकते हैं टाइपराइटर (या गोल्फ बॉल) प्रिंटर (कंप्यूटिंग) # टाइपराइटर-व्युत्पन्न प्रिंटर डाला गया (जैसे एपीएल (प्रोग्रामिंग भाषा) # हार्डवेयर)। ये 1960 के दशक के मध्य में उपलब्ध हुए जब ALGOL 68 का मसौदा तैयार किया जा रहा था। रिपोर्ट का रूसी, जर्मन, फ्रेंच और बल्गेरियाई में अनुवाद किया गया था, और बड़े वर्ण सेट वाली भाषाओं में प्रोग्रामिंग की अनुमति दी गई थी, उदाहरण के लिए, सोवियत BESM-4 के सिरिलिक वर्णमाला। ALGOL के सभी अक्षर भी यूनिकोड मानक का हिस्सा हैं और उनमें से अधिकांश कई लोकप्रिय फोंट में उपलब्ध हैं।

2009 अक्टूबर: यूनिकोड - फ्लोटिंग पॉइंट नोटेशन के लिए ई> (दशमलव प्रतिपादक प्रतीक) को यूनिकोड 5.2 में ऐतिहासिक बुरान कार्यक्रम ALGOL सॉफ्टवेयर के साथ पिछड़े संगतता के लिए जोड़ा गया था।[30]


यह भी देखें


संदर्भ

  1. 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.
  2. Collected Algorithms of the ACM Archived 17 October 2011 at Wikiwix Compressed archives of the algorithms. ACM.
  3. O'Hearn, P. W.; Tennent, R. D. (September 1996). "अल्गोल जैसी भाषाएं, परिचय". Archived from the original on 14 November 2011.
  4. "The ALGOL Programming Language" Archived 6 October 2016 at the Wayback Machine, University of Michigan-Dearborn
  5. 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.
  6. "एल्गोरिद्मिक लैंग्वेज एल्गोल 60 पर संशोधित रिपोर्ट". 1963. Archived from the original on 25 June 2007. Retrieved 8 June 2007.
  7. "X1 के लिए एक ALGOL 60 अनुवादक" (PDF). 1961. Archived (PDF) from the original on 9 October 2022. Retrieved 7 January 2021.
  8. "एल्गोरिथम भाषा ALGOL 68 पर संशोधित रिपोर्ट" (PDF). 1973. Archived (PDF) from the original on 13 September 2014. Retrieved 13 September 2014.
  9. Knuth, Donald E. (1964). "बैकस नॉर्मल फॉर्म बनाम बैकस नौर फॉर्म". Communications of the ACM. 7 (12): 735–736. doi:10.1145/355588.365140. S2CID 47537431.
  10. ACM पुरस्कार प्रशस्ति पत्र: पीटर नौर Archived 2 April 2012 at Archive-It, 2005
  11. 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.
  12. "कंप्यूटर भाषाओं का विश्वकोश". Archived from the original on 27 September 2011. Retrieved 20 January 2012.
  13. 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
  14. 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.
  15. 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.
  16. 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.
  17. 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.
  18. "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.
  19. 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)
  20. 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
  21. "803 ALGOL" Archived 29 May 2010 at the Wayback Machine, the manual for Elliott 803 ALGOL
  22. "ICL 1900 श्रृंखला: एल्गोरिथम भाषा". ICL Technical Publication 3340. 1965.
  23. How ASCII Got Its Backslash Archived 11 July 2014 at the Wayback Machine, Bob Bemer
  24. iron/runic cross
  25. Decimal Exponent Symbol
  26. Baumann, R. (October 1961). "एल्कोर ग्रुप का एल्गोल मैनुअल, भाग 1" [ALGOL Manual of the ALCOR Group]. Elektronische Rechenanlagen (in Deutsch): 206–212.
  27. Baumann, R. (December 1961). "एल्कोर ग्रुप का एल्गोल मैनुअल, भाग 2" [ALGOL Manual of the ALCOR Group]. Elektronische Rechenanlagen (in Deutsch). 6: 259–265.
  28. Baumann, R. (April 1962). "एल्कोर ग्रुप का एल्गोल मैनुअल, भाग 3" [ALGOL Manual of the ALCOR Group]. Elektronische Rechenanlagen (in Deutsch). 2.
  29. "GOST 10859 मानक". Archived from the original on 16 June 2007. Retrieved 5 June 2007.
  30. 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.


अग्रिम पठन


इस पेज में लापता आंतरिक लिंक की सूची

बाहरी संबंध