अल्गोल

From alpha
Jump to navigation Jump to search

अल्गोल
1965 ALGOL-20 A Language Manual, Fierst et al - cover.jpg
A 1965 manual for ALGOL-20
Paradigmप्रक्रियात्मक, अनिवार्य, संरचित
परिवारALGOL
द्वारा डिज़ाइन किया गयाबाउर, बॉटनब्रुक, रुतिशौसर, सैमेलसन, बैकस, काट्ज़, पेर्लिस, वेगस्टीन, नौर, वाउक्वॉइस, वैन विजनगार्डन, वुडगर, ग्रीन, मैक्कार्थी
पहली प्रस्तुति1958; 66 years ago (1958)
टाइपिंग अनुशासनStatic, strong
स्कोपलेक्सिकल
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 में विकसित किया गया था। अल्गोल ने कई अन्य भाषाओं को भारी रूप से प्रभावित किया और तीस से अधिक वर्षों से पाठ्यपुस्तकों और शैक्षणिक स्रोतों में संगणक तंत्र संस्था (ACM) द्वारा उपयोग किए जाने वाले कलन विधि विवरण के लिए मानक विधि थी।[2]

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

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

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

अल्गोल 68, अल्गोल 60 से काफी अलग है और इसे अच्छी प्रतिक्रिया नहीं मिली[according to whom?][citation needed], इसलिए सामान्य तौर पर अल्गोल का अर्थ है अल्गोल 60 और इसकी बोलियाँ[citation needed].

इतिहास

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

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

caption
अल्गोल, फोरट्रान और COBOL प्रोग्रामिंग भाषा राजवंश का पारिवारिक वृक्ष

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

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

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

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

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

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

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

आज तक अल्गोल 60 के कम से कम 70 संवर्द्धन, विस्तार, व्युत्पत्तियाँ और उपभाषाएँ हो चुकी हैं।[14]

नाम वर्ष लेखक देश विवरण लक्ष्य सीपीयू
जेडएमएमडी-कार्यान्वयन 1958 फ्रेडरिक एल बाउर, हेंज रुतिशौसर, क्लाउस सैमल्सन, हरमन बोटेनब्रुच जर्मनी अल्गोल 58 का कार्यान्वयन Z22 (बाद में Zuse का Z23 अल्गोल 60 कंपाइलर के साथ वितरित किया गया)[15]
X1 अल्गोल 60 August 1960[16] एडस्गर डब्ल्यू डिज्क्स्ट्रा और जाप ए ज़ोनवेल्ड नीदरलैंड अल्गोल 60 का पहला कार्यान्वयन[17] इलेक्ट्रोलॉजिका X1
इलियट अल्गोल 1960s सी. ए. आर. होरे यूके Subject of the 1980 Turing lecture[18] Elliott 803, Elliott 503, Elliott 4100 series
जोवियल 1960 जूल्स श्वार्ट्ज अमेरिका A DOD HOL prior to Ada विभिन्न (लेख देखें)
Burroughs अल्गोल
(Several variants)
1961 बरोज़ कॉर्पोरेशन (होरे, दिज्क्स्ट्रा और अन्य की भागीदारी के साथ) अमेरिका बरोज़ (और अब यूनिसिस एमसीपी आधारित) कंप्यूटर का आधार बरोज़ लार्ज सिस्टम और उनकी मिडरेंज
केस अल्गोल 1961 केस इंस्टीट्यूट ऑफ टेक्नोलॉजी[19] अमेरिका सिमुला को मूल रूप से केस अल्गोल के सिमुलेशन विस्तार के रूप में अनुबंधित किया गया था यूनीवैक 1107
गोगोल 1961 विलियम एम. मैककीमन अमेरिका ओडीआईएन समय-साझाकरण प्रणाली के लिए[20] PDP-1
रेग्नेसेंट्रलेन अल्गोल 1961 पीटर नौर, जोर्न जेन्सेन डेनमार्क पूर्ण अल्गोल 60 का कार्यान्वयन रेग्नेसेंट्रलेन में DASK
डार्टमाउथ अल्गोल 30 1962 थॉमस यूजीन कर्ट्ज़ अमेरिका LGP-30
USS 90 अल्गोल 1962 एल पेट्रोन इटली
अल्गोल अनुवाद 1962 G. van der Mey and W.L. van der Poel नीदरलैंड स्टैट्सबेड्रिज डेर पोस्टरिजन, टेलीग्राफी और टेलीफोनी ZEBRA
किड्सग्रोव अल्गोल 1963 एफ जी डंकन यूके English Electric Company KDF9
अल्गोल 1963 वैल शोरे अमेरिका मेटा II कंपाइलर कंपाइलर का एक परीक्षण
Whetstone 1964 Brian Randell and L. J. Russell यूके इंग्लिश इलेक्ट्रिक कंपनी का परमाणु ऊर्जा प्रभाग। फेरांति पेगासस, राष्ट्रीय भौतिक प्रयोगशालाएं एसीई और अंग्रेजी इलेक्ट्रिक ड्यूस कार्यान्वयन के अग्रदूत। English Electric Company KDF9
NU अल्गोल 1965 नॉर्वे यूनीवैक
ALGEK 1965 USSR АЛГЭК, किफायती कार्यों के लिए अल्गोल-60 और COBOL समर्थन पर आधारित है Minsk-22
अल्गोल W 1966 निकलॉस विर्थ अमेरिका अल्गोल 60 का प्रस्तावित उत्तराधिकारी IBM System/360
एमअल्गोल 1966 प्रकाशन ए. विइल, एम. कोटली और एम. राखेंडी, एस्टोनिया, यूएसएसआर Minsk-22
ALGAMS 1967 GAMS group (ГАМС, группа автоматизации программирования для машин среднего класса), cooperation of Comecon Academies of Science कॉमकॉन Minsk-22, later ES EVM, BESM
अल्गोल/ZAM 1967 पोलैंड Polish ZAM computer
सिमुला 67 1967 Ole-Johan Dahl and Kristen Nygaard नॉर्वे अल्गोल 60 with classes यूनीवैक 1107
Triplex-अल्गोल Karlsruhe 1967/1968 कार्लज़ूए, जर्मनी अल्गोल 60 (1963) with triplex numbers for interval arithmetic [21]
चीनी अल्गोल 1972 चीन चीनी अक्षर, प्रतीक प्रणाली के माध्यम से व्यक्त किये गये
DG/L 1972 अमेरिका DG Eclipse family of Computers
S-अल्गोल 1979 रॉन मॉरिसन यूके शिक्षण भाषा के रूप में इच्छित उपयोग के साथ ऑर्थोगोनल डेटाटाइप्स को जोड़ना जावा वीएम पर बाद के कार्यान्वयन के साथ पीडीपी-11

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

