सिस्टम प्रोग्रामिंग भाषा: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Class of computer programming languages}} {{bots|deny=FrescoBot}} {{hatnote|For the HP language of the same name, see Systems Programming Language.}}{{...")
 
No edit summary
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Short description|Class of computer programming languages}}
{{Short description|Class of computer programming languages}}
{{bots|deny=FrescoBot}}
{{hatnote|For the HP language of the same name, see [[Systems Programming Language]].}}{{More citations needed|date=April 2022}}
एक सिस्टम [[प्रोग्रामिंग भाषा]] एक प्रोग्रामिंग भाषा है जिसका उपयोग [[सिस्टम प्रोग्रामिंग]] के लिए किया जाता है; ऐसी भाषाओं को [[सिस्टम सॉफ्ट्वेयर]] लिखने के लिए डिज़ाइन किया गया है, जिन्हें आमतौर पर एप्लिकेशन सॉफ़्टवेयर की तुलना में अलग-अलग विकास दृष्टिकोणों की आवश्यकता होती है। Edsger W. Dijkstra इन भाषाओं को मशीन उन्मुख उच्च क्रम भाषाओं, या मोहोल के रूप में संदर्भित करता है।<ref name="MOHLconfer">{{cite conference |editor-last=van der Poel |editor-first=W. L. |editor-last2=Maarssen |editor-first2=L. A. |title=मशीन उन्मुख उच्च स्तरीय भाषाएं|conference=IFIP Working Conference on Machine Oriented Higher Level Languages (MOHL) |publisher=International Federation for Information Processing |location=Trondheim, Norway |date=27–31 August 1973}} Proceedings published 1974.</ref>
सामान्य-उद्देश्य वाली प्रोग्रामिंग भाषाएं सामान्य विशेषताओं पर ध्यान केंद्रित करती हैं ताकि भाषा में लिखे गए कार्यक्रमों को विभिन्न प्लेटफार्मों पर समान कोड का उपयोग करने की अनुमति मिल सके। ऐसी भाषाओं के उदाहरणों में [[ALGOL]] और [[पास्कल (प्रोग्रामिंग भाषा)]] शामिल हैं। यह सामान्य गुणवत्ता आमतौर पर मशीन की आंतरिक कार्यप्रणाली तक सीधी पहुंच से इनकार करने की कीमत पर आती है, और इसका अक्सर प्रदर्शन पर नकारात्मक प्रभाव पड़ता है।


इसके विपरीत, सिस्टम भाषाओं को अनुकूलता के लिए डिज़ाइन नहीं किया गया है, बल्कि [[संरचित प्रोग्रामिंग]] जैसी उच्च-स्तरीय प्रोग्रामिंग अवधारणाएँ प्रदान करते हुए प्रदर्शन और अंतर्निहित हार्डवेयर तक आसानी से पहुँच के लिए डिज़ाइन किया गया है। उदाहरणों में [[सिस्टम प्रोग्रामिंग भाषा]] और [[कार्यकारी प्रणाली समस्या उन्मुख भाषा]] शामिल हैं, दोनों सिंटैक्स में ALGOL के समान हैं लेकिन अपने संबंधित प्लेटफॉर्म पर ट्यून किए गए हैं। अन्य क्रॉस-प्लेटफ़ॉर्म हैं लेकिन हार्डवेयर के करीब काम करने के लिए डिज़ाइन किए गए हैं, जैसे [[BLISS]], [[JOVIAL]] और [[BCPL]]
{{hatnote|इसी नाम की एचपी भाषा के लिए, [[सिस्टम प्रोग्रामिंग लैंग्वेज]] देखें।}}


कुछ भाषाएँ इन उपयोगों के बीच की खाई को पाटते हुए, सिस्टम और एप्लिकेशन डोमेन को फैलाती हैं। विहित उदाहरण [[सी (प्रोग्रामिंग भाषा)]] है, जो सिस्टम और एप्लिकेशन प्रोग्रामिंग दोनों के लिए व्यापक रूप से उपयोग किया जाता है। कुछ आधुनिक भाषाएँ भी ऐसा करती हैं जैसे रस्ट (प्रोग्रामिंग भाषा) और [[स्विफ्ट (प्रोग्रामिंग भाषा)]]
सिस्टम [[प्रोग्रामिंग भाषा]] ऐसी प्रोग्रामिंग भाषा है जिसका उपयोग [[सिस्टम प्रोग्रामिंग|सिस्टम प्रोग्राम]] करने के लिए किया जाता है, इस प्रकार की भाषाओं को [[सिस्टम सॉफ्ट्वेयर]] को उपयोग करने के लिए लिखने हेतु डिज़ाइन किया जाता है, जिन्हें सामान्यतः एप्लिकेशन सॉफ़्टवेयर की तुलना में अलग-अलग विकास दृष्टिकोणों की आवश्यकता होती है। एडजर डब्ल्यू डिज्कस्ट्रा इन भाषाओं को मशीन उन्मुख उच्च क्रम भाषाओं के रूप में संदर्भित करता है।<ref name="MOHLconfer">{{cite conference |editor-last=van der Poel |editor-first=W. L. |editor-last2=Maarssen |editor-first2=L. A. |title=मशीन उन्मुख उच्च स्तरीय भाषाएं|conference=IFIP Working Conference on Machine Oriented Higher Level Languages (MOHL) |publisher=International Federation for Information Processing |location=Trondheim, Norway |date=27–31 August 1973}} Proceedings published 1974.</ref>
 
