बीसीपीएल: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Multi-paradigm computer programming language}} {{About|the programming language|the library system|Baltimore County Public Library}} {{Use dmy dates|date=A...")
 
No edit summary
 
(11 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}}
{{About|the programming language|the library system|Baltimore County Public Library}}
{{Use dmy dates|date=April 2022}}
{{Use dmy dates|date=April 2022}}
{{More citations needed|date=May 2010}}


{{Infobox programming language
{{Infobox programming language
| name                  = BCPL
| name                  = बीसीपीएल
| logo                  =  
| logo                  =  
| paradigm              = [[procedural programming|procedural]], [[imperative programming|imperative]], [[structured programming|structured]]
| paradigm              = [[प्रक्रियात्मक प्रोग्रामिंग|प्रक्रियात्मक]], [[अनिवार्य प्रोग्रामिंग|अनिवार्य]], [[संरचित प्रोग्रामिंग|संरचित]]
| year                  = {{start date and age|1967}}<ref name="IEEE_CPA_MRichards"/>
| year                  = {{start date and age|1967}}<ref name="IEEE_CPA_MRichards"/>
| designer              = [[Martin Richards (computer scientist)|Martin Richards]]
| 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                = typeless (everything is a [[Word (computer architecture)|word]])
| typing                = टाइपलेस (सब कुछ एक [[वर्ड (कंप्यूटर आर्किटेक्चर)|वर्ड]] है)
| implementations        =  
| implementations        =  
| dialects              =  
| dialects              =  
| influenced_by          = [[CPL (programming language)|CPL]]
| 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                =
}}
}}
BCPL (बेसिक कंबाइंड प्रोग्रामिंग लैंग्वेज) एक [[प्रक्रियात्मक प्रोग्रामिंग]], [[अनिवार्य प्रोग्रामिंग]] और [[संरचित प्रोग्रामिंग]] [[प्रोग्रामिंग भाषा]] है। मूल रूप से अन्य भाषाओं के लिए [[संकलक]] लिखने का इरादा है, बीसीपीएल अब आम उपयोग में नहीं है। हालाँकि, इसका प्रभाव अभी भी महसूस किया जाता है क्योंकि BCPL का एक स्ट्रिप्ड डाउन और सिंटैक्टिक रूप से परिवर्तित संस्करण, जिसे B (प्रोग्रामिंग लैंग्वेज) कहा जाता है, वह भाषा थी जिस पर C (प्रोग्रामिंग लैंग्वेज) आधारित थी। बीसीपीएल ने कोड ब्लॉक को सीमित करने के लिए [[[[बी (प्रोग्रामिंग भाषा)]]]] का उपयोग करने सहित कई आधुनिक प्रोग्रामिंग भाषाओं की कई विशेषताएं पेश कीं।<ref>https://www.cl.cam.ac.uk/~mr10/bcplman.pdf The BCPL Cintsys and Cintpos User Guide, 2.1.4 Section brackets</ref> BCPL को पहली बार 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>


== डिजाइन ==
== रचना ==
{{More citations needed section|date=January 2017}}
बीसीपीएल को रचित किया गया था ताकि इसके लिए छोटे और सरल [[बूटस्ट्रैपिंग (संकलक)|संकलक]] लिखे जा सकें; प्रतिष्ठित रूप से कुछ संकलक 16 [[किलोबाइट]] में चलाए जा सकते हैं। इसके अलावा, बीसीपीएल में लिखा गया मूल संकलक सरलता से ले जाने योग्य था। इस प्रकार बीसीपीएल [[बूटस्ट्रैपिंग (संकलक)]] प्रणाली के लिए एक लोकप्रिय विकल्प था। {{Citation needed|date=January 2017}} [[बूटस्ट्रैपिंग (संकलक)|संकलक]] की सुवाह्यता का एक प्रमुख कारण इसकी संरचना में निहित है। इसे दो भागों में विभाजित किया गया था: अग्रसिरे ने स्रोत को पार्स किया और एक [[मध्यवर्ती भाषा]] ओ-कोड उत्पन्न किया। पश्चसिरे ने ओ-कोड लिया और लक्ष्य मशीन के लिए मशीन कोड में इसका अनुवाद किया। केवल {{frac|5}} एक नई मशीन का समर्थन करने के लिए [[बूटस्ट्रैपिंग (संकलक)|संकलक]] के कोड को फिर से लिखने की आवश्यकता होती है, एक कार्य जो सामान्यत: 2 और 5 व्यक्ति-महीने के बीच होता है। यह दृष्टिकोण बाद में सधारण चलन बन गया (जैसे [[पास्कल (प्रोग्रामिंग भाषा)]], [[जावा (प्रोग्रामिंग भाषा)]])।  
बीसीपीएल को डिजाइन किया गया था ताकि इसके लिए छोटे और सरल संकलक लिखे जा सकें; प्रतिष्ठित रूप से कुछ संकलक 16 [[किलोबाइट]] में चलाए जा सकते हैं। इसके अलावा, बीसीपीएल में लिखा गया मूल संकलक आसानी से पोर्टेबल था। इस प्रकार बीसीपीएल [[बूटस्ट्रैपिंग (संकलक)]] प्रणाली के लिए एक लोकप्रिय विकल्प था।{{Citation needed|date=January 2017}} कंपाइलर की सुवाह्यता का एक प्रमुख कारण इसकी संरचना में निहित है। इसे दो भागों में विभाजित किया गया था: फ्रंट एंड ने स्रोत को पार्स किया और एक [[मध्यवर्ती भाषा]] ओ-कोड उत्पन्न किया। बैक एंड ने ओ-कोड लिया और लक्ष्य मशीन के लिए मशीन कोड में इसका अनुवाद किया। केवल {{frac|5}} एक नई मशीन का समर्थन करने के लिए संकलक के कोड को फिर से लिखने की आवश्यकता होती है, एक कार्य जो आमतौर पर 2 और 5 व्यक्ति-महीने के बीच होता है। व्यक्ति-महीने। यह दृष्टिकोण बाद में आम चलन बन गया (जैसे [[पास्कल (प्रोग्रामिंग भाषा)]], [[जावा (प्रोग्रामिंग भाषा)]])।


केवल एक [[डेटा प्रकार]] होने में भाषा असामान्य है: एक शब्द (कंप्यूटर आर्किटेक्चर), बिट्स की एक निश्चित संख्या, जिसे आमतौर पर आर्किटेक्चर के मशीन शब्द के साथ संरेखित करने के लिए चुना जाता है और किसी वैध भंडारण पते का प्रतिनिधित्व करने के लिए पर्याप्त क्षमता होती है। उस समय की कई मशीनों के लिए, यह डेटा प्रकार 16-बिट शब्द था। यह विकल्प बाद में एक महत्वपूर्ण समस्या साबित हुआ जब बीसीपीएल का उपयोग मशीनों पर किया गया था जिसमें सबसे छोटी पता योग्य वस्तु एक शब्द नहीं बल्कि एक [[बाइट]] थी या 32-बिट या 64-बिट जैसे बड़े शब्द आकार वाली मशीनों पर।{{Citation needed|date=January 2017}}
केवल एक [[डेटा प्रकार]] होने में भाषा असामान्य है: एक शब्द (कंप्यूटर वास्तुकला), बिट्स की एक निश्चित संख्या, जिसे सामान्यत: वास्तुकला के मशीन शब्द के साथ संरेखित करने के लिए चुना जाता है और किसी वैध भंडारण पते का प्रतिनिधित्व करने के लिए पर्याप्त क्षमता होती है। उस समय की कई मशीनों के लिए, यह आंकडे प्रकार 16-बिट शब्द थे। यह विकल्प बाद में एक महत्वपूर्ण लठिनाई साबित हुआ जब बीसीपीएल का उपयोग मशीनों पर किया गया था जिसमें सबसे छोटी पता योग्य वस्तु एक शब्द नहीं बल्कि एक [[बाइट]] थी या 32-बिट या 64-बिट जैसे बड़े शब्द आकार वाली मशीनों पर उपयोग होती है। {{Citation needed|date=January 2017}}
मूल्यों को संसाधित करने के लिए उपयोग किए जाने वाले ऑपरेटरों द्वारा किसी भी मूल्य की व्याख्या निर्धारित की गई थी। (उदाहरण के लिए, <code>+</code> दो मानों को एक साथ जोड़ा, उन्हें [[पूर्णांक]] मानते हुए; <code>!</code> एक मूल्य के माध्यम से अप्रत्यक्ष रूप से, प्रभावी रूप से इसे एक संकेतक के रूप में माना जाता है।) इसके काम करने के लिए, कार्यान्वयन ने कोई [[प्रकार की जाँच]] नहीं की।


बीसीपीएल के वर्ड ओरिएंटेशन और [[बाइट एड्रेसिंग]] | बाइट-ओरिएंटेड हार्डवेयर के बीच बेमेल को कई तरीकों से संबोधित किया गया था। एक बाइट स्ट्रिंग्स में शब्दों को पैक करने और अनपैक करने के लिए मानक लाइब्रेरी रूटीन प्रदान करना था। बाद में, दो भाषा सुविधाओं को जोड़ा गया: बिट-फ़ील्ड चयन ऑपरेटर और इंफिक्स बाइट इंडिकेशन ऑपरेटर (द्वारा चिह्नित) <code>%</code>).{{Citation needed|date=January 2017}}
मूल्यों को संसाधित करने के लिए उपयोग किए जाने वाले प्रचालकों द्वारा किसी भी मूल्य की व्याख्या निर्धारित की गई थी। (उदाहरण के लिए, <code>+</code> दो मानों को एक साथ जोड़ा, उन्हें [[पूर्णांक]] मानते हुए; <code>!</code> एक मूल्य के माध्यम से अप्रत्यक्ष रूप से, प्रभावी रूप से इसे एक संकेतक के रूप में माना जाता है। ) इसके कार्य करने के लिए, कार्यान्वयन ने कोई [[प्रकार की जाँच]] नहीं की।
बीसीपीएल अलग-अलग संकलन इकाइयों में फैले बाइंडिंग को एक अनोखे तरीके से संभालता है। कोई उपयोगकर्ता-घोषित वैश्विक चर नहीं हैं; इसके बजाय, [[फोरट्रान]] में रिक्त आम के समान एक वैश्विक वेक्टर है। विभिन्न संकलन इकाइयों के बीच साझा किए गए सभी डेटा में वैश्विक वेक्टर में पूर्व-व्यवस्थित स्थान पर संग्रहीत वेक्टर के लिए स्केलर और पॉइंटर्स शामिल हैं। इस प्रकार, हेडर फाइलें (जीईटी निर्देश का उपयोग करते हुए संकलन के दौरान शामिल फाइलें) संकलन इकाइयों के बीच वैश्विक डेटा को सिंक्रनाइज़ करने का प्राथमिक साधन बन जाती हैं, जिसमें वैश्विक निर्देश होते हैं जो प्रतीकात्मक नामों की सूची प्रस्तुत करते हैं, प्रत्येक को एक संख्या के साथ जोड़ा जाता है जो नाम को संबंधित संख्यात्मक रूप से जोड़ता है वैश्विक वेक्टर में संबोधित शब्द। साथ ही चर, वैश्विक वेक्टर में बाहरी प्रक्रियाओं के लिए बाइंडिंग शामिल हैं। यह संकलन इकाइयों की गतिशील लोडिंग को प्राप्त करना बहुत आसान बनाता है। अंतर्निहित कार्यान्वयन के लिंक लोडर पर भरोसा करने के बजाय प्रभावी रूप से, बीसीपीएल प्रोग्रामर को लिंकिंग प्रक्रिया का नियंत्रण देता है।{{Citation needed|date=January 2017}}
 
