बीसीपीएल: Difference between revisions
No edit summary |
No edit summary |
||
(10 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Multi-paradigm computer programming language}} | {{Short description|Multi-paradigm computer programming language}} | ||
{{Use dmy dates|date=April 2022}} | {{Use dmy dates|date=April 2022}} | ||
{{Infobox programming language | {{Infobox programming language | ||
| name = | | name = बीसीपीएल | ||
| logo = | | logo = | ||
| paradigm = [[ | | paradigm = [[प्रक्रियात्मक प्रोग्रामिंग|प्रक्रियात्मक]], [[अनिवार्य प्रोग्रामिंग|अनिवार्य]], [[संरचित प्रोग्रामिंग|संरचित]] | ||
| year = {{start date and age|1967}}<ref name="IEEE_CPA_MRichards"/> | | year = {{start date and age|1967}}<ref name="IEEE_CPA_MRichards"/> | ||
| designer = [[ | | designer = [[मार्टिन रिचर्ड्स (कंप्यूटर वैज्ञानिक)|मार्टिन रिचर्ड्स]] | ||
| developer = | | developer = | ||
| latest_release_version = | | latest_release_version = | ||
Line 15: | Line 13: | ||
| latest_test_version = | | latest_test_version = | ||
| latest_test_date = | | latest_test_date = | ||
| typing = | | typing = टाइपलेस (सब कुछ एक [[वर्ड (कंप्यूटर आर्किटेक्चर)|वर्ड]] है) | ||
| implementations = | | implementations = | ||
| dialects = | | dialects = | ||
| influenced_by = [[ | | influenced_by = [[सीपीएल (प्रोग्रामिंग भाषा)|सीपीएल]] | ||
| influenced = [[B (programming language)|B]], [[C (programming language)|C]], [[Go (programming language)|Go]]<ref name="hgophers">{{cite web |url=https://talks.golang.org/2014/hellogophers.slide#21 |title=Hello Gophers |last=Pike |first=Rob |date=2014-04-24 |access-date=2016-03-11 }}</ref> | | influenced = [[B (programming language)|B]], [[C (programming language)|C]], [[Go (programming language)|Go]]<ref name="hgophers">{{cite web |url=https://talks.golang.org/2014/hellogophers.slide#21 |title=Hello Gophers |last=Pike |first=Rob |date=2014-04-24 |access-date=2016-03-11 }}</ref> | ||
| operating_system = | | operating_system = | ||
Line 24: | Line 22: | ||
| website = | | website = | ||
}} | }} | ||
बीसीपीएल (बुनियादी संयुक्त प्रोग्रामिंग भाषा) एक [[प्रक्रियात्मक प्रोग्रामिंग]], [[अनिवार्य प्रोग्रामिंग]] और [[संरचित प्रोग्रामिंग]] [[प्रोग्रामिंग भाषा|भाषा]] है। मूल रूप से अन्य भाषाओं के लिए [[संकलक]] लिखने का इरादा है, बीसीपीएल अब साधारण उपयोग में नहीं है। यद्दपि, इसका प्रभाव अभी भी अनुभूत किया जाता है क्योंकि बीसीपीएल का एक उतारा गया और वाक्य रचित रूप से परिवर्तित संस्करण, जिसे [[बी (प्रोग्रामिंग भाषा)]] कहा जाता है, यह वह भाषा थी जिस पर सी(प्रोग्रामिंग भाषा) आधारित थी। बीसीपीएल ने कोड ब्लाकों को सीमित करने के लिए [<nowiki/>[[बी (प्रोग्रामिंग भाषा)]]] का उपयोग करने सहित कई आधुनिक प्रोग्रामिंग भाषाओं की कई विशेषताएं प्रस्तुत कीं हैं।<ref>https://www.cl.cam.ac.uk/~mr10/bcplman.pdf The BCPL Cintsys and Cintpos User Guide, 2.1.4 Section brackets</ref> बीसीपीएल को पहली बार 1967 में [[कैम्ब्रिज विश्वविद्यालय]] के [[मार्टिन रिचर्ड्स (कंप्यूटर वैज्ञानिक)]] द्वारा लागू किया गया था।<ref name="IEEE_CPA_MRichards">{{cite web |url=https://www.computer.org/web/awards/pioneer-martin-richards |title=मार्टिन रिचर्ड्स (2003 कंप्यूटर पायनियर अवार्ड)|author=<!--Not stated--> |publisher=IEEE Computer Society |date=<!--Not stated--> |access-date=2017-11-24 |archive-url=https://archive.today/20171124083723/https://www.computer.org/web/awards/pioneer-martin-richards |archive-date=2017-11-24 |url-status = dead}}</ | बीसीपीएल (बुनियादी संयुक्त प्रोग्रामिंग भाषा) एक [[प्रक्रियात्मक प्रोग्रामिंग]], [[अनिवार्य प्रोग्रामिंग]] और [[संरचित प्रोग्रामिंग]] [[प्रोग्रामिंग भाषा|भाषा]] है। मूल रूप से अन्य भाषाओं के लिए [[संकलक]] लिखने का इरादा है, बीसीपीएल अब साधारण उपयोग में नहीं है। यद्दपि, इसका प्रभाव अभी भी अनुभूत किया जाता है क्योंकि बीसीपीएल का एक उतारा गया और वाक्य रचित रूप से परिवर्तित संस्करण, जिसे [[बी (प्रोग्रामिंग भाषा)]] कहा जाता है, यह वह भाषा थी जिस पर सी(प्रोग्रामिंग भाषा) आधारित थी। बीसीपीएल ने कोड ब्लाकों को सीमित करने के लिए [<nowiki/>[[बी (प्रोग्रामिंग भाषा)]]] का उपयोग करने सहित कई आधुनिक प्रोग्रामिंग भाषाओं की कई विशेषताएं प्रस्तुत कीं हैं। <ref>https://www.cl.cam.ac.uk/~mr10/bcplman.pdf The BCPL Cintsys and Cintpos User Guide, 2.1.4 Section brackets</ref> बीसीपीएल को पहली बार 1967 में [[कैम्ब्रिज विश्वविद्यालय]] के [[मार्टिन रिचर्ड्स (कंप्यूटर वैज्ञानिक)]] द्वारा लागू किया गया था। <ref name="IEEE_CPA_MRichards">{{cite web |url=https://www.computer.org/web/awards/pioneer-martin-richards |title=मार्टिन रिचर्ड्स (2003 कंप्यूटर पायनियर अवार्ड)|author=<!--Not stated--> |publisher=IEEE Computer Society |date=<!--Not stated--> |access-date=2017-11-24 |archive-url=https://archive.today/20171124083723/https://www.computer.org/web/awards/pioneer-martin-richards |archive-date=2017-11-24 |url-status = dead}}</ref> | ||
== | == रचना == | ||
बीसीपीएल को रचित किया गया था ताकि इसके लिए छोटे और सरल [[बूटस्ट्रैपिंग (संकलक)|संकलक]] लिखे जा सकें; प्रतिष्ठित रूप से कुछ संकलक 16 [[किलोबाइट]] में चलाए जा सकते हैं। इसके अलावा, बीसीपीएल में लिखा गया मूल संकलक सरलता से ले जाने योग्य था। इस प्रकार बीसीपीएल [[बूटस्ट्रैपिंग (संकलक)]] प्रणाली के लिए एक लोकप्रिय विकल्प था। {{Citation needed|date=January 2017}} [[बूटस्ट्रैपिंग (संकलक)|संकलक]] की सुवाह्यता का एक प्रमुख कारण इसकी संरचना में निहित है। इसे दो भागों में विभाजित किया गया था: अग्रसिरे ने स्रोत को पार्स किया और एक [[मध्यवर्ती भाषा]] ओ-कोड उत्पन्न किया। पश्चसिरे ने ओ-कोड लिया और लक्ष्य मशीन के लिए मशीन कोड में इसका अनुवाद किया। केवल {{frac|5}} एक नई मशीन का समर्थन करने के लिए [[बूटस्ट्रैपिंग (संकलक)|संकलक]] के कोड को फिर से लिखने की आवश्यकता होती है, एक कार्य जो सामान्यत: 2 और 5 व्यक्ति-महीने के बीच होता है। यह दृष्टिकोण बाद में सधारण चलन बन गया (जैसे [[पास्कल (प्रोग्रामिंग भाषा)]], [[जावा (प्रोग्रामिंग भाषा)]])। | |||
बीसीपीएल को | |||
केवल एक [[डेटा प्रकार]] होने में भाषा असामान्य है: एक शब्द (कंप्यूटर | केवल एक [[डेटा प्रकार]] होने में भाषा असामान्य है: एक शब्द (कंप्यूटर वास्तुकला), बिट्स की एक निश्चित संख्या, जिसे सामान्यत: वास्तुकला के मशीन शब्द के साथ संरेखित करने के लिए चुना जाता है और किसी वैध भंडारण पते का प्रतिनिधित्व करने के लिए पर्याप्त क्षमता होती है। उस समय की कई मशीनों के लिए, यह आंकडे प्रकार 16-बिट शब्द थे। यह विकल्प बाद में एक महत्वपूर्ण लठिनाई साबित हुआ जब बीसीपीएल का उपयोग मशीनों पर किया गया था जिसमें सबसे छोटी पता योग्य वस्तु एक शब्द नहीं बल्कि एक [[बाइट]] थी या 32-बिट या 64-बिट जैसे बड़े शब्द आकार वाली मशीनों पर उपयोग होती है। {{Citation needed|date=January 2017}} | ||
मूल्यों को संसाधित करने के लिए उपयोग किए जाने वाले प्रचालकों द्वारा किसी भी मूल्य की व्याख्या निर्धारित की गई थी। (उदाहरण के लिए, <code>+</code> दो मानों को एक साथ जोड़ा, उन्हें [[पूर्णांक]] मानते हुए; <code>!</code> एक मूल्य के माध्यम से अप्रत्यक्ष रूप से, प्रभावी रूप से इसे एक संकेतक के रूप में माना जाता है। ) इसके कार्य करने के लिए, कार्यान्वयन ने कोई [[प्रकार की जाँच]] नहीं की। | |||
बीसीपीएल के शब्द अनुस्थापन और बाइट-उन्मुखी हार्डवेयर के बीच असंगत को कई तरीकों से संबोधित किया गया था। एक बाइट तार में शब्दों को बांधने करने और खोलने के लिए मानक पुस्तकालय दिनचर्या प्रदान करना था। बाद में, दो भाषा सुविधाओं को जोड़ा गया: बिट-फ़ील्ड चयन प्राचालक और इंफिक्स बाइट इंडायरेक्शन प्राचालक (द्वारा चिह्नित) <code>%</code>)है। {{Citation needed|date=January 2017}} | |||
बीसीपीएल अलग-अलग [[संकलक]] इकाइयों में फैले बंधन को एक अनोखे तरीके से संभालता है। कोई उपयोगकर्ता-घोषित वैश्विक चर नहीं हैं; इसके बजाय, [[फोरट्रान]] में रिक्त साधारण के समान एक वैश्विक सदिश है। विभिन्न [[संकलक]] इकाइयों के बीच साझा किए गए सभी आंकड़ों में वैश्विक सदिश में पूर्व-व्यवस्थित स्थान पर संग्रहीत सदिश के लिए अदिश और संकेत सम्मिलित हैं। इस प्रकार, शीर्ष लेख फाइलें (जीईटी (स्नातक इंजीनियर प्रशिक्षु) निर्देश का उपयोग करते हुए [[संकलक]] के दौरान सम्मिलित फाइलें) संकलन इकाइयों के बीच वैश्विक आंकड़ों को सिंक्रनाइज़ करने का प्राथमिक साधन बन जाती हैं, जिसमें वैश्विक निर्देश होते हैं जो प्रतीकात्मक नामों की सूची प्रस्तुत करते हैं, प्रत्येक को एक संख्या के साथ जोड़ा जाता है जो नाम को संबंधित संख्यात्मक रूप से जोड़ता है वैश्विक सदिश में संबोधित शब्द, साथ ही चर, वैश्विक सदिश में बाहरी प्रक्रियाओं के लिए बंधन सम्मिलित हैं। यह [[संकलक]] इकाइयों की गतिशील लोडिंग को प्राप्त करना बहुत सरल बनाता है। अंतर्निहित कार्यान्वयन के संपर्क लोडर पर भरोसा करने के बजाय प्रभावी रूप से, बीसीपीएल प्रोग्रामर को जोड़ने की प्रक्रिया का नियंत्रण देता है। {{Citation needed|date=January 2017}} | |||
वैश्विक सदिश ने मानक पुस्तकालय दिनचर्या को बदलना या बढ़ाना भी बहुत सरल बना दिया है। एक प्रोग्राम संकेत को वैश्विक सदिश से मूल दिनचर्या में सहेज सकता है और इसे संकेत के साथ वैकल्पिक संस्करण में बदल सकता है। विकल्प मूल को इसके प्रसंस्करण के भाग के रूप में कह सकता है। यह एक त्वरित तदर्थ डिबगिंग सहायता के रूप में उपयोग किया जा सकता है। {{Citation needed|date=January 2017}} | |||
बीसीपीएल | बीसीपीएल पहली ब्रेस प्रोग्रामिंग भाषा थी और ब्रेसिज़ वाक्य-रचना-संबंधी परिवर्तनों से बच गए और प्रोग्राम स्रोत कोड कथनों को निरूपित करने का एक सामान्य साधन बन गया है। व्यवहार में, दिन के सीमित कीबोर्ड पर, स्रोत प्रोग्राम प्राय: अनुक्रमों का उपयोग करते थे <code>$(</code> और <code>$)</code> प्रतीकों के स्थान पर <code>{</code> और <code>}</code>. सिंगल-लाइन <code>//</code> बीसीपीएल की [[टिप्पणी (कंप्यूटर प्रोग्रामिंग)]], जो सी (प्रोग्रामिंग भाषा) द्वारा नहीं अपनाई गई थी, [[सी ++]] और बाद में सी99 में फिर से प्रकट हुई। | ||
पुस्तक बीसीपीएल: ''द लैंग्वेज एंड इट्स कंपाइलर'' बीसीपीएल के दर्शन का वर्णन इस प्रकार करती है: | |||
{{Blockquote|बीसीपीएल का दर्शन उन अत्याचारियों में से नहीं है जो सोचता है कि वह सबसे अच्छा जानता है और जो है और जिसकी अनुमति नहीं है, उस पर कानून बनाता है; बल्कि, बीसीपीएल एक नौकर के रूप में अधिक कार्य करता है जो बिना किसी शिकायत के अपनी सर्वोत्तम क्षमता के साथ अपनी सेवाओं की प्रस्तुति करता है, तब भी जब स्पष्ट बकवास का सामना किया जाता है। प्रोग्रामर को हमेशा यह माना जाता है कि वह क्या कर रहा है और छोटे प्रतिबंधों से घिरा नहीं है।<ref>{{Cite book|title=BCPL: The Language and its Compiler|last1=Richards|first1=Martin|last2=Whitby-Strevens|first2=Colin|publisher=Cambridge University Press|year=1980|isbn=978-0521785433|pages=5}}</ref>}} | |||
== इतिहास == | |||
बीसीपीएल को पहली बार 1967 में कैम्ब्रिज विश्वविद्यालय के मार्टिन रिचर्ड्स (कंप्यूटर वैज्ञानिक) द्वारा लागू किया गया था। <ref name="IEEE_CPA_MRichards">{{cite web |url=https://www.computer.org/web/awards/pioneer-martin-richards |title=मार्टिन रिचर्ड्स (2003 कंप्यूटर पायनियर अवार्ड)|author=<!--Not stated--> |publisher=IEEE Computer Society |date=<!--Not stated--> |access-date=2017-11-24 |archive-url=https://archive.today/20171124083723/https://www.computer.org/web/awards/pioneer-martin-richards |archive-date=2017-11-24 |url-status = dead}}</ref> बीसीपीएल अपने पूर्ववर्ती, कैम्ब्रिज प्रोग्रामिंग भाषा, जिसे बाद में [[संयुक्त प्रोग्रामिंग भाषा]] (सीपीएल) का नाम दिया गया था, के साथ कठिनाइयों का जवाब था, जिसे 1960 के दशक के प्रारंभ में रचित किया गया था। रिचर्ड्स ने पूर्ण भाषा की उन विशेषताओं को हटाकर बीसीपीएल बनाया जो संकलन को कठिन बनाते हैं। [[संगत समय-साझाकरण प्रणाली]] के तहत [[आईबीएम 7094]] के लिए पहला [[संकलक]] कार्यान्वयन, तब लिखा गया था जब रिचर्ड्स 1967 के वसंत में [[मैसाचुसेट्स की तकनीकी संस्था]] में [[प्रोजेक्ट मैक]] का दौरा कर रहे थे। भाषा को पहली बार 1969 के वसंत जोड़ को प्रस्तुत एक पेपर में वर्णित किया गया था। {{Citation needed|date=January 2017}} | |||
बीसीपीएल के | बीसीपीएल मूल रूप से बूटस्ट्रैप कैम्ब्रिज प्रोग्रामिंग लैंग्वेज के लिए खड़ा होने की अफवाह है, लेकिन बीसीपीएल में विकास बंद होने के बाद से सीपीएल कभी नहीं बनाया गया था, और बाद में बीसीपीएल पुस्तक के लिए संक्षिप्त नाम की पुनर्व्याख्या की गई थी। {{Clarify|date=January 2017}}{{Citation needed|date=January 2017}} | ||
बीसीपीएल वह भाषा है जिसमें मूल हैलो वर्ल्ड प्रोग्राम, हैलो वर्ल्ड! कार्यक्रम लिखा गया था। <ref>[http://www.catb.org/jargon/html/B/BCPL.html BCPL], ''[[Jargon File]]''</ref> पहला [[MUD]] भी बीसीपीएल ([[MUD1]]) में लिखा गया था। | |||
बहुत सी [[ऑपरेटिंग सिस्टम|ऑपरेटिंग प्रणाली]] आंशिक या पूर्ण रूप से बीसीपीएल में लिखी गई थीं (उदाहरण के लिए, [[TRIPOS|ट्रिपॉस]] और [[AmigaDOS|एमिगाडॉस]] के शुरुआती संस्करण)। बीसीपीएल मौलिक [[ज़ेरॉक्स PARC|ज़ेरॉक्स पिएआरसी]] ऑल्टो (कंप्यूटर) परियोजना में उपयोग की जाने वाली प्रारंभिक भाषा भी थी, पहला आधुनिक [[निजी कंप्यूटर]]; अन्य परियोजनाओं के बीच, बीसीपीएल में [[ब्रावो (सॉफ्टवेयर)]] [[शब्द संसाधक]] लिखा गया था। | |||
रिचर्ड्स के [[टाइटन (1963 कंप्यूटर)]] संकलक के ओ-कोड के एक कागज पट्टीका के साथ प्रारम्भ करके, 1969 में बूटस्ट्रैप किए गए एक प्रारंभिक [[संकलक]] ने आईसीटी 1900 श्रृंखला को लक्षित किया। दो मशीनों में अलग-अलग शब्द-लंबाई (48 बनाम 24 बिट्स), अलग-अलग वर्ण संकेतीकरण और अलग-अलग पैक तंत्री प्रस्तुतियां थीं- और सफल बूटस्ट्रैपिंग ने विधि की व्यावहारिकता में विश्वास बढ़ाया। | |||
1970 के अंत तक, जिई600 श्रृंखला, [[IBM 360|आईबिएम 360]], [[PDP-10|पिडिपी-10]], [[TX-2|टिएक्स-2]], [[CDC 6400|सीडिसी 6400]] [[UNIVAC 1108|युनिवेक 1108]], [[PDP-9|पीडिपी-9]], [[KDF 9|केडिएफ 9]] और एटलस 2 के लिए कार्यान्वयन उपस्थित थे। 1974 में बीबीएन में बीसीपीएल की एक बोली लागू की गई थी। इंटरमीडिएट ओ-कोड का उपयोग किए [[बीबीएन टेक्नोलॉजीज]] प्रारंभिक कार्यान्वयन बीबीएन के टेनेक्स (ऑपरेटिंग प्रणाली) पीडिपी-10s पर मेजबानी कि गयी [[पार संकलक]] थी, और [[ARPANET]] में प्रयुक्त दूसरी पीढ़ी के [[इंटरफ़ेस संदेश प्रोसेसर|अंतराफलक संदेश प्रक्रमक]] के बिबिएन के कार्यान्वयन में उपयोग किए गए [[PDP-11|पीडिपी]][[PDP-11|-11]]s को सीधे लक्षित करता था। | |||
1980 के दशक के मध्य में [[बीबीसी माइक्रो]] के लिए रिचर्ड्स कंप्यूटर उत्पादों द्वारा निर्मित एक संस्करण भी था, जो मार्टिन रिचर्ड्स के भाई जॉन रिचर्ड्स द्वारा प्रारंभ की गई कंपनी थी। <ref>{{cite web|url=http://www.thebaron.info/archives/technology/reuters-technical-development-glossary|title=Reuters technical development: Glossary - THE BARON|website=www.thebaron.info}}</ref> [[बीबीसी डोमेसडे प्रोजेक्ट|बीबीसी डोमेसडे परियोजना]] ने भाषा का उपयोग किया। [[Amstrad CPC|एमस्टर्ड सीपिसी]] और [[Amstrad PCW|एमस्टर्ड]] [[Amstrad PCW|पिसीड्बल्यू]] कंप्यूटर के लिए बीसीपीएल के संस्करण भी 1986 में यूके सॉफ्टवेयर हाउस अर्नोर लिमिटेड द्वारा जारी किए गए थे। मैकबीसीपीएल को 1985 में केंसिंग्टन, इंग्लैंड के टोप एक्सप्रेस द्वारा एप्पल मॅकिन्तोश के लिए जारी किया गया था। | |||
< | बीसीपीएल के रचना और दर्शन दोनों ने [[बी (प्रोग्रामिंग भाषा)]] को दृढ़ता से प्रभावित किया, जिसने बदले में सी (प्रोग्रामिंग भाषा) को प्रभावित किया। <ref name="C_Prog_Lang_KR">{{cite book |url=https://archive.org/details/cprogramminglang00bria |title=सी प्रोग्रामिंग लैंग्वेज|date=1978 |publisher=Bell Telephone Laboratories |isbn=0-13-110163-3 |pages=2 |authors=Kernighan, Brian W. and Dennis M. Ritchie}}</ref> उस समय क्रमादेशकों ने इस बात पर बहस की कि क्या सी के अंतिम उत्तराधिकारी को डी कहा जाएगा, वर्णमाला में अगला अक्षर, या पि, मूल भाषा के नाम का अगला अक्षर होगा। सी के उत्तराधिकारी के रूप में स्वीकृत भाषा सी ++ (के साथ <code>++</code> के [[वेतन वृद्धि ऑपरेटर|वेतन वृद्धि प्रचालक]] होने के नाते),<ref>[http://www.cplusplus.com/info/history/ History of C++] Retrieved 12 December 2017</ref> यद्दपि इस बीच, एक डी (प्रोग्रामिंग भाषा) प्रोग्रामिंग भाषा भी उपस्थित है। | ||
1979 में, कम से कम 25 वास्तुकला के लिए बीसीपीएल का कार्यान्वयन उपस्थित था; गैर-यूनिक्स प्रणालियों पर सी के लोकप्रिय होते ही भाषा धीरे-धीरे लोकप्रिय हो गई। | |||
मार्टिन रिचर्ड्स अपनी वेबसाइट पर बीसीपीएल का एक आधुनिक संस्करण बनाए रखते हैं, जिसे आखिरी बार 2018 में अघतन किया गया था। इसे लिनक्स, फ्रीबीएसडी और मैक ओएस एक्स सहित विभिन्न प्रणालियों पर चलाने के लिए सेट किया जा सकता है। नवीनतम वितरण में सुचित्रित और ध्वनि पुस्तकालय और एक व्यापक नियमावली सम्मिलित हैं। वह इसमें योजनाएं करना जारी रखता है, जिसमें संगीतमय स्वाचालित [[स्कोर निम्नलिखित|अंक निम्नलिखित]] पर अपने शोध के लिए भी सम्मिलित है। | |||
बीसीपीएल के लिए एक सामान्य अनौपचारिक [[मीडिया प्रकार]] है . | |||
== उदाहरण == | |||
यदि ये प्रोग्राम रिचर्ड्स के सिन्टसिस के वर्तमान संस्करण (दिसंबर 2018) का उपयोग करके चलाए जा रहे हैं, तो त्रुटियों से बचने के लिए LIBHDR, START और WRITEF को छोटे अक्षर में बदला जाना चाहिए। | |||
प्रिंट फैक्टोरियल: | |||
<pre> | |||
GET "LIBHDR" | |||
LET START() = VALOF $( | |||
FOR I = 1 TO 5 DO | |||
WRITEF("%N! = %I4*N", I, FACT(I)) | |||
RESULTIS 0 | |||
$) | $) | ||
AND FACT(N) = N = 0 -> 1, N * FACT(N - 1) | AND FACT(N) = N = 0 -> 1, N * FACT(N - 1) | ||
</pre> | |||
Count solutions to the [[Eight queens puzzle|N queens problem]]: | |||
<pre> | |||
[[ | GET "LIBHDR" | ||
< | |||
LIBHDR | |||
GLOBAL $( | |||
COUNT: 200 | |||
ALL: 201 | |||
$) | $) | ||
LET TRY(LD, ROW, RD) BE | |||
TEST ROW = ALL THEN | |||
COUNT := COUNT + 1 | |||
ELSE $( | |||
LET POSS = ALL & ~(LD | ROW | RD) | |||
UNTIL POSS = 0 DO $( | |||
LET P = POSS & -POSS | |||
POSS := POSS - P | |||
TRY(LD + P << 1, ROW + P, RD + P >> 1) | |||
$) | |||
$) | |||
$) | |||
LET START() = VALOF $( | |||
ALL := 1 | |||
FOR I = 1 TO 12 DO $( | |||
COUNT := 0 | |||
TRY(0, 0, 0) | |||
WRITEF("%I2-QUEENS PROBLEM HAS %I5 SOLUTIONS*N", I, COUNT) | |||
ALL := 2 * ALL + 1 | |||
$) | |||
RESULTIS 0 | |||
$) | $) | ||
</pre> | |||
==संदर्भ== | ==संदर्भ== | ||
Line 168: | Line 150: | ||
{{Authority control}} | {{Authority control}} | ||
{{DEFAULTSORT:Bcpl}} | {{DEFAULTSORT:Bcpl}} | ||
[[Category: | [[Category:1967 में बनाई गई प्रोग्रामिंग लैंग्वेज|Bcpl]] | ||
[[Category:Created On 17/02/2023]] | [[Category:All articles with unsourced statements|Bcpl]] | ||
[[Category:Articles with invalid date parameter in template|Bcpl]] | |||
[[Category:Articles with unsourced statements from January 2017|Bcpl]] | |||
[[Category:CS1 maint|Bcpl]] | |||
[[Category:Created On 17/02/2023|Bcpl]] | |||
[[Category:Lua-based templates|Bcpl]] | |||
[[Category:Machine Translated Page|Bcpl]] | |||
[[Category:Pages with reference errors|Bcpl]] | |||
[[Category:Pages with script errors|Bcpl]] | |||
[[Category:Short description with empty Wikidata description|Bcpl]] | |||
[[Category:Template documentation pages|Short description/doc]] | |||
[[Category:Templates Vigyan Ready|Bcpl]] | |||
[[Category:Templates that add a tracking category|Bcpl]] | |||
[[Category:Templates that generate short descriptions|Bcpl]] | |||
[[Category:Templates using TemplateData|Bcpl]] | |||
[[Category:Use dmy dates from April 2022|Bcpl]] | |||
[[Category:Wikipedia articles needing clarification from January 2017|Bcpl]] |
Latest revision as of 17:22, 3 March 2023
Paradigm | प्रक्रियात्मक, अनिवार्य, संरचित |
---|---|
द्वारा डिज़ाइन किया गया | मार्टिन रिचर्ड्स |
पहली प्रस्तुति | 1967[1] |
टाइपिंग अनुशासन | टाइपलेस (सब कुछ एक वर्ड है) |
Influenced by | |
सीपीएल | |
Influenced | |
B, C, Go[2] |
बीसीपीएल (बुनियादी संयुक्त प्रोग्रामिंग भाषा) एक प्रक्रियात्मक प्रोग्रामिंग, अनिवार्य प्रोग्रामिंग और संरचित प्रोग्रामिंग भाषा है। मूल रूप से अन्य भाषाओं के लिए संकलक लिखने का इरादा है, बीसीपीएल अब साधारण उपयोग में नहीं है। यद्दपि, इसका प्रभाव अभी भी अनुभूत किया जाता है क्योंकि बीसीपीएल का एक उतारा गया और वाक्य रचित रूप से परिवर्तित संस्करण, जिसे बी (प्रोग्रामिंग भाषा) कहा जाता है, यह वह भाषा थी जिस पर सी(प्रोग्रामिंग भाषा) आधारित थी। बीसीपीएल ने कोड ब्लाकों को सीमित करने के लिए [बी (प्रोग्रामिंग भाषा)] का उपयोग करने सहित कई आधुनिक प्रोग्रामिंग भाषाओं की कई विशेषताएं प्रस्तुत कीं हैं। [3] बीसीपीएल को पहली बार 1967 में कैम्ब्रिज विश्वविद्यालय के मार्टिन रिचर्ड्स (कंप्यूटर वैज्ञानिक) द्वारा लागू किया गया था। [1]
रचना
बीसीपीएल को रचित किया गया था ताकि इसके लिए छोटे और सरल संकलक लिखे जा सकें; प्रतिष्ठित रूप से कुछ संकलक 16 किलोबाइट में चलाए जा सकते हैं। इसके अलावा, बीसीपीएल में लिखा गया मूल संकलक सरलता से ले जाने योग्य था। इस प्रकार बीसीपीएल बूटस्ट्रैपिंग (संकलक) प्रणाली के लिए एक लोकप्रिय विकल्प था।[citation needed] संकलक की सुवाह्यता का एक प्रमुख कारण इसकी संरचना में निहित है। इसे दो भागों में विभाजित किया गया था: अग्रसिरे ने स्रोत को पार्स किया और एक मध्यवर्ती भाषा ओ-कोड उत्पन्न किया। पश्चसिरे ने ओ-कोड लिया और लक्ष्य मशीन के लिए मशीन कोड में इसका अनुवाद किया। केवल 1⁄5 एक नई मशीन का समर्थन करने के लिए संकलक के कोड को फिर से लिखने की आवश्यकता होती है, एक कार्य जो सामान्यत: 2 और 5 व्यक्ति-महीने के बीच होता है। यह दृष्टिकोण बाद में सधारण चलन बन गया (जैसे पास्कल (प्रोग्रामिंग भाषा), जावा (प्रोग्रामिंग भाषा))।
केवल एक डेटा प्रकार होने में भाषा असामान्य है: एक शब्द (कंप्यूटर वास्तुकला), बिट्स की एक निश्चित संख्या, जिसे सामान्यत: वास्तुकला के मशीन शब्द के साथ संरेखित करने के लिए चुना जाता है और किसी वैध भंडारण पते का प्रतिनिधित्व करने के लिए पर्याप्त क्षमता होती है। उस समय की कई मशीनों के लिए, यह आंकडे प्रकार 16-बिट शब्द थे। यह विकल्प बाद में एक महत्वपूर्ण लठिनाई साबित हुआ जब बीसीपीएल का उपयोग मशीनों पर किया गया था जिसमें सबसे छोटी पता योग्य वस्तु एक शब्द नहीं बल्कि एक बाइट थी या 32-बिट या 64-बिट जैसे बड़े शब्द आकार वाली मशीनों पर उपयोग होती है।[citation needed]
मूल्यों को संसाधित करने के लिए उपयोग किए जाने वाले प्रचालकों द्वारा किसी भी मूल्य की व्याख्या निर्धारित की गई थी। (उदाहरण के लिए, +
दो मानों को एक साथ जोड़ा, उन्हें पूर्णांक मानते हुए; !
एक मूल्य के माध्यम से अप्रत्यक्ष रूप से, प्रभावी रूप से इसे एक संकेतक के रूप में माना जाता है। ) इसके कार्य करने के लिए, कार्यान्वयन ने कोई प्रकार की जाँच नहीं की।
बीसीपीएल के शब्द अनुस्थापन और बाइट-उन्मुखी हार्डवेयर के बीच असंगत को कई तरीकों से संबोधित किया गया था। एक बाइट तार में शब्दों को बांधने करने और खोलने के लिए मानक पुस्तकालय दिनचर्या प्रदान करना था। बाद में, दो भाषा सुविधाओं को जोड़ा गया: बिट-फ़ील्ड चयन प्राचालक और इंफिक्स बाइट इंडायरेक्शन प्राचालक (द्वारा चिह्नित) %
)है।[citation needed]
बीसीपीएल अलग-अलग संकलक इकाइयों में फैले बंधन को एक अनोखे तरीके से संभालता है। कोई उपयोगकर्ता-घोषित वैश्विक चर नहीं हैं; इसके बजाय, फोरट्रान में रिक्त साधारण के समान एक वैश्विक सदिश है। विभिन्न संकलक इकाइयों के बीच साझा किए गए सभी आंकड़ों में वैश्विक सदिश में पूर्व-व्यवस्थित स्थान पर संग्रहीत सदिश के लिए अदिश और संकेत सम्मिलित हैं। इस प्रकार, शीर्ष लेख फाइलें (जीईटी (स्नातक इंजीनियर प्रशिक्षु) निर्देश का उपयोग करते हुए संकलक के दौरान सम्मिलित फाइलें) संकलन इकाइयों के बीच वैश्विक आंकड़ों को सिंक्रनाइज़ करने का प्राथमिक साधन बन जाती हैं, जिसमें वैश्विक निर्देश होते हैं जो प्रतीकात्मक नामों की सूची प्रस्तुत करते हैं, प्रत्येक को एक संख्या के साथ जोड़ा जाता है जो नाम को संबंधित संख्यात्मक रूप से जोड़ता है वैश्विक सदिश में संबोधित शब्द, साथ ही चर, वैश्विक सदिश में बाहरी प्रक्रियाओं के लिए बंधन सम्मिलित हैं। यह संकलक इकाइयों की गतिशील लोडिंग को प्राप्त करना बहुत सरल बनाता है। अंतर्निहित कार्यान्वयन के संपर्क लोडर पर भरोसा करने के बजाय प्रभावी रूप से, बीसीपीएल प्रोग्रामर को जोड़ने की प्रक्रिया का नियंत्रण देता है।[citation needed]
वैश्विक सदिश ने मानक पुस्तकालय दिनचर्या को बदलना या बढ़ाना भी बहुत सरल बना दिया है। एक प्रोग्राम संकेत को वैश्विक सदिश से मूल दिनचर्या में सहेज सकता है और इसे संकेत के साथ वैकल्पिक संस्करण में बदल सकता है। विकल्प मूल को इसके प्रसंस्करण के भाग के रूप में कह सकता है। यह एक त्वरित तदर्थ डिबगिंग सहायता के रूप में उपयोग किया जा सकता है।[citation needed]
बीसीपीएल पहली ब्रेस प्रोग्रामिंग भाषा थी और ब्रेसिज़ वाक्य-रचना-संबंधी परिवर्तनों से बच गए और प्रोग्राम स्रोत कोड कथनों को निरूपित करने का एक सामान्य साधन बन गया है। व्यवहार में, दिन के सीमित कीबोर्ड पर, स्रोत प्रोग्राम प्राय: अनुक्रमों का उपयोग करते थे $(
और $)
प्रतीकों के स्थान पर {
और }
. सिंगल-लाइन //
बीसीपीएल की टिप्पणी (कंप्यूटर प्रोग्रामिंग), जो सी (प्रोग्रामिंग भाषा) द्वारा नहीं अपनाई गई थी, सी ++ और बाद में सी99 में फिर से प्रकट हुई।
पुस्तक बीसीपीएल: द लैंग्वेज एंड इट्स कंपाइलर बीसीपीएल के दर्शन का वर्णन इस प्रकार करती है:
बीसीपीएल का दर्शन उन अत्याचारियों में से नहीं है जो सोचता है कि वह सबसे अच्छा जानता है और जो है और जिसकी अनुमति नहीं है, उस पर कानून बनाता है; बल्कि, बीसीपीएल एक नौकर के रूप में अधिक कार्य करता है जो बिना किसी शिकायत के अपनी सर्वोत्तम क्षमता के साथ अपनी सेवाओं की प्रस्तुति करता है, तब भी जब स्पष्ट बकवास का सामना किया जाता है। प्रोग्रामर को हमेशा यह माना जाता है कि वह क्या कर रहा है और छोटे प्रतिबंधों से घिरा नहीं है।[4]
इतिहास
बीसीपीएल को पहली बार 1967 में कैम्ब्रिज विश्वविद्यालय के मार्टिन रिचर्ड्स (कंप्यूटर वैज्ञानिक) द्वारा लागू किया गया था। [1] बीसीपीएल अपने पूर्ववर्ती, कैम्ब्रिज प्रोग्रामिंग भाषा, जिसे बाद में संयुक्त प्रोग्रामिंग भाषा (सीपीएल) का नाम दिया गया था, के साथ कठिनाइयों का जवाब था, जिसे 1960 के दशक के प्रारंभ में रचित किया गया था। रिचर्ड्स ने पूर्ण भाषा की उन विशेषताओं को हटाकर बीसीपीएल बनाया जो संकलन को कठिन बनाते हैं। संगत समय-साझाकरण प्रणाली के तहत आईबीएम 7094 के लिए पहला संकलक कार्यान्वयन, तब लिखा गया था जब रिचर्ड्स 1967 के वसंत में मैसाचुसेट्स की तकनीकी संस्था में प्रोजेक्ट मैक का दौरा कर रहे थे। भाषा को पहली बार 1969 के वसंत जोड़ को प्रस्तुत एक पेपर में वर्णित किया गया था।[citation needed]
बीसीपीएल मूल रूप से बूटस्ट्रैप कैम्ब्रिज प्रोग्रामिंग लैंग्वेज के लिए खड़ा होने की अफवाह है, लेकिन बीसीपीएल में विकास बंद होने के बाद से सीपीएल कभी नहीं बनाया गया था, और बाद में बीसीपीएल पुस्तक के लिए संक्षिप्त नाम की पुनर्व्याख्या की गई थी।[clarification needed][citation needed]
बीसीपीएल वह भाषा है जिसमें मूल हैलो वर्ल्ड प्रोग्राम, हैलो वर्ल्ड! कार्यक्रम लिखा गया था। [5] पहला MUD भी बीसीपीएल (MUD1) में लिखा गया था।
बहुत सी ऑपरेटिंग प्रणाली आंशिक या पूर्ण रूप से बीसीपीएल में लिखी गई थीं (उदाहरण के लिए, ट्रिपॉस और एमिगाडॉस के शुरुआती संस्करण)। बीसीपीएल मौलिक ज़ेरॉक्स पिएआरसी ऑल्टो (कंप्यूटर) परियोजना में उपयोग की जाने वाली प्रारंभिक भाषा भी थी, पहला आधुनिक निजी कंप्यूटर; अन्य परियोजनाओं के बीच, बीसीपीएल में ब्रावो (सॉफ्टवेयर) शब्द संसाधक लिखा गया था।
रिचर्ड्स के टाइटन (1963 कंप्यूटर) संकलक के ओ-कोड के एक कागज पट्टीका के साथ प्रारम्भ करके, 1969 में बूटस्ट्रैप किए गए एक प्रारंभिक संकलक ने आईसीटी 1900 श्रृंखला को लक्षित किया। दो मशीनों में अलग-अलग शब्द-लंबाई (48 बनाम 24 बिट्स), अलग-अलग वर्ण संकेतीकरण और अलग-अलग पैक तंत्री प्रस्तुतियां थीं- और सफल बूटस्ट्रैपिंग ने विधि की व्यावहारिकता में विश्वास बढ़ाया।
1970 के अंत तक, जिई600 श्रृंखला, आईबिएम 360, पिडिपी-10, टिएक्स-2, सीडिसी 6400 युनिवेक 1108, पीडिपी-9, केडिएफ 9 और एटलस 2 के लिए कार्यान्वयन उपस्थित थे। 1974 में बीबीएन में बीसीपीएल की एक बोली लागू की गई थी। इंटरमीडिएट ओ-कोड का उपयोग किए बीबीएन टेक्नोलॉजीज प्रारंभिक कार्यान्वयन बीबीएन के टेनेक्स (ऑपरेटिंग प्रणाली) पीडिपी-10s पर मेजबानी कि गयी पार संकलक थी, और ARPANET में प्रयुक्त दूसरी पीढ़ी के अंतराफलक संदेश प्रक्रमक के बिबिएन के कार्यान्वयन में उपयोग किए गए पीडिपी-11s को सीधे लक्षित करता था।
1980 के दशक के मध्य में बीबीसी माइक्रो के लिए रिचर्ड्स कंप्यूटर उत्पादों द्वारा निर्मित एक संस्करण भी था, जो मार्टिन रिचर्ड्स के भाई जॉन रिचर्ड्स द्वारा प्रारंभ की गई कंपनी थी। [6] बीबीसी डोमेसडे परियोजना ने भाषा का उपयोग किया। एमस्टर्ड सीपिसी और एमस्टर्ड पिसीड्बल्यू कंप्यूटर के लिए बीसीपीएल के संस्करण भी 1986 में यूके सॉफ्टवेयर हाउस अर्नोर लिमिटेड द्वारा जारी किए गए थे। मैकबीसीपीएल को 1985 में केंसिंग्टन, इंग्लैंड के टोप एक्सप्रेस द्वारा एप्पल मॅकिन्तोश के लिए जारी किया गया था।
बीसीपीएल के रचना और दर्शन दोनों ने बी (प्रोग्रामिंग भाषा) को दृढ़ता से प्रभावित किया, जिसने बदले में सी (प्रोग्रामिंग भाषा) को प्रभावित किया। [7] उस समय क्रमादेशकों ने इस बात पर बहस की कि क्या सी के अंतिम उत्तराधिकारी को डी कहा जाएगा, वर्णमाला में अगला अक्षर, या पि, मूल भाषा के नाम का अगला अक्षर होगा। सी के उत्तराधिकारी के रूप में स्वीकृत भाषा सी ++ (के साथ ++
के वेतन वृद्धि प्रचालक होने के नाते),[8] यद्दपि इस बीच, एक डी (प्रोग्रामिंग भाषा) प्रोग्रामिंग भाषा भी उपस्थित है।
1979 में, कम से कम 25 वास्तुकला के लिए बीसीपीएल का कार्यान्वयन उपस्थित था; गैर-यूनिक्स प्रणालियों पर सी के लोकप्रिय होते ही भाषा धीरे-धीरे लोकप्रिय हो गई।
मार्टिन रिचर्ड्स अपनी वेबसाइट पर बीसीपीएल का एक आधुनिक संस्करण बनाए रखते हैं, जिसे आखिरी बार 2018 में अघतन किया गया था। इसे लिनक्स, फ्रीबीएसडी और मैक ओएस एक्स सहित विभिन्न प्रणालियों पर चलाने के लिए सेट किया जा सकता है। नवीनतम वितरण में सुचित्रित और ध्वनि पुस्तकालय और एक व्यापक नियमावली सम्मिलित हैं। वह इसमें योजनाएं करना जारी रखता है, जिसमें संगीतमय स्वाचालित अंक निम्नलिखित पर अपने शोध के लिए भी सम्मिलित है।
बीसीपीएल के लिए एक सामान्य अनौपचारिक मीडिया प्रकार है .
उदाहरण
यदि ये प्रोग्राम रिचर्ड्स के सिन्टसिस के वर्तमान संस्करण (दिसंबर 2018) का उपयोग करके चलाए जा रहे हैं, तो त्रुटियों से बचने के लिए LIBHDR, START और WRITEF को छोटे अक्षर में बदला जाना चाहिए।
प्रिंट फैक्टोरियल:
GET "LIBHDR" LET START() = VALOF $( FOR I = 1 TO 5 DO WRITEF("%N! = %I4*N", I, FACT(I)) RESULTIS 0 $) AND FACT(N) = N = 0 -> 1, N * FACT(N - 1)
Count solutions to the N queens problem:
GET "LIBHDR" GLOBAL $( COUNT: 200 ALL: 201 $) LET TRY(LD, ROW, RD) BE TEST ROW = ALL THEN COUNT := COUNT + 1 ELSE $( LET POSS = ALL & ~(LD | ROW | RD) UNTIL POSS = 0 DO $( LET P = POSS & -POSS POSS := POSS - P TRY(LD + P << 1, ROW + P, RD + P >> 1) $) $) LET START() = VALOF $( ALL := 1 FOR I = 1 TO 12 DO $( COUNT := 0 TRY(0, 0, 0) WRITEF("%I2-QUEENS PROBLEM HAS %I5 SOLUTIONS*N", I, COUNT) ALL := 2 * ALL + 1 $) RESULTIS 0 $)
संदर्भ
- ↑ 1.0 1.1 1.2 "मार्टिन रिचर्ड्स (2003 कंप्यूटर पायनियर अवार्ड)". IEEE Computer Society. Archived from the original on 24 November 2017. Retrieved 24 November 2017.
- ↑ Pike, Rob (24 April 2014). "Hello Gophers". Retrieved 11 March 2016.
- ↑ https://www.cl.cam.ac.uk/~mr10/bcplman.pdf The BCPL Cintsys and Cintpos User Guide, 2.1.4 Section brackets
- ↑ Richards, Martin; Whitby-Strevens, Colin (1980). BCPL: The Language and its Compiler. Cambridge University Press. p. 5. ISBN 978-0521785433.
- ↑ BCPL, Jargon File
- ↑ "Reuters technical development: Glossary - THE BARON". www.thebaron.info.
- ↑ Kernighan, Brian W. and Dennis M. Ritchie (1978). सी प्रोग्रामिंग लैंग्वेज. Bell Telephone Laboratories. p. 2. ISBN 0-13-110163-3.
{{cite book}}
: CS1 maint: uses authors parameter (link) - ↑ History of C++ Retrieved 12 December 2017
अग्रिम पठन
- Martin Richards, The बीसीपीएल Reference Manual (Memorandum M-352, Project MAC, Cambridge, MA, USA, July, 1967)
- Martin Richards, बीसीपीएल - a tool for compiler writing and systems programming (Proceedings of the Spring Joint Computer Conference, Vol 34, pp 557–566, 1969)
- Martin Richards, Arthur Evans, Robert F. Mabee, The बीसीपीएल Reference Manual (MAC TR-141, Project MAC, Cambridge, MA, USA, 1974)
- Martin Richards, Colin Whitby-Strevens, बीसीपीएल, the language and its compiler (Cambridge University Press, 1980) ISBN 0-521-28681-6
बाहरी संबंध
- Martin Richards' बीसीपीएल distribution
- Martin Richards' बीसीपीएल Reference Manual, 1967 by Dennis M. Ritchie
- बीसीपीएल entry in the Jargon File
- Nordier & Associates' x86 port
- Arnorबीसीपीएल manual
- How बीसीपीएल evolved from CPL, Martin Richards [1]
- Ritchie's The Development of the C Language has commentary about बीसीपीएल's influence on C
- The बीसीपीएल Cintsys and Cintpos User Guide