सामान्य-उद्देश्य वाली प्रोग्रामिंग भाषाएं सामान्य विशेषताओं पर ध्यान केंद्रित करती हैं, जिससे कि भाषा में लिखे गए कार्यक्रमों को विभिन्न प्लेटफार्मों पर समान कोड का उपयोग करने की अनुमति मिल सकते हैं। ऐसी भाषाओं के उदाहरणों में [[ALGOL|ऐल्गॉल]] और [[पास्कल (प्रोग्रामिंग भाषा)]] सम्मिलित होती हैं। यह सामान्य गुणवत्ता सामान्यतः मशीन की आंतरिक कार्यप्रणाली तक सीधी पहुंच से ना प्राप्त करने की कीमत पर आती है, और इसका अधिकांशतः इसके प्रदर्शन पर ऋणात्मक प्रभाव पड़ता है।
 
इसके विपरीत, सिस्टम भाषाओं को अनुकूलता के लिए डिज़ाइन नहीं किया गया है, इसके कारण [[संरचित प्रोग्रामिंग]] जैसी उच्च-स्तरीय प्रोग्रामिंग अवधारणाएँ प्रदान करते हुए अच्छा प्रदर्शन करती हैं, और अंतर्निहित हार्डवेयर तक सरलता से पहुँचने के लिए डिज़ाइन की जाती हैं। इस प्रकार इसके उदाहरणों में [[सिस्टम प्रोग्रामिंग भाषा]] और [[कार्यकारी प्रणाली समस्या उन्मुख भाषा]] सम्मिलित हैं, जो दोनों सिंटैक्स में एल्गोल के समान हैं किन्तु अपने संबंधित प्लेटफॉर्म पर ट्यून किया जाता हैं। अन्य क्रॉस-प्लेटफ़ॉर्म हैं किन्तु हार्डवेयर के समीप कार्य करने के लिए डिज़ाइन किए गए हैं, जैसे [[BLISS|ब्लिस]], [[JOVIAL|जोवियल]] और [[BCPL|बीसीपीएल]] इत्यादि।
 
कुछ भाषाएँ इन उपयोगों के बीच के रिक्त स्थान को खत्म करते हुए सिस्टम और एप्लिकेशन डोमेन का प्रसार करता हैं। विहित उदाहरण मुख्यतः [[सी (प्रोग्रामिंग भाषा)]] के लिए है, जो सिस्टम और एप्लिकेशन प्रोग्रामिंग दोनों के लिए व्यापक रूप से उपयोग किया जाता है। कुछ आधुनिक भाषाएँ भी ऐसा करती हैं जैसे रस्ट (प्रोग्रामिंग भाषा) और [[स्विफ्ट (प्रोग्रामिंग भाषा)]] इत्यादि।


== सुविधाएँ ==
== सुविधाएँ ==
एप्लिकेशन भाषाओं के विपरीत, सिस्टम प्रोग्रामिंग भाषाएं आमतौर पर मशीन के भौतिक हार्डवेयर तक अधिक-सीधी पहुंच प्रदान करती हैं: इस अर्थ में एक आर्किटेपिकल सिस्टम प्रोग्रामिंग भाषा बीसीपीएल थी। सिस्टम प्रोग्रामिंग लैंग्वेज में अक्सर बिल्ट-इन इनपुट/आउटपुट (I/O) सुविधाओं की कमी होती है क्योंकि एक सिस्टम-सॉफ्टवेयर प्रोजेक्ट आमतौर पर अपने स्वयं के I/O तंत्र विकसित करता है या बुनियादी मॉनिटर I/O या स्क्रीन प्रबंधन सुविधाओं पर बनाता है। पीएल/आई, सी (प्रोग्रामिंग लैंग्वेज) और पास्कल (प्रोग्रामिंग लैंग्वेज) की व्यापक लोकप्रियता के साथ सिस्टम प्रोग्रामिंग और एप्लिकेशन प्रोग्रामिंग के लिए उपयोग की जाने वाली भाषाओं के बीच का अंतर समय के साथ धुंधला हो गया।
एप्लिकेशन भाषाओं के विपरीत, सिस्टम प्रोग्रामिंग भाषाएं सामान्यतः मशीन के भौतिक हार्डवेयर तक अधिक-सीधी पहुंच प्रदान करती हैं: इस अर्थ में एक आर्किटेपिकल सिस्टम प्रोग्रामिंग भाषा बीसीपीएल थी। सिस्टम प्रोग्रामिंग लैंग्वेज में अधिकांशतः बिल्ट-इन इनपुट/आउटपुट (I/O) सुविधाओं की कमी होती है क्योंकि एक सिस्टम-सॉफ्टवेयर प्रोजेक्ट सामान्यतः अपने स्वयं के I/O सिस्टम विकसित करता है या मौलिक मॉनिटर I/O या स्क्रीन प्रबंधन सुविधाओं पर बनाता है। पीएल/आई, सी (प्रोग्रामिंग लैंग्वेज) और पास्कल (प्रोग्रामिंग लैंग्वेज) की व्यापक लोकप्रियता के साथ सिस्टम प्रोग्रामिंग और एप्लिकेशन प्रोग्रामिंग के लिए उपयोग की जाने वाली भाषाओं के बीच का अंतर समय के साथ कम हो गया हैं।