गुण

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

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

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

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

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

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

अल्गोल 60

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

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 copied 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 अल्गोल का उपयोग करके तालिका (सूचना) कैसे तैयार करें इसका एक उदाहरण यहां दिया गया है।[23]

FLOATING POINT ALGOL TEST'
 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 आमतौर पर तर्कों के बीच मुद्रित होने वाली कैरिज रिटर्न + लाइन फ़ीड को दबा देता है।
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 algol68 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'

आईसीटी 1900 श्रृंखला अल्गोल आई/ओ संस्करण में पेपर टेप या छिद्रित कार्ड से इनपुट की अनुमति है। पेपर टेप 'पूर्ण' मोड में लोअरकेस की अनुमति है। आउटपुट एक लाइन प्रिंटर के लिए था। खुले और बंद उद्धरण वर्णों को '(' और ')' और रिक्त स्थान का उपयोग करके % द्वारा दर्शाया गया था।[24]

'BEGIN'

   WRITE TEXT('('HELLO%WORLD')');
 'END'

अल्गोल 68

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

begin
 printf(($gl$,"Hello, world!"))
end

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

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

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

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

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

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

यह भी देखें

संदर्भ

  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.). "Report on the Algorithmic Language ALGOL 60". Communications of the ACM. Copenhagen. 3 (5): 299–314. doi:10.1145/367236.367262. ISSN 0001-0782. S2CID 278290.
  6. "Revised Report on the Algorithmic Language Algol 60". 1963. Archived from the original on 25 June 2007. Retrieved 8 June 2007.
  7. "An ALGOL 60 Translator for the X1" (PDF). 1961. Archived (PDF) from the original on 9 October 2022. Retrieved 7 January 2021.
  8. "Revised Report on the Algorithmic Language 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. <Ref>प्रोग्रामिंग भाषा डिज़ाइन पर संकेत Archived 15 September 2009 at the Wayback Machine, कार। होरे, दिसंबर 1973. पेज 27. (यह कथन कभी-कभी ग़लती से एडस्गर डब्लू. डिज्क्स्ट्रा को दिया जाता है, जो पहले अल्गोल 60 संकलक को लागू करने में भी शामिल थे।)<nowiki>
  12. <ref> = r3rs >Dybvig, R. K.; et al. Rees, Jonathan; Clinger, William; Abelson, Hal (eds.). "एल्गोरिथम भाषा योजना पर संशोधित(3) रिपोर्ट, (एएलजीओएल 60 की स्मृति को समर्पित)". Archived from the original on 14 January 2010. Retrieved 20 October 2009.<nowiki>
  13. 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.
  14. "कंप्यूटर भाषाओं का विश्वकोश". Archived from the original on 27 September 2011. Retrieved 20 January 2012.
  15. 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
  16. 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.
  17. 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.
  18. 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.
  19. 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.
  20. "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.
  21. 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)
  22. 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
  23. "803 ALGOL" Archived 29 May 2010 at the Wayback Machine, the manual for Elliott 803 ALGOL
  24. "ICL 1900 series: Algol Language". ICL Technical Publication 3340. 1965.
  25. How ASCII Got Its Backslash Archived 11 July 2014 at the Wayback Machine, Bob Bemer
  26. iron/runic cross
  27. Decimal Exponent Symbol
  28. Baumann, R. (October 1961). "ALCOR समूह का ALGOL मैनुअल, भाग 1" [ALGOL Manual of the ALCOR Group]. Elektronische Rechenanlagen (in Deutsch): 206–212.
  29. Baumann, R. (December 1961). "ALGOL Manual of the ALCOR Group, Part 2" [ALGOL Manual of the ALCOR Group]. Elektronische Rechenanlagen (in Deutsch). 6: 259–265.
  30. Baumann, R. (April 1962). "ALGOL Manual of the ALCOR Group, Part 3" [ALGOL Manual of the ALCOR Group]. Elektronische Rechenanlagen (in Deutsch). 2.
  31. "GOST 10859 standard". Archived from the original on 16 June 2007. Retrieved 5 June 2007.
  32. 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.


अग्रिम पठन


बाहरी संबंध