वैश्विक वेक्टर ने मानक लाइब्रेरी रूटीन को बदलना या बढ़ाना भी बहुत आसान बना दिया है। एक प्रोग्राम पॉइंटर को वैश्विक वेक्टर से मूल दिनचर्या में सहेज सकता है और इसे पॉइंटर के साथ वैकल्पिक संस्करण में बदल सकता है। विकल्प मूल को इसके प्रसंस्करण के हिस्से के रूप में कह सकता है। यह एक त्वरित तदर्थ डिबगिंग सहायता के रूप में इस्तेमाल किया जा सकता है।{{Citation needed|date=January 2017}}
बीसीपीएल के शब्द अनुस्थापन और बाइट-उन्मुखी हार्डवेयर के बीच असंगत को कई तरीकों से संबोधित किया गया था। एक बाइट तार में शब्दों को बांधने करने और खोलने के लिए मानक पुस्तकालय दिनचर्या प्रदान करना था। बाद में, दो भाषा सुविधाओं को जोड़ा गया: बिट-फ़ील्ड चयन प्राचालक और इंफिक्स बाइट इंडायरेक्शन प्राचालक (द्वारा चिह्नित) <code>%</code>)है। {{Citation needed|date=January 2017}}
बीसीपीएल पहली ब्रेस प्रोग्रामिंग भाषा थी और ब्रेसिज़ सिंटैक्टिकल परिवर्तनों से बच गए और प्रोग्राम सोर्स कोड स्टेटमेंट्स को निरूपित करने का एक सामान्य साधन बन गए। व्यवहार में, दिन के सीमित कीबोर्ड पर, स्रोत प्रोग्राम अक्सर अनुक्रमों का उपयोग करते थे <code>$(</code> और <code>$)</code> प्रतीकों के स्थान पर <code>{</code> और <code>}</code>. सिंगल-लाइन <code>//</code> बीसीपीएल की [[टिप्पणी (कंप्यूटर प्रोग्रामिंग)]], जो सी (प्रोग्रामिंग भाषा) द्वारा नहीं अपनाई गई थी, [[सी ++]] और बाद में सी99 में फिर से प्रकट हुई।
 