== इतिहास ==
== इतिहास ==
शुरुआती सिस्टम सॉफ़्टवेयर मुख्य रूप से असेंबली भाषा में लिखा गया था क्योंकि इसका कोई विकल्प नहीं था, बल्कि ऑब्जेक्ट कोड की दक्षता, संकलन समय और डिबगिंग में आसानी सहित अन्य कारणों से भी लिखा गया था। [[फोरट्रान]] जैसी एप्लिकेशन भाषाओं का उपयोग सिस्टम प्रोग्रामिंग के लिए किया गया था, हालांकि उन्हें आमतौर पर असेंबली भाषा में लिखे जाने के लिए कुछ रूटीन की आवश्यकता होती है।<ref name=Sammet>{{cite journal |last=Sammet |first=Jean |title=सिस्टम कार्यान्वयन के लिए प्रयुक्त भाषाओं का संक्षिप्त सर्वेक्षण|journal=ACM SIGPLAN Notices |date=October 1971 |volume=6 |issue=9 |pages=1–19 |doi=10.1145/942596.807055|doi-access=free }}</ref>
प्रारंभिक सिस्टम सॉफ़्टवेयर मुख्य रूप से असेंबली भाषा में लिखा गया था क्योंकि इसका कोई विकल्प नहीं था, इसके अतिरिक्त ऑब्जेक्ट कोड की दक्षता, संकलन समय और डिबगिंग में सरलता सहित अन्य कारणों से भी लिखा गया था। [[फोरट्रान]] जैसी एप्लिकेशन भाषाओं का उपयोग सिस्टम प्रोग्रामिंग के लिए किया गया था, चूंकि उन्हें सामान्यतः असेंबली भाषा में लिखे जाने के लिए कुछ रूटीन की आवश्यकता होती है।<ref name=Sammet>{{cite journal |last=Sammet |first=Jean |title=सिस्टम कार्यान्वयन के लिए प्रयुक्त भाषाओं का संक्षिप्त सर्वेक्षण|journal=ACM SIGPLAN Notices |date=October 1971 |volume=6 |issue=9 |pages=1–19 |doi=10.1145/942596.807055|doi-access=free }}</ref>
 
 
=== मध्य स्तर की भाषाएं ===
=== मध्य स्तर की भाषाएं ===
मध्य-स्तरीय भाषाओं में उच्च स्तर की भाषा की अधिकांश वाक्य-विन्यास और सुविधाएं होती हैं, लेकिन मशीन सुविधाओं के लिए भाषा (साथ ही असेंबली भाषा प्रदान करने) में सीधी पहुंच भी प्रदान करती है।<ref name=Sammet />इनमें से सबसे पहले लगभग 1960 में बरोज़ मेनफ्रेम पर एक्जीक्यूटिव सिस्टम प्रॉब्लम ओरिएंटेड लैंग्वेज थी, इसके बाद [[निकोलस विर्थ]] का [[PL360]] (पहली बार एक [[क्रॉस कंपाइलर]] के रूप में बरोज़ सिस्टम पर लिखा गया था), जिसमें [[ALGOL 60]] का सामान्य सिंटैक्स था लेकिन जिनके बयान सीधे CPU रजिस्टरों में हेरफेर करते थे। और स्मृति। इस श्रेणी की अन्य भाषाओं में [[MOL-360]] और PL/S शामिल हैं।
मध्य-स्तरीय भाषाओं में उच्च स्तर की भाषा की अधिकांश वाक्य-विन्यास और सुविधाएं होती हैं, किन्तु मशीन सुविधाओं के लिए भाषा (साथ ही असेंबली भाषा प्रदान करने) में सीधी पहुंच भी प्रदान करती है।<ref name=Sammet /> इनमें से सबसे पहले लगभग 1960 में बरोज़ मेनफ्रेम पर एक्जीक्यूटिव सिस्टम प्रॉब्लम ओरिएंटेड भाषा थी, इसके पश्चात [[निकोलस विर्थ]] का [[PL360|पीएल360]] (पहली बार एक [[क्रॉस कंपाइलर]] के रूप में बरोज़ सिस्टम पर लिखा गया था), जिसमें [[ALGOL 60|एल्गोल 60]] का सामान्य सिंटैक्स था किन्तु जिनके कथन सीधे सीपीयू रजिस्टरों और स्मृति में परिवर्तन करते थे। इस श्रेणी की अन्य भाषाओं में [[MOL-360|एमओएल-360]] और पीएल/एस सम्मिलित हैं।
 
एक उदाहरण के रूप में, एक विशिष्ट PL360 कथन है <code>R9 := R8 and R7 shll 8 or R6</code>, यह दर्शाता है कि रजिस्टर 8 और 7 को एक साथ होना चाहिए, परिणाम 8 बिट्स को स्थानांतरित कर दिया गया है, इसका परिणाम रजिस्टर 6 की सामग्री के साथ है, और अंतिम परिणाम रजिस्टर 9 में रखा गया है।<ref>{{Cite journal |last=Wirth |first=Niklaus |author-link=Niklaus Wirth |title=PL360, A Programming Language for the 360 Computers |journal=Journal of the ACM |volume=15 |issue=1 |pages=37–74}}</ref>
 


