एल्गोल 68सी
Developer(s) | Stephen Bourne, Michael Guy, Andrew D. Birrell, Ian Walker, Chris Cheney, et al. |
---|---|
Initial release | circa 1970 |
Stable release | 1.3039
/ March 3, 2013 |
Written in | ALGOL 68 |
Operating system | IBM 360, 370, etc., mainframes (or emulations) running MVT or MVS |
Type | Compiler, translator |
Website | bitbucket |
ALGOL 68C एक अनिवार्य प्रोग्रामिंग कंप्यूटर प्रोग्रामिंग प्रोग्रामिंग भाषा है, जो ALGOL 68 की एक बोली है, जिसे कैम्ब्रिज बीजगणित प्रणाली (CAMAL) को प्रोग्राम करने के लिए स्टीफन आर बॉर्न और माइकल गाय द्वारा विकसित किया गया था। प्रारंभिक संकलक प्रिंसटन सिंटैक्स कंपाइलर (PSYCO) में लिखा गया था। एडगर टी. आयरन्स द्वारा) जिसे कैम्ब्रिज में जे. एच. मैथ्यूमैन द्वारा कार्यान्वित किया गया था।
ALGOL 68C को बाद में CHAOS OS के लिए इस्तेमाल किया गया 1971 में कैम्ब्रिज विश्वविद्यालय में क्षमता-आधारित सुरक्षा कैप कंप्यूटर के लिए। अन्य शुरुआती योगदानकर्ता एंड्रयू डी. बिरेल थे[1] और इयान वाकर।
1975 में बॉर्न के कैंब्रिज विश्वविद्यालय छोड़ने के बाद संकलक पर बाद का काम किया गया। कचरा संग्रह (कंप्यूटर विज्ञान) जोड़ा गया, और कोड आधार अभी भी चल रहा है हरक्यूलिस (एमुलेटर) का उपयोग करके एक अनुकरणीय ओएस/एमवीटी पर।
ALGOL 68C कंपाइलर ZCODE में आउटपुट उत्पन्न करता है, जो एक रजिस्टर-आधारित इंटरमीडिएट भाषा है, जिसे या तो मूल निष्पादन योग्य में व्याख्या या संकलित किया जा सकता है। ZCODE की व्याख्या या संकलन करने की इस क्षमता ने ALGOL 68C को कई अलग-अलग कंप्यूटिंग मंच पर पोर्ट करने के लिए प्रोत्साहित किया। सीएपी कंप्यूटर के अलावा, कंपाइलर को संवादात्मक मॉनिटर सिस्टम (सीएमएस), टीओपीएस -10, और ज़िलॉग Z80 80 सहित सिस्टम में पोर्ट किया गया था।
लोकप्रिय संस्कृति
इस कंपाइलर के एक बहुत ही प्रारंभिक पूर्ववर्ती का उपयोग गाय और बॉर्न द्वारा DEC 340 डिस्प्ले के साथ PDP-7 पर पहला कॉनवेज़ गेम ऑफ़ लाइफ लिखने के लिए किया गया था।[2][3]
विभिन्न लिवरपूल सॉफ्टवेयर राजपत्र Z80 कार्यान्वयन का विवरण देते हैं। कंपाइलर को चलाने के लिए लगभग 120 KB मेमोरी की आवश्यकता होती है; इसलिए Z80 की 64 KB मेमोरी वास्तव में कंपाइलर चलाने के लिए बहुत छोटी है। इसलिए Z80 के लिए ALGOL 68C प्रोग्राम को बड़े CAP कंप्यूटर, या IBM सिस्टम/370 मेनफ़्रेम कंप्यूटर से क्रॉस-संकलित होना चाहिए।
अल्गोल 68 सी और यूनिक्स
स्टीफन आर. बॉर्न ने बाद में ALGOL 68 का पुन: उपयोग किया if ~ then ~ else ~ fi
, case ~ in ~ out ~ esac
और for ~ while ~ do ~ od
सामान्य यूनिक्स बॉर्न शेल में खंड, लेकिन साथ in
का वाक्य-विन्यास बदल गया, out
हटा दिया, और od
के साथ बदल दिया done
(ओडी (यूनिक्स) उपयोगिता के साथ विरोध से बचने के लिए)।
कैंब्रिज के बाद, बॉर्न ने संस्करण 7 यूनिक्स (सातवां संस्करण यूनिक्स) टीम के साथ बेल लैब्स में नौ साल बिताए। बॉर्न शेल को विकसित करने के साथ-साथ, उन्होंने ALGOL 68C को DEC PDP-11-45 पर यूनिक्स में पोर्ट किया और ALGOL 68C में लिखे गए प्रोग्राम के लिए स्टैक बैकट्रेस प्राप्त करने के लिए अपने यूनिक्स डिबगर उन्नत डीबगर (adb) में एक विशेष विकल्प शामिल किया। यहाँ यूनिक्स के 7वें संस्करण के मैनुअल पृष्ठों से एक उद्धरण दिया गया है:[4] नाम
अदब - डिबगर सार अदब [-w] [objfil [corfil]] [...] कमानों [...] $संशोधक विविध आदेश। उपलब्ध संशोधक हैं: [...] एक ALGOL 68 स्टैक बैकट्रेस। अगर पता है दिया गया है तो इसे का पता माना जाता है वर्तमान फ्रेम (आर 4 के बजाय)। अगर गिनें दिया जाता है तो केवल पहली गिनती फ्रेम मुद्रित हैं।
== ALGOL 68C एक्सटेंशन ALGOL 68 == के लिए
नीचे कुछ उल्लेखनीय एक्सटेंशन का नमूना दिया गया है:[5]*स्वचालित ऑप:= किसी भी ऑपरेटर के लिए, उदा. *:=
और +:=
UPTO
,DOWNTO
औरUNTIL
लूप-क्लॉज में;- विस्थापन ऑपरेटर (
:=:=
) ANDF
,ORF
औरTHEF
वाक्यात्मक तत्व।- अलग संकलन-*
ENVIRON
खंड औरUSING
खंड - दायरे की जाँच नहीं की गई
- औपचारिक-घोषणाकर्ताओं में सीमा
CODE
...EDOC
खंड - ZCODE एम्बेड करने के लिए
ENVIRON
ई> और USING
खंड
ALGOL 68C में अलग संकलन का उपयोग करके किया जाता है ENVIRON
और USING
खंड। ENVIRON
e> प्रकट होने वाले बिंदु पर संपूर्ण परिवेश को सहेजता है। एक से शुरू होने वाला एक अलग मॉड्यूल लिखा गया है USING
क्लॉज प्रभावी रूप से बिंदु पर पहले मॉड्यूल में डाला गया है ENVIRON
खंड प्रकट होता है।
ENVIRON
और USING
पारंपरिक लाइब्रेरी मैकेनिज्म द्वारा निहित बॉटम-अप स्टाइल के विपरीत, प्रोग्रामिंग की टॉप-डाउन शैली के लिए उपयोगी हैं।
ये खंड C (प्रोग्रामिंग भाषा) में पाए जाने वाले '#include' या Python (प्रोग्रामिंग भाषा) में पाए जाने वाले 'आयात' के विपरीत हैं। का उद्देश्य ENVIRON
तंत्र एक प्रोग्राम स्रोत को प्रबंधनीय आकार के टुकड़ों में विभाजित करने की अनुमति देना है। साझा स्रोत फ़ाइल को केवल एक बार पार्स करना आवश्यक है, C (प्रोग्रामिंग भाषा) में पाए जाने वाले #include के विपरीत, जहाँ शामिल फ़ाइल को प्रत्येक स्रोत फ़ाइल के लिए पार्स करने की आवश्यकता होती है जिसमें यह शामिल है।
का उदाहरण ENVIRON
खंड
mylib.a68 नामक फ़ाइल: <पूर्व> शुरू
आईएनटी मंद = 3; # निरंतर # INT एक संख्या := 120; # एक परिवर्तनीय # पर्यावरण उदाहरण1; मोड मैट्रिक्स = [मंद, मंद] वास्तविक; # एक प्रकार की परिभाषा # मैट्रिक्स एम 1; एक संख्या := पर्यावरण उदाहरण2; प्रिंट ((एक नंबर))
अंत
का उदाहरण USING
खंड
usemylib.a68 नामक फ़ाइल: Mylib से उदाहरण 2 का उपयोग करना शुरू
मैट्रिक्स एम 2; #उदाहरण केवल # प्रिंट ((एक नंबर)); # mylib.a68 # में घोषित प्रिंट ((2 यूपीबी एम 1)); # Mylib.a68 # में भी घोषित पर्यावरण उदाहरण3; #पर्यावरण नेस्ट किया जा सकता है # 666
अंत
==मानक ALGOL 68== से भाषा पर प्रतिबंध
- कोई ALGOL 68 FLEX और चर लंबाई सरणियाँ नहीं
MODE STRING
फ्लेक्स के बिना लागू किया गया- PAR पैरेलल क्लॉज लागू नहीं किया गया था
- अमानक ट्रांसपुट
- अन्य...
ALGOL 68C के लिए एक अनुवादक-कंपाइलर PDP-10, IBM System/360 और कई अन्य कंप्यूटरों के लिए उपलब्ध था।
संदर्भ
- ↑ 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.
- ↑ "Item Detail: Digital Equipment Corporation Model 340". Australian Computer Museum Society (ACMS). AceWare Web Hosting. Retrieved 2020-04-17.
- ↑ 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.
- ↑ "The Modular Manual Browser: Adb". UnixDev.net. Archived from the original on 2016-03-03. Retrieved 2020-04-17.
- ↑ Bourne, Stephen R.; Birrell, Andrew D.; Walker, Ian (1975). ALGOL 68C reference manual. Cambridge University Computer Laboratory.
बाहरी संबंध
- Official website
- Cambridge ALGOL 68: on the historical roster of computer languages – includes 10+ publication references.
- A Transportation of ALGOL 68C – PJ Gardner, University of Essex – March 1977 (From 370 to DECsystem-10)
- Running ALGOL 68C on MVS - how to install ALGOL 68C on an emulated MVS system