सिस्टम प्रोग्रामिंग भाषा

From Vigyanwiki
Revision as of 22:33, 22 March 2023 by alpha>Poonam Singh

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

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

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

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

सुविधाएँ

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

इतिहास

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

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

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

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

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

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

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

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

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

Language Originator Birth date Influenced by Used for
ESPOL Burroughs Corporation 1961 ALGOL 60 MCP
PL/I IBM, SHARE 1964 ALGOL, FORTRAN, some COBOL Multics
PL/S IBM 1960's PL/I OS/360
PL360 Niklaus Wirth 1968 ALGOL 60 ALGOL W
Pascal Niklaus Wirth 1970 ALGOL W Apollo Computer Aegis, Apple MacApp, UCSD p-System
BLISS Carnegie Mellon University 1970 ALGOL-PL/I[5] VMS (portions)
Language for Systems Development (LSD) R. Daniel Bergeron, et.al. (Brown University) 1971 PL/I
C Dennis Ritchie 1972 BCPL, B (programming language) Most operating system kernels, including Unix-like systems
NEWP Burroughs 1970’s ESPOL, ALGOL MCP
PL/8 IBM 1970's PL/I AIX
PL-6 Honeywell, Inc. 1970's PL/I CP-6
SYMPL CDC 1970's JOVIAL NOS subsystems, most compilers, FSE editor
C++ Bjarne Stroustrup 1979 C, Simula GUI applications (Qt, Windows, etc), games (Unreal Engine)
Ada Jean Ichbiah, S. Tucker Taft 1983 ALGOL 68, Pascal, C++, Eiffel
D Digital Mars 2001 C++
Nim Andreas Rumpf 2006 Python, Ada, Lisp, Oberon, C++, Modula-3, Object Pascal
Go Google 2009 Python, dislike of C++, some syntax from Pascal Docker, Podman
Rust Mozilla Research[6] 2010 C++, Haskell, Erlang, Ruby Servo, Redox OS
Swift Apple Inc. 2014 C, Objective-C, D, Rust macOS, iOS, watchOS, and tvOS app development [lower-alpha 1]
Zig Andrew Kelley 2016 C, C++, LLVM IR, Go, Rust


यह भी देखें

टिप्पणियाँ


संदर्भ

  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.


बाहरी संबंध