उदाहरण के रूप में, विशिष्ट पीएल360 का कथन  <code>R9 := R8 and R7 shll 8 or R6</code>है जो यह दर्शाता है कि रजिस्टर 8 और 7 को एक साथ होना चाहिए, इसके परिणामस्वरूप 8 बिट्स को स्थानांतरित कर दिया गया है, इसका परिणाम रजिस्टर 6 की सामग्री के साथ है, और अंतिम परिणाम रजिस्टर 9 में रखा जाता है।<ref>{{Cite journal |last=Wirth |first=Niklaus |author-link=Niklaus Wirth |title=PL360, A Programming Language for the 360 Computers |journal=Journal of the ACM |volume=15 |issue=1 |pages=37–74}}</ref>
=== उच्च स्तरीय भाषाएं ===
=== उच्च स्तरीय भाषाएं ===
जबकि PL360 असेंबली लैंग्वेज के सिमेंटिक स्तर पर है, एक अन्य प्रकार की सिस्टम प्रोग्रामिंग लैंग्वेज उच्च सिमेंटिक लेवल पर काम करती है, लेकिन सिस्टम प्रोग्रामिंग के लिए भाषा को उपयुक्त बनाने के लिए विशिष्ट एक्सटेंशन डिज़ाइन किए गए हैं। इस तरह की भाषा का एक प्रारंभिक उदाहरण LRLTRAN है,<ref>{{Cite journal |last=Mendicino |first=Sam F. |last2=Hughes |first2=Robert A. |last3=Martin |first3=Jeanne T. |last4=McMahon |first4=Frank H. |last5=Ranelletti |first5=John E. |last6=Zwakenberg |first6=Richard G. |title=एलआरएलटीआरएन कंपाइलर|journal=Communications of the ACM |volume=11 |issue=11 |pages=747–755}}</ref> जिसने फोरट्रान को चरित्र और बिट मैनिपुलेशन, पॉइंटर्स, और सीधे संबोधित जंप टेबल के लिए सुविधाओं के साथ विस्तारित किया।
जबकि पीएल360 असेंबली लैंग्वेज के सिमेंटिक स्तर पर है, इसलिए अन्य प्रकार की सिस्टम प्रोग्रामिंग लैंग्वेज उच्च सिमेंटिक लेवल पर कार्य करती है, किन्तु सिस्टम प्रोग्रामिंग के लिए भाषा को उपयुक्त बनाने के लिए विशिष्ट एक्सटेंशन डिज़ाइन किए गए हैं। इस प्रकार की भाषा का प्रारंभिक उदाहरण एलआरएलट्रैन है,<ref>{{Cite journal |last=Mendicino |first=Sam F. |last2=Hughes |first2=Robert A. |last3=Martin |first3=Jeanne T. |last4=McMahon |first4=Frank H. |last5=Ranelletti |first5=John E. |last6=Zwakenberg |first6=Richard G. |title=एलआरएलटीआरएन कंपाइलर|journal=Communications of the ACM |volume=11 |issue=11 |pages=747–755}}</ref> जिसने फोरट्रान को चरित्र और बिट मैनिपुलेशन, पॉइंटर्स, और सीधे संबोधित जंप टेबल के लिए सुविधाओं के साथ विस्तारित की हैं।


इसके बाद, सी जैसी भाषाएं विकसित की गईं, जहां सुविधाओं का संयोजन सिस्टम सॉफ्टवेयर लिखने के लिए पर्याप्त था, और एक [[ संकलक ]] विकसित किया जा सकता था जो मामूली हार्डवेयर पर कुशल ऑब्जेक्ट प्रोग्राम उत्पन्न करता था। ऐसी भाषा आम तौर पर उन विशेषताओं को छोड़ देती है जिन्हें कुशलतापूर्वक लागू नहीं किया जा सकता है, और विशिष्ट हार्डवेयर क्षमताओं तक पहुँचने के लिए आवश्यक मशीन-निर्भर सुविधाओं की एक छोटी संख्या जोड़ती है; [[इनलाइन असेंबली]] कोड, जैसे सी {{code|lang=c|asm}} बयान, अक्सर इस प्रयोजन के लिए प्रयोग किया जाता है। हालाँकि ऐसी कई भाषाएँ विकसित की गईं,<ref name="MOHLconfer"/>सी और [[सी ++]] बच गए हैं।
इसके बाद, सी जैसी भाषाएं विकसित की गईं, जहां सुविधाओं का संयोजन सिस्टम सॉफ्टवेयर लिखने के लिए पर्याप्त था, और [[ संकलक |संकलक]] विकसित किया जा सकता था जो सरल से हार्डवेयर पर कुशल ऑब्जेक्ट प्रोग्राम उत्पन्न करता था। ऐसी भाषा सामान्यतः उन विशेषताओं को छोड़ देती है जिन्हें कुशलतापूर्वक लागू नहीं किया जा सकता है, और विशिष्ट हार्डवेयर क्षमताओं तक पहुँचने के लिए आवश्यक मशीन-निर्भर सुविधाओं की छोटी संख्या जोड़ती है; [[इनलाइन असेंबली]] कोड, जैसे सी {{code|lang=c|asm}} कथन, अधिकांशतः इस प्रयोजन के लिए प्रयोग किया जाता है। चूंकि ऐसी कई भाषाएँ विकसित की गईं,<ref name="MOHLconfer"/> जिसके कारण सी और [[सी ++]] सुरक्षित की गई हैं।