बीसीपीएल अलग-अलग [[संकलक]] इकाइयों में फैले बंधन को एक अनोखे तरीके से संभालता है। कोई उपयोगकर्ता-घोषित वैश्विक चर नहीं हैं; इसके बजाय, [[फोरट्रान]] में रिक्त साधारण के समान एक वैश्विक सदिश है। विभिन्न [[संकलक]] इकाइयों के बीच साझा किए गए सभी आंकड़ों में वैश्विक सदिश में पूर्व-व्यवस्थित स्थान पर संग्रहीत सदिश के लिए अदिश और संकेत सम्मिलित हैं। इस प्रकार, शीर्ष लेख फाइलें (जीईटी (स्नातक इंजीनियर प्रशिक्षु) निर्देश का उपयोग करते हुए [[संकलक]] के दौरान सम्मिलित फाइलें) संकलन इकाइयों के बीच वैश्विक आंकड़ों को सिंक्रनाइज़ करने का प्राथमिक साधन बन जाती हैं, जिसमें वैश्विक निर्देश होते हैं जो प्रतीकात्मक नामों की सूची प्रस्तुत करते हैं, प्रत्येक को एक संख्या के साथ जोड़ा जाता है जो नाम को संबंधित संख्यात्मक रूप से जोड़ता है वैश्विक सदिश में संबोधित शब्द, साथ ही चर, वैश्विक सदिश में बाहरी प्रक्रियाओं के लिए बंधन सम्मिलित हैं। यह [[संकलक]] इकाइयों की गतिशील लोडिंग को प्राप्त करना बहुत सरल बनाता है। अंतर्निहित कार्यान्वयन के संपर्क लोडर पर भरोसा करने के बजाय प्रभावी रूप से, बीसीपीएल प्रोग्रामर को जोड़ने की प्रक्रिया का नियंत्रण देता है। {{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>}}


