एल्गोल 68सी: Difference between revisions

From Vigyanwiki
No edit summary
Line 118: Line 118:
[[Category: Machine Translated Page]]
[[Category: Machine Translated Page]]
[[Category:Created On 18/02/2023]]
[[Category:Created On 18/02/2023]]
[[Category:Vigyan Ready]]

Revision as of 11:04, 27 February 2023

ALGOL 68 Cambridge
Developer(s)Stephen Bourne, Michael Guy, Andrew D. Birrell, Ian Walker, Chris Cheney, et al.
Initial releasecirca 1970; 54 years ago (1970)
Stable release
1.3039 / March 3, 2013; 11 years ago (2013-03-03)
Written inALGOL 68
Operating systemIBM 360, 370, etc., mainframes (or emulations) running MVT or MVS
TypeCompiler, translator
Websitebitbucket.org/algol68c/dl

एल्गोल (ALGOL) 68सी ऐसी अनिवार्य प्रोग्रामिंग है जिसे कंप्यूटर प्रोग्रामिंग में मुख्य प्रोग्रामिंग भाषा के रूप में उपयोग होता रहा हैं, इस प्रोग्रामिंग भाषा को कैम्ब्रिज बीजगणित प्रणाली (CAMAL) में प्रोग्राम करने के लिए स्टीफन आर बॉर्न और माइकल गाॅय द्वारा विकसित किया गया था। प्रारंभिक संकलक प्रिंसटन सिंटैक्स कंपाइलर (PSYCO) में लिखा गया था, जिसे एडगर टी. आयरन्स तथा कैम्ब्रिज के जे. एच. मैथ्यूमैन द्वारा कार्यान्वित किया गया था।

एलगोल 68सी को बाद में काओस ओपरेटिंग सिस्टम के लिए उपयोग किया गया था, इस प्रकार 1971 में कैम्ब्रिज विश्वविद्यालय में क्षमता-आधारित सुरक्षा कैप कंप्यूटर के लिए प्रारंभिक योगदानकर्ता एंड्रयू डी. बिरेल और इयान वाकर थे[1]

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

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

लोकप्रिय संस्कृति

इस कंपाइलर के बहुत ही प्रारंभिक पूर्ववर्ती का गाय और बॉर्न द्वारा डेक 340 डिस्प्ले के साथ पीडीपी-7 पर पहला कॉनवेज़ गेम ऑफ़ लाइफ लिखने के लिए उपयोग किया गया था।[2][3]

विभिन्न लिवरपूल सॉफ्टवेयर राजपत्र जेड80 कार्यान्वयन का विवरण देते हैं। कंपाइलर को रन करने के लिए लगभग 120 किलोबाइट मेमोरी की आवश्यकता होती है, इसलिए जेड80 की 64 किलोबाइट मेमोरी वास्तव में कंपाइलर रन करने के लिए बहुत छोटी है। इसलिए जेड80 के लिए एलगोल 68सी प्रोग्राम को बड़े कैप कंप्यूटर, या आईबीएम सिस्टम/370 मेनफ़्रेम कंप्यूटर से क्रॉस-संकलित होना चाहिए।

अल्गोल 68 सी और यूनिक्स

स्टीफन आर. बॉर्न ने बाद में एलगोल 68 का पुन: उपयोग किया if ~ then ~ else ~ fi, case ~ in ~ out ~ esac और for ~ while ~ do ~ od सामान्य यूनिक्स बॉर्न शेल में खंड, लेकिन साथ in के प्रारूप को परिवर्तित करके out कर दिया था, और बाद में इसे od में परिवर्तित कर दिया था, इस प्रकार done ओडी (यूनिक्स) की उपयोगिता के साथ विरोध से सुरक्षित करने के लिए किया गया हैं।

कैंब्रिज के पश्चात, बॉर्न ने संस्करण 7 यूनिक्स (सातवां संस्करण यूनिक्स) टीम के साथ बेल लैब्स में नौ साल बिताए गए हैं। इस प्रकार बॉर्न शेल को विकसित करने के साथ-साथ, उन्होंने एलगोल 68सी को डेक पीडीपी-11-45 पर यूनिक्स में पोर्ट किया और एलगोल 68सी में लिखे गए प्रोग्राम के लिए स्टैक बैकट्रेस प्राप्त करने के लिए अपने यूनिक्स डिबगर उन्नत डीबगर (adb) में विशेष विकल्प सम्मलित किया था। यहाँ यूनिक्स के 7वें संस्करण के मैनुअल पृष्ठों से एक उद्धरण दिया गया है:[4]

     NAME
      adb - debugger
SYNOPSIS
      adb [-w] [ objfil [ corfil ] ]
[...]
COMMANDS
[...]
       $modifier
             Miscellaneous  commands.   The  available modifiers
             are:
             [...]
             a      ALGOL 68 stack  backtrace.   If  address  is
                    given  then it is taken to be the address of
                    the current frame (instead of r4).  If count
                    is  given  then  only the first count frames
are printed.

एलगोल 68सी एक्सटेंशन एलगोल 68 के लिए