[[ सिस्टम प्रोग्रामिंग भाषा ]] (SPL) भी [[HP 3000]] कंप्यूटर श्रृंखला पर एक विशिष्ट भाषा का नाम है, जिसका उपयोग इसके ऑपरेटिंग सिस्टम [[एचपी मल्टी-प्रोग्रामिंग एक्जीक्यूटिव]] (MPE) और इसके सिस्टम सॉफ्टवेयर के अन्य भागों के लिए किया जाता है।
[[ सिस्टम प्रोग्रामिंग भाषा |सिस्टम प्रोग्रामिंग भाषा]] (एसपीएल) भी [[HP 3000|एचपी 3000]] कंप्यूटर श्रृंखला पर विशिष्ट भाषा का नाम है, जिसका उपयोग इसके ऑपरेटिंग सिस्टम [[एचपी मल्टी-प्रोग्रामिंग एक्जीक्यूटिव]] (MPE) और इसके सिस्टम सॉफ्टवेयर के अन्य भागों के लिए किया जाता है।


== प्रमुख भाषाएँ ==
== प्रमुख भाषाएँ ==
{| class="wikitable sortable collapsible"
{| class="wikitable sortable collapsible"
|-
|-
! Language !! Originator !! Birth date !! Influenced by !! Used for
! भाषा !! लेखक !! जन्म दिवस !! से प्रभावित !! के लिए उपयोग होता है
|-
|-
| [[Executive Systems Problem Oriented Language|ESPOL]] || [[Burroughs Corporation]] || 1961 || [[ALGOL 60]] || [[MCP (Burroughs Large Systems)|MCP]]
| [[Executive Systems Problem Oriented Language|एस्पाॅल]] || [[Burroughs Corporation|बरोज़ कॉर्पोरेशन]] || 1961 || [[ALGOL 60|एल्गोल 60]] || [[MCP (Burroughs Large Systems)|एमसीपी]]
|-
|-
| [[PL/I]] || [[IBM]], [[SHARE (computing)|SHARE]] || 1964 || ALGOL, FORTRAN, some COBOL || [[Multics]]
| [[PL/I|पीएल/आई]] || आईबीएम, शेयर || 1964 || एल्गोल, फाॅर्ट्रैन, कोबोल || [[Multics|मॉलटिक्स]]
|-
|-
| [[PL/S]] || [[IBM]] || 1960's || [[PL/I]] || [[OS/360]]
| [[PL/S|पीएल/एस]] || [[IBM|आईबीएम]] || 1960's || [[PL/I|पीएल/I]] || [[OS/360]]
|-
|-
| [[PL360]] || [[Niklaus Wirth]] || 1968 || ALGOL 60 || [[ALGOL W]]
| [[PL360|पीएल360]] || [[Niklaus Wirth|निक्लैस बर्थ]] || 1968 || एल्गोल 60 || [[ALGOL W|एल्गोल W]]
|-
|-
| [[Pascal (programming language)|Pascal]] || [[Niklaus Wirth]] || 1970 || [[ALGOL W]] || [[Apollo Computer]] Aegis, Apple [[MacApp]], UCSD p-System
| [[Pascal (programming language)|पास्कल]] || [[Niklaus Wirth|निक्लैस बर्थ]] || 1970 || [[ALGOL W|एल्गोल W]] || अपोलो कंप्यूटर एजिस, एप्पल मैकऐप, यूसीएसडी पी-सिस्टम
|-
|-
| [[BLISS]] || [[Carnegie Mellon University]] || 1970 || ALGOL-PL/I<ref>{{cite journal |last=Wulf |first=W. A. |last2=Russell |first2=D. B. |last3=Haberman |first3=A. N. |title=BLISS: A Language for Systems Programming |journal=Communications of the ACM |date=December 1971 |volume=14 |issue=12 |pages=780–790 |doi=10.1145/362919.362936 |citeseerx=10.1.1.691.9765}}</ref> || [[OpenVMS|VMS]] (portions)
| [[BLISS|ब्लिस]] || [[Carnegie Mellon University|कैर्नेजी मेलोन विश्वविद्यालय]] || 1970 || एल्गोल-पीएल/I<ref>{{cite journal |last=Wulf |first=W. A. |last2=Russell |first2=D. B. |last3=Haberman |first3=A. N. |title=BLISS: A Language for Systems Programming |journal=Communications of the ACM |date=December 1971 |volume=14 |issue=12 |pages=780–790 |doi=10.1145/362919.362936 |citeseerx=10.1.1.691.9765}}</ref> || वीएमएस (भाग)
|-
|-
| [[Language for Systems Development]] (LSD) || R. Daniel Bergeron, et.al. (Brown University) || 1971 || [[PL/I]] ||  
| सिस्टम डेवलपमेंट के लिए भाषा (एलएसडी) || आर डैनियल बरोज एट एल ब्राउन विश्वविद्यालय || 1971 || [[PL/I|पीएल/I]] ||  
|-
|-
| [[C (programming language)|C]] || [[Dennis Ritchie]] || 1972 || [[BCPL]], [[B (programming language)]]  || Most [[Kernel (operating system)|operating system kernels]], including [[Unix-like]] systems
| सी || [[Dennis Ritchie]] || 1972 || [[BCPL|बीसीपीएल]], [[B (programming language)|बी (प्रोग्रामिंग भाषा)]]  || यूनिक्स जैसे सिस्टम सहित अधिकांश ऑपरेटिंग सिस्टम कर्नेल
|-
|-
| [[NEWP]] || Burroughs || 1970’s || ESPOL, ALGOL || MCP
| नयूपी || बरोज || 1970’s || एस्पाॅल, एल्गोल || MCP
|-
|-
| [[PL/8]] || [[IBM]] || 1970's || [[PL/I]] || [[IBM AIX|AIX]]
| [[PL/8|पीएल/8]] || आईबीएम || 1970's || [[PL/I|पीएल/I]] || [[IBM AIX|AIX]]
|-
|-
| [[PL-6]] || [[Honeywell, Inc.]] || 1970's || [[PL/I]] || [[Honeywell CP-6|CP-6]]
| [[PL-6|पीएल-6]] || [[Honeywell, Inc.|हनीवेल, इंक।]] || 1970's || [[PL/I|पीएल/I]] || [[Honeywell CP-6|CP-6]]
|-
|-
| [[SYMPL]] || [[Control Data Corporation|CDC]] || 1970's || [[JOVIAL]] || [[NOS (software)|NOS]] subsystems, most compilers, FSE editor
| [[SYMPL|सिंपल]] || सीडीसी || 1970's || [[JOVIAL|जोवियल]] || एनओएस सबसिस्टम, अधिकांश कंपाइलर, एफएसई संपादक
|-
|-
| [[C++]]
| [[C++]]
|[[Bjarne Stroustrup]] || 1979 || [[C (programming language)|C]], [[Simula]] || GUI applications ([[Qt (software)|Qt]], Windows, etc), games ([[Unreal Engine]])
|[[Bjarne Stroustrup|बज़्ने स्ट्रॉस्ट्रुप]] || 1979 || सी, सिमुला || जीयूआई अनुप्रयोग (क्यूटी, विंडोज, आदि), खेल (अवास्तविक इंजन)
|-
|-
| [[Ada (programming language)|Ada]] || [[Jean Ichbiah]], S. Tucker Taft || 1983 || [[ALGOL 68]], [[Pascal (programming language)|Pascal]], [[C++]], [[Eiffel (programming language)|Eiffel]] ||
| एडीए || जीन इचबिआह, एस. टकर टैफ्ट || 1983 || [[ALGOL 68|एल्गोल 68]], [[Pascal (programming language)|पास्कल]], [[C++]], [[Eiffel (programming language)|आइफेल]] ||
|-
|-
| [[D (programming language)|D]] || [[Digital Mars]] || 2001 || [[C++]] ||
| डी || [[Digital Mars|डिजिटल मार्स]] || 2001 || [[C++]] ||
|-
|-
| [[Nim (programming language)|Nim]] || Andreas Rumpf || 2006 || [[Python (programming language)|Python]], [[Ada (programming language)|Ada]], [[Lisp (programming language)|Lisp]], [[Oberon (programming language)|Oberon]], [[C++]], [[Modula-3]], [[Object Pascal]] ||
| निम || एंड्र्यू रम्फ || 2006 || [[Python (programming language)|पायथन]], एडीए , लिस्प, ओबेरॉन, सी++, मोडुला-3, ऑब्जेक्ट पास्कल ||
|-
|-
| [[Go (programming language)|Go]] || [[Google]] || 2009 || [[Python (programming language)|Python]], dislike of [[C++]], some syntax from [[Pascal (programming language)|Pascal]] || [[Docker_(software)|Docker]], [[Podman]]
| गो || [[Google|गूगल]] || 2009 || पायथन, सी ++ डिस्लाइक, पास्कल से कुछ वाक्यविन्यास || डोकर, पॉडमैन
|-
|-
| [[Rust (programming language)|Rust]] || [[Mozilla Research]]<ref>{{cite web |url=https://www.mozilla.org/en-US/research/ |title=Mozilla Research |date=1 January 2014}}</ref> || 2010 || [[C++]], [[Haskell (programming language)|Haskell]], [[Erlang (programming language)|Erlang]], [[Ruby (programming language)|Ruby]] || [[Servo (software)|Servo]], [[Redox OS]]
| रस्ट || [[Mozilla Research|मौजिला रिसर्च]]<ref>{{cite web |url=https://www.mozilla.org/en-US/research/ |title=Mozilla Research |date=1 January 2014}}</ref> || 2010 || सी ++, हास्केल, एरलांग, रूबी || सर्वो, रेडॉक्स ओएस
|-
|-
| [[Swift (programming language)|Swift]] || [[Apple Inc.]] || 2014 || [[C (programming language)|C]], [[Objective-C]], [[D (programming language)|D]], [[Rust (programming language)|Rust]] || [[macOS]], [[iOS]], [[watchOS]], and [[tvOS]] app development {{Efn|Swift uses [[Automatic Reference Counting]]}}
| स्विफ्ट || एप्पल इंक || 2014 || सी, ऑब्जेक्टिव-सी, डी, रस्ट || macOS, iOS, watchOS और TVOS बिल्कुल समान{{Efn|Swift uses [[Automatic Reference Counting]]}}
|-
|-
|[[Zig (programming language)|Zig]]
|जिग
|Andrew Kelley
|एंड्रयू कैली
|2016
|2016
|[[C (programming language)|C]], [[C++]], [[LLVM IR]], [[Go (programming language)|Go]], [[Rust (programming language)|Rust]]
|सी, सी ++, एलएलवीएम आईआर, गो, रस्ट
|
|
|}
|}
Line 98: Line 96:
* {{cite journal |title=PL/I as a Tool for System Programming |journal=Datamation |date=1969-05-06 |first=Fernando |last=Corbató |pages=68–76 |url=http://home.roadrunner.com/~pflass/PLI/plisprg.html |access-date=2012-01-23}}
* {{cite journal |title=PL/I as a Tool for System Programming |journal=Datamation |date=1969-05-06 |first=Fernando |last=Corbató |pages=68–76 |url=http://home.roadrunner.com/~pflass/PLI/plisprg.html |access-date=2012-01-23}}
* [http://www.tutorialsgenie.com/topic/system-programming/ System Programming Languages]
* [http://www.tutorialsgenie.com/topic/system-programming/ System Programming Languages]
[[Category: प्रोग्रामिंग भाषा विषय]] [[Category: सिस्टम सॉफ्ट्वेयर]] [[Category: सिस्टम प्रोग्रामिंग भाषाएं]]


[[Category: Machine Translated Page]]
[[Category:Created On 14/03/2023]]
[[Category:Created On 14/03/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Pages with empty portal template]]
[[Category:Pages with script errors]]
[[Category:Portal templates with redlinked portals]]
[[Category:Short description with empty Wikidata description]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:प्रोग्रामिंग भाषा विषय]]
[[Category:सिस्टम प्रोग्रामिंग भाषाएं]]
[[Category:सिस्टम सॉफ्ट्वेयर]]

Latest revision as of 11:19, 28 March 2023

सिस्टम प्रोग्रामिंग भाषा ऐसी प्रोग्रामिंग भाषा है जिसका उपयोग सिस्टम प्रोग्राम करने के लिए किया जाता है, इस प्रकार की भाषाओं को सिस्टम सॉफ्ट्वेयर को उपयोग करने के लिए लिखने हेतु डिज़ाइन किया जाता है, जिन्हें सामान्यतः एप्लिकेशन सॉफ़्टवेयर की तुलना में अलग-अलग विकास दृष्टिकोणों की आवश्यकता होती है। एडजर डब्ल्यू डिज्कस्ट्रा इन भाषाओं को मशीन उन्मुख उच्च क्रम भाषाओं के रूप में संदर्भित करता है।[1]

सामान्य-उद्देश्य वाली प्रोग्रामिंग भाषाएं सामान्य विशेषताओं पर ध्यान केंद्रित करती हैं, जिससे कि भाषा में लिखे गए कार्यक्रमों को विभिन्न प्लेटफार्मों पर समान कोड का उपयोग करने की अनुमति मिल सकते हैं। ऐसी भाषाओं के उदाहरणों में ऐल्गॉल और पास्कल (प्रोग्रामिंग भाषा) सम्मिलित होती हैं। यह सामान्य गुणवत्ता सामान्यतः मशीन की आंतरिक कार्यप्रणाली तक सीधी पहुंच से ना प्राप्त करने की कीमत पर आती है, और इसका अधिकांशतः इसके प्रदर्शन पर ऋणात्मक प्रभाव पड़ता है।

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

कुछ भाषाएँ इन उपयोगों के बीच के रिक्त स्थान को खत्म करते हुए सिस्टम और एप्लिकेशन डोमेन का प्रसार करता हैं। विहित उदाहरण मुख्यतः सी (प्रोग्रामिंग भाषा) के लिए है, जो सिस्टम और एप्लिकेशन प्रोग्रामिंग दोनों के लिए व्यापक रूप से उपयोग किया जाता है। कुछ आधुनिक भाषाएँ भी ऐसा करती हैं जैसे रस्ट (प्रोग्रामिंग भाषा) और स्विफ्ट (प्रोग्रामिंग भाषा) इत्यादि।

सुविधाएँ

एप्लिकेशन भाषाओं के विपरीत, सिस्टम प्रोग्रामिंग भाषाएं सामान्यतः मशीन के भौतिक हार्डवेयर तक अधिक-सीधी पहुंच प्रदान करती हैं: इस अर्थ में एक आर्किटेपिकल सिस्टम प्रोग्रामिंग भाषा बीसीपीएल थी। सिस्टम प्रोग्रामिंग लैंग्वेज में अधिकांशतः बिल्ट-इन इनपुट/आउटपुट (I/O) सुविधाओं की कमी होती है क्योंकि एक सिस्टम-सॉफ्टवेयर प्रोजेक्ट सामान्यतः अपने स्वयं के I/O सिस्टम विकसित करता है या मौलिक मॉनिटर I/O या स्क्रीन प्रबंधन सुविधाओं पर बनाता है। पीएल/आई, सी (प्रोग्रामिंग लैंग्वेज) और पास्कल (प्रोग्रामिंग लैंग्वेज) की व्यापक लोकप्रियता के साथ सिस्टम प्रोग्रामिंग और एप्लिकेशन प्रोग्रामिंग के लिए उपयोग की जाने वाली भाषाओं के बीच का अंतर समय के साथ कम हो गया हैं।

इतिहास

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

मध्य स्तर की भाषाएं

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

उदाहरण के रूप में, विशिष्ट पीएल360 का कथन R9 := R8 and R7 shll 8 or R6है जो यह दर्शाता है कि रजिस्टर 8 और 7 को एक साथ होना चाहिए, इसके परिणामस्वरूप 8 बिट्स को स्थानांतरित कर दिया गया है, इसका परिणाम रजिस्टर 6 की सामग्री के साथ है, और अंतिम परिणाम रजिस्टर 9 में रखा जाता है।[3]

उच्च स्तरीय भाषाएं

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

इसके बाद, सी जैसी भाषाएं विकसित की गईं, जहां सुविधाओं का संयोजन सिस्टम सॉफ्टवेयर लिखने के लिए पर्याप्त था, और संकलक विकसित किया जा सकता था जो सरल से हार्डवेयर पर कुशल ऑब्जेक्ट प्रोग्राम उत्पन्न करता था। ऐसी भाषा सामान्यतः उन विशेषताओं को छोड़ देती है जिन्हें कुशलतापूर्वक लागू नहीं किया जा सकता है, और विशिष्ट हार्डवेयर क्षमताओं तक पहुँचने के लिए आवश्यक मशीन-निर्भर सुविधाओं की छोटी संख्या जोड़ती है; इनलाइन असेंबली कोड, जैसे सी asm कथन, अधिकांशतः इस प्रयोजन के लिए प्रयोग किया जाता है। चूंकि ऐसी कई भाषाएँ विकसित की गईं,[1] जिसके कारण सी और सी ++ सुरक्षित की गई हैं।

सिस्टम प्रोग्रामिंग भाषा (एसपीएल) भी एचपी 3000 कंप्यूटर श्रृंखला पर विशिष्ट भाषा का नाम है, जिसका उपयोग इसके ऑपरेटिंग सिस्टम एचपी मल्टी-प्रोग्रामिंग एक्जीक्यूटिव (MPE) और इसके सिस्टम सॉफ्टवेयर के अन्य भागों के लिए किया जाता है।

प्रमुख भाषाएँ

भाषा लेखक जन्म दिवस से प्रभावित के लिए उपयोग होता है
एस्पाॅल बरोज़ कॉर्पोरेशन 1961 एल्गोल 60 एमसीपी
पीएल/आई आईबीएम, शेयर 1964 एल्गोल, फाॅर्ट्रैन, कोबोल मॉलटिक्स
पीएल/एस आईबीएम 1960's पीएल/I OS/360
पीएल360 निक्लैस बर्थ 1968 एल्गोल 60 एल्गोल W
पास्कल निक्लैस बर्थ 1970 एल्गोल W अपोलो कंप्यूटर एजिस, एप्पल मैकऐप, यूसीएसडी पी-सिस्टम
ब्लिस कैर्नेजी मेलोन विश्वविद्यालय 1970 एल्गोल-पीएल/I[5] वीएमएस (भाग)
सिस्टम डेवलपमेंट के लिए भाषा (एलएसडी) आर डैनियल बरोज एट एल ब्राउन विश्वविद्यालय 1971 पीएल/I
सी Dennis Ritchie 1972 बीसीपीएल, बी (प्रोग्रामिंग भाषा) यूनिक्स जैसे सिस्टम सहित अधिकांश ऑपरेटिंग सिस्टम कर्नेल
नयूपी बरोज 1970’s एस्पाॅल, एल्गोल MCP
पीएल/8 आईबीएम 1970's पीएल/I AIX
पीएल-6 हनीवेल, इंक। 1970's पीएल/I CP-6
सिंपल सीडीसी 1970's जोवियल एनओएस सबसिस्टम, अधिकांश कंपाइलर, एफएसई संपादक
C++ बज़्ने स्ट्रॉस्ट्रुप 1979 सी, सिमुला जीयूआई अनुप्रयोग (क्यूटी, विंडोज, आदि), खेल (अवास्तविक इंजन)
एडीए जीन इचबिआह, एस. टकर टैफ्ट 1983 एल्गोल 68, पास्कल, C++, आइफेल
डी डिजिटल मार्स 2001 C++
निम एंड्र्यू रम्फ 2006 पायथन, एडीए , लिस्प, ओबेरॉन, सी++, मोडुला-3, ऑब्जेक्ट पास्कल
गो गूगल 2009 पायथन, सी ++ डिस्लाइक, पास्कल से कुछ वाक्यविन्यास डोकर, पॉडमैन
रस्ट मौजिला रिसर्च[6] 2010 सी ++, हास्केल, एरलांग, रूबी सर्वो, रेडॉक्स ओएस
स्विफ्ट एप्पल इंक 2014 सी, ऑब्जेक्टिव-सी, डी, रस्ट macOS, iOS, watchOS और TVOS बिल्कुल समान[lower-alpha 1]
जिग एंड्रयू कैली 2016 सी, सी ++, एलएलवीएम आईआर, गो, रस्ट


यह भी देखें

टिप्पणियाँ


संदर्भ

  1. 1.0 1.1 van der Poel, W. L.; Maarssen, L. A., eds. (27–31 August 1973). मशीन उन्मुख उच्च स्तरीय भाषाएं. IFIP Working Conference on Machine Oriented Higher Level Languages (MOHL). Trondheim, Norway: International Federation for Information Processing. Proceedings published 1974.
  2. 2.0 2.1 Sammet, Jean (October 1971). "सिस्टम कार्यान्वयन के लिए प्रयुक्त भाषाओं का संक्षिप्त सर्वेक्षण". ACM SIGPLAN Notices. 6 (9): 1–19. doi:10.1145/942596.807055.
  3. Wirth, Niklaus. "PL360, A Programming Language for the 360 Computers". Journal of the ACM. 15 (1): 37–74.
  4. Mendicino, Sam F.; Hughes, Robert A.; Martin, Jeanne T.; McMahon, Frank H.; Ranelletti, John E.; Zwakenberg, Richard G. "एलआरएलटीआरएन कंपाइलर". Communications of the ACM. 11 (11): 747–755.
  5. Wulf, W. A.; Russell, D. B.; Haberman, A. N. (December 1971). "BLISS: A Language for Systems Programming". Communications of the ACM. 14 (12): 780–790. CiteSeerX 10.1.1.691.9765. doi:10.1145/362919.362936.
  6. "Mozilla Research". 1 January 2014.


बाहरी संबंध