पुस्तक बीसीपीएल: द लैंग्वेज एंड इट्स कंपाइलर बीसीपीएल के दर्शन का वर्णन इस प्रकार करती है:
{{Blockquote|The philosophy of BCPL is not one of the tyrant who thinks he knows best and lays down the law on what is and what is not allowed; rather, BCPL acts more as a servant offering his services to the best of his ability without complaint, even when confronted with apparent nonsense.  The programmer is always assumed to know what he is doing and is not hemmed in by petty restrictions.<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>}}




== इतिहास ==
== इतिहास ==
BCPL को पहली बार 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}}</ रेफ> बीसीपीएल अपने पूर्ववर्ती, कैम्ब्रिज प्रोग्रामिंग लैंग्वेज, जिसे बाद में [[संयुक्त प्रोग्रामिंग भाषा]] (सीपीएल) का नाम दिया गया था, के साथ कठिनाइयों का जवाब था, जिसे 1960 के दशक की शुरुआत में डिजाइन किया गया था। रिचर्ड्स ने पूर्ण भाषा की उन विशेषताओं को हटाकर बीसीपीएल बनाया जो संकलन को कठिन बनाते हैं। [[संगत समय-साझाकरण प्रणाली]] के तहत [[आईबीएम 7094]] के लिए पहला कंपाइलर कार्यान्वयन, तब लिखा गया था जब रिचर्ड्स 1967 के वसंत में [[मैसाचुसेट्स की तकनीकी संस्था]] में [[प्रोजेक्ट मैक]] का दौरा कर रहे थे। भाषा को पहली बार 1969 के स्प्रिंग जॉइंट को प्रस्तुत एक पेपर में वर्णित किया गया था। कंप्यूटर सम्मेलन।{{Citation needed|date=January 2017}}
बीसीपीएल को पहली बार 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]] ​​भी BCPL ([[MUD1]]) में लिखा गया था।
बीसीपीएल मूल रूप से बूटस्ट्रैप कैम्ब्रिज प्रोग्रामिंग लैंग्वेज के लिए खड़ा होने की अफवाह है, लेकिन बीसीपीएल में विकास बंद होने के बाद से सीपीएल कभी नहीं बनाया गया था, और बाद में बीसीपीएल पुस्तक के लिए संक्षिप्त नाम की पुनर्व्याख्या की गई थी। {{Clarify|date=January 2017}}{{Citation needed|date=January 2017}}