नीचे कुछ उल्लेखनीय एक्सटेंशन का नमूना दिया गया है:[5] *स्वचालित ऑप:= किसी भी ऑपरेटर के लिए, उदा. *:= और +:=

  • UPTO, DOWNTO और UNTIL लूप-क्लॉज में उपयोग किया जाता हैं
  • विस्थापन ऑपरेटर (:=:=)
  • ANDF, ORF और THEF वाक्यात्मक तत्व के रूप में उपयोग किया जाता हैं।
  • अलग संकलन-* ENVIRON खंड और USING खंड के रूप में उपयोग होता हैं।
  • सीमा की जाँच नहीं की जाती हैं।
  • औपचारिक-घोषणाकर्ताओं में सीमा देखी जाती हैं।
  • CODE ... EDOC खंड - जेड कोड एम्बेड करने के लिए किया जाता हैं।

ENVIRON E> और USING खंड

एलगोल 68सी में अलग संकलन का उपयोग करके किया जाता है ENVIRON और USING खंड। ENVIRON e> प्रकट होने वाले बिंदु पर संपूर्ण परिवेश को सहेजता है। इस प्रकार से प्रारंभ होने वाला एक अलग मॉड्यूल लिखा गया है, तथा USING क्लॉज प्रभावी रूप से बिंदु पर पहले मॉड्यूल में डाला गया है, जिसमें ENVIRON खंड को प्रकट किया जाता हैं।

ENVIRON और USING पारंपरिक लाइब्रेरी मैकेनिज्म द्वारा निहित बॉटम-अप स्टाइल के विपरीत, प्रोग्रामिंग की टॉप-डाउन शैली के लिए उपयोगी हैं।

ये खंड C (प्रोग्रामिंग भाषा) में पाए जाने वाले '#include' या पायथन (प्रोग्रामिंग भाषा) में पाए जाने वाले 'आयात' के विपरीत हैं। का उद्देश्य ENVIRON तंत्र एक प्रोग्राम स्रोत को प्रबंधनीय आकार के टुकड़ों में विभाजित करने की अनुमति देना है। इस प्रकार से सोर्स या स्रोत फ़ाइल को केवल पार्स करना आवश्यक है, सी (प्रोग्रामिंग भाषा) में पाए जाने वाले #include के विपरीत, जहाँ सम्मलित फ़ाइल को प्रत्येक स्रोत फ़ाइल के लिए पार्स करने की आवश्यकता होती है जिसमें यह सम्मलित है।

का उदाहरण ENVIRON खंड

mylib.a68 नामक फ़ाइल:

BEGIN
   INT dim = 3; # a constant #
   INT a number := 120; # a variable #
   ENVIRON EXAMPLE1;
   MODE MATRIX = [dim, dim]REAL; # a type definition #
   MATRIX m1;
   a number := ENVIRON EXAMPLE2;
   print((a number))
END

USING खंड का उदाहरण

usemylib.a68 नामक फ़ाइल: Mylib से उदाहरण 2 का उपयोग करना

 USING EXAMPLE2 FROM "mylib"
BEGIN
  MATRIX m2; # example only #
  print((a number)); # declared in mylib.a68 #
  print((2 UPB m1)); # also declared in mylib.a68 #
  ENVIRON EXAMPLE3;  # ENVIRONs can be nested #
  666
END

मानक एलगोल 68 से भाषा पर प्रतिबंध

  • कोई एलगोल 68 FLEX और वैरिएबल की लंबाई सारणी नहीं होती हैं।
  • MODE STRING फ्लेक्स के बिना लागू किया गया हैं।
  • PAR पैरेलल क्लॉज लागू नहीं किया गया था।
  • अमानक ट्रांसपुट
  • अन्य

एलगोल 68सी के लिए अनुवादक-कंपाइलर पीडीपी-10, आईबीएम सिस्टम/360 और कई अन्य कंप्यूटरों के लिए उपलब्ध था।

संदर्भ

  1. Birrell, Andrew D. (December 1977). "System Programming in a High Level Language" (PDF). Dissertation submitted for the degree of Doctor of Philosophy. University of Cambridge. Retrieved 2007-04-22.
  2. "Item Detail: Digital Equipment Corporation Model 340". Australian Computer Museum Society (ACMS). AceWare Web Hosting. Retrieved 2020-04-17.
  3. Gardner, Martin (October 1970). "The fantastic combinations of John Conway's new solitaire game "life"" (PDF). Mathematical Games. Scientific American. No. 223. pp. 120–123. For long-lived populations such as this one Conway sometimes uses a PDP-7 computer with a screen on which he can observe the changes [...] The program was written by M. J. T. Guy and S. R. Bourne. Without its help some discoveries about the game would have been difficult to make.
  4. "The Modular Manual Browser: Adb". UnixDev.net. Archived from the original on 2016-03-03. Retrieved 2020-04-17.
  5. Bourne, Stephen R.; Birrell, Andrew D.; Walker, Ian (1975). ALGOL 68C reference manual. Cambridge University Computer Laboratory.


बाहरी संबंध