BCPL में [[टेनेक्स ([[ऑपरेटिंग सिस्टम]])]] आंशिक या पूर्ण रूप से लिखे गए थे (उदाहरण के लिए, [[TRIPOS]] और [[AmigaDOS]] के शुरुआती संस्करण)। बीसीपीएल मौलिक [[ज़ेरॉक्स PARC]] ऑल्टो (कंप्यूटर) परियोजना में इस्तेमाल की जाने वाली प्रारंभिक भाषा भी थी, पहला आधुनिक [[निजी कंप्यूटर]]; अन्य परियोजनाओं के बीच, बीसीपीएल में [[ब्रावो (सॉफ्टवेयर)]] [[शब्द संसाधक]] लिखा गया था।
बीसीपीएल वह भाषा है जिसमें मूल हैलो वर्ल्ड प्रोग्राम, हैलो वर्ल्ड! कार्यक्रम लिखा गया था। <ref>[http://www.catb.org/jargon/html/B/BCPL.html BCPL], ''[[Jargon File]]''</ref> पहला [[MUD]] ​​भी बीसीपीएल ([[MUD1]]) में लिखा गया था।  


रिचर्ड्स के [[टाइटन (1963 कंप्यूटर)]] कंपाइलर के ओ-कोड के एक पेपर टेप के साथ शुरू करके, 1969 में बूटस्ट्रैप किए गए एक शुरुआती कंपाइलर ने ICT 1900 श्रृंखला को लक्षित किया। दो मशीनों में अलग-अलग शब्द-लंबाई (48 बनाम 24 बिट्स), अलग-अलग वर्ण एन्कोडिंग और अलग-अलग पैक्ड स्ट्रिंग प्रस्तुतियां थीं- और सफल बूटस्ट्रैपिंग ने विधि की व्यावहारिकता में विश्वास बढ़ाया।
बहुत सी [[ऑपरेटिंग सिस्टम|ऑपरेटिंग प्रणाली]] आंशिक या पूर्ण रूप से बीसीपीएल में लिखी गई थीं (उदाहरण के लिए, [[TRIPOS|ट्रिपॉस]] और [[AmigaDOS|एमिगाडॉस]] के शुरुआती संस्करण)। बीसीपीएल मौलिक [[ज़ेरॉक्स PARC|ज़ेरॉक्स पिएआरसी]] ऑल्टो (कंप्यूटर) परियोजना में उपयोग की जाने वाली प्रारंभिक भाषा भी थी, पहला आधुनिक [[निजी कंप्यूटर]]; अन्य परियोजनाओं के बीच, बीसीपीएल में [[ब्रावो (सॉफ्टवेयर)]] [[शब्द संसाधक]] लिखा गया था।


1970 के अंत तक, GE-600 श्रृंखला, [[IBM 360]], [[PDP-10]], [[TX-2]], [[CDC 6400]], [[UNIVAC 1108]], [[PDP-9]], [[KDF 9]] और एटलस 2 के लिए कार्यान्वयन मौजूद थे। 1974 में BBN में BCPL की एक बोली लागू की गई थी। इंटरमीडिएट ओ-कोड का उपयोग किए [[बीबीएन टेक्नोलॉजीज]] प्रारंभिक कार्यान्वयन BBN के TENEX (ऑपरेटिंग सिस्टम) PDP-10s पर होस्ट किया गया एक [[पार संकलक]] था, और [[ARPANET]] में प्रयुक्त दूसरी पीढ़ी के [[इंटरफ़ेस संदेश प्रोसेसर]] के BBN के कार्यान्वयन में उपयोग किए गए [[PDP-11]]s को सीधे लक्षित करता था।
रिचर्ड्स के [[टाइटन (1963 कंप्यूटर)]] संकलक के ओ-कोड के एक कागज पट्टीका के साथ प्रारम्भ करके, 1969 में बूटस्ट्रैप किए गए एक प्रारंभिक [[संकलक]] ने आईसीटी 1900 श्रृंखला को लक्षित किया। दो मशीनों में अलग-अलग शब्द-लंबाई (48 बनाम 24 बिट्स), अलग-अलग वर्ण संकेतीकरण और अलग-अलग पैक तंत्री प्रस्तुतियां थीं- और सफल बूटस्ट्रैपिंग ने विधि की व्यावहारिकता में विश्वास बढ़ाया।


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]] कंप्यूटर के लिए BCPL के संस्करण भी 1986 में यूके सॉफ्टवेयर हाउस अर्नोर लिमिटेड द्वारा जारी किए गए थे। MacBCPL को 1985 में केंसिंग्टन, इंग्लैंड के Topexpress Ltd द्वारा Apple Macintosh के लिए जारी किया गया था।
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 को सीधे लक्षित करता था।  


बीसीपीएल के डिजाइन और दर्शन दोनों ने बी (प्रोग्रामिंग भाषा) को दृढ़ता से प्रभावित किया, जिसने बदले में सी (प्रोग्रामिंग भाषा) को प्रभावित किया।<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> उस समय प्रोग्रामरों ने इस बात पर बहस की कि क्या C के अंतिम उत्तराधिकारी को D कहा जाएगा, वर्णमाला में अगला अक्षर, या P, मूल भाषा के नाम का अगला अक्षर। सी के उत्तराधिकारी के रूप में स्वीकृत भाषा सी ++ (के साथ <code>++</code> सी के [[वेतन वृद्धि ऑपरेटर]] होने के नाते),<ref>[http://www.cplusplus.com/info/history/ History of C++] Retrieved 12 December 2017</ref> हालाँकि इस बीच, एक D (प्रोग्रामिंग भाषा) प्रोग्रामिंग भाषा भी मौजूद है।
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 में केंसिंग्टन, इंग्लैंड के टोप एक्सप्रेस द्वारा एप्पल मॅकिन्तोश के लिए जारी किया गया था।


1979 में, कम से कम 25 आर्किटेक्चर के लिए बीसीपीएल का कार्यान्वयन मौजूद था; गैर-यूनिक्स प्रणालियों पर सी के लोकप्रिय होते ही भाषा धीरे-धीरे लोकप्रिय हो गई।
बीसीपीएल के रचना और दर्शन दोनों ने [[बी (प्रोग्रामिंग भाषा)]] को दृढ़ता से प्रभावित किया, जिसने बदले में सी (प्रोग्रामिंग भाषा) को प्रभावित किया। <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> यद्दपि इस बीच, एक डी (प्रोग्रामिंग भाषा) प्रोग्रामिंग भाषा भी उपस्थित है।


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


बीसीपीएल के लिए एक सामान्य अनौपचारिक [[मीडिया प्रकार]] है {{mono|text/x-bcpl}}.
मार्टिन रिचर्ड्स अपनी वेबसाइट पर बीसीपीएल का एक आधुनिक संस्करण बनाए रखते हैं, जिसे आखिरी बार 2018 में अघतन किया गया था। इसे लिनक्स, फ्रीबीएसडी और मैक ओएस एक्स सहित विभिन्न प्रणालियों पर चलाने के लिए सेट किया जा सकता है। नवीनतम वितरण में सुचित्रित और ध्वनि पुस्तकालय और एक व्यापक नियमावली सम्मिलित हैं। वह इसमें योजनाएं करना जारी रखता है, जिसमें संगीतमय स्वाचालित [[स्कोर निम्नलिखित|अंक निम्नलिखित]] पर अपने शोध के लिए भी सम्मिलित है।
 
बीसीपीएल के लिए एक सामान्य अनौपचारिक [[मीडिया प्रकार]] है .


== उदाहरण ==
== उदाहरण ==
{{original research|section|date=August 2019}}
यदि ये प्रोग्राम रिचर्ड्स के सिन्टसिस के वर्तमान संस्करण (दिसंबर 2018) का उपयोग करके चलाए जा रहे हैं, तो त्रुटियों से बचने के लिए LIBHDR, START और WRITEF को छोटे अक्षर में बदला जाना चाहिए।  
यदि ये प्रोग्राम रिचर्ड्स के Cintsys के वर्तमान संस्करण (दिसंबर 2018) का उपयोग करके चलाए जा रहे हैं, तो त्रुटियों से बचने के लिए LIBHDR, START और WRITEF को लोअर केस में बदला जाना चाहिए।


प्रिंट भाज्य:
प्रिंट फैक्टोरियल:
<पूर्व>
<pre>
LIBHDR प्राप्त करें
GET "LIBHDR"


एलईटी स्टार्ट () = वैलोफ $ (
LET START() = VALOF $(
I के लिए = 1 से 5 DO
FOR I = 1 TO 5 DO
WRITEF(%N! =%I4*N , I, FACT(I))
WRITEF("%N! = %I4*N", I, FACT(I))
परिणाम 0
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>
LIBHDR प्राप्त करें
GET "LIBHDR"


वैश्विक $(
GLOBAL $(
गिनती: 200
COUNT: 200
सब: 201
ALL: 201
$)
$)


आइए कोशिश करें (एलडी, पंक्ति, आरडी) बीई
LET TRY(LD, ROW, RD) BE
टेस्ट पंक्ति = सभी
TEST ROW = ALL THEN
काउंट := काउंट + 1
COUNT := COUNT + 1
अन्य $(
ELSE $(
एलईटी पॉस = सभी और ~ (एलडी | पंक्ति | आरडी)
LET POSS = ALL & ~(LD | ROW | RD)
पोस तक = 0 DO $(
UNTIL POSS = 0 DO $(
एलईटी पी = पोस और -पॉस
LET P = POSS & -POSS
पोस := पोस -
POSS := POSS - P
कोशिश (एलडी + पी << 1, पंक्ति + पी, आरडी + पी >> 1)
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>


एलईटी स्टार्ट () = वैलोफ $ (
सब := 1
I के लिए = 1 से 12 DO $(
काउंट := 0
कोशिश (0, 0, 0)
WRITEF(%I2-क्वींस समस्या में%I5 समाधान*N , I, काउंट है)
सब := 2 * सब + 1
$)
परिणाम 0
$)
</पूर्व>


==संदर्भ==
==संदर्भ==
Line 118: Line 132:


==अग्रिम पठन==
==अग्रिम पठन==
* Martin Richards, ''[https://www.bell-labs.com/usr/dmr/www/bcpl.html The BCPL Reference Manual]'' (Memorandum M-352, [[Project MAC]], Cambridge, MA, USA, July, 1967) <!-- temporary copy: http://www.fh-jena.de/~kleine/history/languages/Richards-BCPL-ReferenceManual.pdf -->
* Martin Richards, ''[https://www.bell-labs.com/usr/dmr/www/bcpl.html The बीसीपीएल Reference Manual]'' (Memorandum M-352, [[Project MAC]], Cambridge, MA, USA, July, 1967)<!-- temporary copy: http://www.fh-jena.de/~kleine/history/languages/Richards-BCPL-ReferenceManual.pdf -->
* Martin Richards, ''BCPL - a tool for compiler writing and systems programming'' ('''Proceedings of the Spring Joint Computer Conference''', Vol 34, pp 557–566, 1969)
* 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, ''[https://web.archive.org/web/20160305034639/http://publications.csail.mit.edu/lcs/specpub.php?id=709 The BCPL Reference Manual]'' (MAC TR-141, [[Project MAC]], Cambridge, MA, USA, 1974)
* Martin Richards, Arthur Evans, Robert F. Mabee, ''[https://web.archive.org/web/20160305034639/http://publications.csail.mit.edu/lcs/specpub.php?id=709 The बीसीपीएल Reference Manual]'' (MAC TR-141, [[Project MAC]], Cambridge, MA, USA, 1974)
* Martin Richards, Colin Whitby-Strevens, ''BCPL, the language and its compiler'' (Cambridge University Press, 1980) {{ISBN|0-521-28681-6}}
* Martin Richards, Colin Whitby-Strevens, ''बीसीपीएल, the language and its compiler'' (Cambridge University Press, 1980) {{ISBN|0-521-28681-6}}




==बाहरी संबंध==
==बाहरी संबंध==
* [http://www.cl.cam.ac.uk/users/mr/BCPL.html Martin Richards' BCPL distribution]
* [http://www.cl.cam.ac.uk/users/mr/BCPL.html Martin Richards' बीसीपीएल distribution]
* [https://www.bell-labs.com/usr/dmr/www/bcpl.html Martin Richards' BCPL Reference Manual, 1967] by [[Dennis M. Ritchie]]
* [https://www.bell-labs.com/usr/dmr/www/bcpl.html Martin Richards' बीसीपीएल Reference Manual, 1967] by [[Dennis M. Ritchie]]
* [http://www.catb.org/~esr/jargon/html/B/BCPL.html BCPL entry] in the [[Jargon File]]
* [http://www.catb.org/~esr/jargon/html/B/BCPL.html बीसीपीएल entry] in the [[Jargon File]]
* Nordier & Associates' [[x86]] [https://web.archive.org/web/20200715142010/http://www.nordier.com/software/bcpl.html port]
* Nordier & Associates' [[x86]] [https://web.archive.org/web/20200715142010/http://www.nordier.com/software/bcpl.html port]
* [http://cpcwiki.eu/imgs/3/3a/ArnorBCPL.pdf ArnorBCPL manual]
* [http://cpcwiki.eu/imgs/3/3a/ArnorBCPL.pdf Arnorबीसीपीएल manual]
* How BCPL evolved from CPL, Martin Richards [https://www.cl.cam.ac.uk/~mr10/cpl2bcpl.pdf]
* How बीसीपीएल evolved from CPL, Martin Richards [https://www.cl.cam.ac.uk/~mr10/cpl2bcpl.pdf]
* [https://www.bell-labs.com/usr/dmr/www/chist.html Ritchie's ''The Development of the C Language''] has commentary about BCPL's influence on C
* [https://www.bell-labs.com/usr/dmr/www/chist.html Ritchie's ''The Development of the C Language''] has commentary about बीसीपीएल's influence on C
* [https://www.cl.cam.ac.uk/~mr10/bcplman.pdf The BCPL Cintsys and Cintpos User Guide]
* [https://www.cl.cam.ac.uk/~mr10/bcplman.pdf The बीसीपीएल Cintsys and Cintpos User Guide]


{{Authority control}}
{{Authority control}}


{{DEFAULTSORT:Bcpl}}[[Category: यूनाइटेड किंगडम में कंप्यूटिंग का इतिहास]] [[Category: प्रक्रियात्मक प्रोग्रामिंग भाषाएँ]] [[Category: 1967 में बनाई गई प्रोग्रामिंग लैंग्वेज]] [[Category: संरचित प्रोग्रामिंग भाषाएँ]] [[Category: सिस्टम प्रोग्रामिंग भाषाएं]] [[Category: कैम्ब्रिज कंप्यूटर प्रयोगशाला विश्वविद्यालय]]
{{DEFAULTSORT:Bcpl}}
 
 


[[Category: Machine Translated Page]]
[[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; 57 years ago (1967)[1]
टाइपिंग अनुशासनटाइपलेस (सब कुछ एक वर्ड है)
Influenced by
सीपीएल
Influenced
B, C, Go[2]

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

रचना

बीसीपीएल को रचित किया गया था ताकि इसके लिए छोटे और सरल संकलक लिखे जा सकें; प्रतिष्ठित रूप से कुछ संकलक 16 किलोबाइट में चलाए जा सकते हैं। इसके अलावा, बीसीपीएल में लिखा गया मूल संकलक सरलता से ले जाने योग्य था। इस प्रकार बीसीपीएल बूटस्ट्रैपिंग (संकलक) प्रणाली के लिए एक लोकप्रिय विकल्प था।[citation needed] संकलक की सुवाह्यता का एक प्रमुख कारण इसकी संरचना में निहित है। इसे दो भागों में विभाजित किया गया था: अग्रसिरे ने स्रोत को पार्स किया और एक मध्यवर्ती भाषा ओ-कोड उत्पन्न किया। पश्चसिरे ने ओ-कोड लिया और लक्ष्य मशीन के लिए मशीन कोड में इसका अनुवाद किया। केवल 15 एक नई मशीन का समर्थन करने के लिए संकलक के कोड को फिर से लिखने की आवश्यकता होती है, एक कार्य जो सामान्यत: 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. 1.0 1.1 1.2 "मार्टिन रिचर्ड्स (2003 कंप्यूटर पायनियर अवार्ड)". IEEE Computer Society. Archived from the original on 24 November 2017. Retrieved 24 November 2017.
  2. Pike, Rob (24 April 2014). "Hello Gophers". Retrieved 11 March 2016.
  3. https://www.cl.cam.ac.uk/~mr10/bcplman.pdf The BCPL Cintsys and Cintpos User Guide, 2.1.4 Section brackets
  4. Richards, Martin; Whitby-Strevens, Colin (1980). BCPL: The Language and its Compiler. Cambridge University Press. p. 5. ISBN 978-0521785433.
  5. BCPL, Jargon File
  6. "Reuters technical development: Glossary - THE BARON". www.thebaron.info.
  7. 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)
  8. History of C++ Retrieved 12 December 2017


अग्रिम पठन


बाहरी संबंध