TRAC (प्रोग्रामिंग भाषा): Difference between revisions

From Vigyanwiki
Line 20: Line 20:
टीआरएसी विशुद्ध रूप से टेक्स्ट-आधारित भाषा है - एक प्रकार का सामान्य-उद्देश्य मैक्रो प्रोसेसर। उस समय की पारंपरिक तदर्थ मैक्रो भाषाओं के विपरीत, जैसे कि असेंबलरों में पाई जाने वाली, टीआरएसी सुनियोजित, सुसंगत और कई अर्थों में पूर्ण है। इसमें स्पष्ट इनपुट और आउटपुट ऑपरेटर हैं, जो सबसे बाहरी मैक्रो स्तर पर विशिष्ट निहित I/O के विपरीत है, जो इसे एक साथ सरल और पुरानी मैक्रो भाषाओं की तुलना में अधिक बहुमुखी बनाता है।
टीआरएसी विशुद्ध रूप से टेक्स्ट-आधारित भाषा है - एक प्रकार का सामान्य-उद्देश्य मैक्रो प्रोसेसर। उस समय की पारंपरिक तदर्थ मैक्रो भाषाओं के विपरीत, जैसे कि असेंबलरों में पाई जाने वाली, टीआरएसी सुनियोजित, सुसंगत और कई अर्थों में पूर्ण है। इसमें स्पष्ट इनपुट और आउटपुट ऑपरेटर हैं, जो सबसे बाहरी मैक्रो स्तर पर विशिष्ट निहित I/O के विपरीत है, जो इसे एक साथ सरल और पुरानी मैक्रो भाषाओं की तुलना में अधिक बहुमुखी बनाता है।


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


टीआरएसी एक टेक्स्ट-प्रोसेसिंग भाषा है,<ref>
टीआरएसी एक टेक्स्ट-प्रोसेसिंग भाषा है,<ref>
Line 34: Line 34:
स्ट्रिंग्स के रूप में स्ट्रिंग्स पर जोर इतना मजबूत है कि टीआरएसी भाषा के स्वयं के वाक्यात्मक वर्णों को या तो उनकी वाक्यात्मक भूमिकाओं में या किसी अन्य वर्ण की तरह संभालने के लिए तंत्र प्रदान करता है, और [[स्व-संशोधित कोड]] में  विशेष गुण होने की तुलना में विशिष्ट टीआरएसी प्रोग्रामिंग तकनीकों के स्वाभाविक परिणाम का अधिक अनुभव होता है।
स्ट्रिंग्स के रूप में स्ट्रिंग्स पर जोर इतना मजबूत है कि टीआरएसी भाषा के स्वयं के वाक्यात्मक वर्णों को या तो उनकी वाक्यात्मक भूमिकाओं में या किसी अन्य वर्ण की तरह संभालने के लिए तंत्र प्रदान करता है, और [[स्व-संशोधित कोड]] में  विशेष गुण होने की तुलना में विशिष्ट टीआरएसी प्रोग्रामिंग तकनीकों के स्वाभाविक परिणाम का अधिक अनुभव होता है।


टीआरएसी, [[एपीएल प्रोग्रामिंग भाषा]] या [[LISP|लिस्प]] की तरह है, एक [[ अभिव्यक्ति अभिविन्यास |अभिव्यक्ति अभिविन्यास]] भाषा (अधिक विशिष्ट [[प्रक्रिया अभिविन्यास]] भाषाओं के विपरीत), लेकिन एपीएल के विपरीत, इसमें ऑपरेटरों की पूरी तरह से कमी है। ज्यादातर स्थितियों में, यह शुद्ध [[कार्यात्मक प्रोग्रामिंग]] का मामला है।
टीआरएसी, [[एपीएल प्रोग्रामिंग भाषा]] या [[LISP|लिस्प]] की तरह है, एक [[ अभिव्यक्ति अभिविन्यास |अभिव्यक्ति अभिविन्यास]] भाषा (अधिक विशिष्ट [[प्रक्रिया अभिविन्यास]] भाषाओं के विपरीत), लेकिन एपीएल के विपरीत, इसमें संचालको की पूरी तरह से कमी है। ज्यादातर स्थितियों में, यह शुद्ध [[कार्यात्मक प्रोग्रामिंग]] का मामला है।


टीआरएसी [[ समलैंगिक |होमोइकोनिक]] है।<ref name="trac_paper">
टीआरएसी [[ समलैंगिक |होमोइकोनिक]] है।<ref name="trac_paper">
Line 45: Line 45:
</ref>
</ref>


टीआरएसी में एलआईएसपी के साथ सामान्यतः एक सिंटैक्स होता है जिसमें सामान्यतः नेस्टेड कोष्ठक के कई स्तरों की उपस्थिति सम्मलित होती है।
टीआरएसी में एलआईएसपी के साथ सामान्यतः एक वाक्य - विन्यास होता है जिसमें सामान्यतः नेस्टेड कोष्ठक के कई स्तरों की उपस्थिति सम्मलित होती है।


टीआरएसी के लिए मुख्य प्रेरणा [[डगलस मैक्लॉयय]] के तीन शोधपत्रों से मिली।<ref name="trac_paper" /><ref>[[Douglas McIlroy|McIlroy, M.D.]], Macro Instruction Extensions of Compiler Languages. CACM 3, No. 4 (1960), 214–220.</ref><ref>Eastwood, D.E. and McIlroy, M.D., Macro Compiler Modification of SAP. Bell Telephone Laboratories Computation Center, 1959.</ref><ref>McIlroy, M.D., Using SAP Macro Instructions to Manipulate Symbolic Expressions. Bell Telephone Laboratories Computation Center (1960)</ref>
टीआरएसी के लिए मुख्य प्रेरणा [[डगलस मैक्लॉयय]] के तीन शोधपत्रों से मिली।<ref name="trac_paper" /><ref>[[Douglas McIlroy|McIlroy, M.D.]], Macro Instruction Extensions of Compiler Languages. CACM 3, No. 4 (1960), 214–220.</ref><ref>Eastwood, D.E. and McIlroy, M.D., Macro Compiler Modification of SAP. Bell Telephone Laboratories Computation Center, 1959.</ref><ref>McIlroy, M.D., Using SAP Macro Instructions to Manipulate Symbolic Expressions. Bell Telephone Laboratories Computation Center (1960)</ref>

Revision as of 09:53, 22 May 2023

TRAC
Paradigmgeneral-purpose macro processor
द्वारा डिज़ाइन किया गयाCalvin Mooers
पहली प्रस्तुति1964
Influenced by
Macro SAP[1]
Influenced
SAM76, ML/I[1]

टीआरएसी (टेक्स्ट रेकनिंग एंड कंपाइलिंग के लिए) भाषा एक प्रोग्रामिंग भाषा है जिसे 1959-1964 के बीच केल्विन मूर्स द्वारा विकसित किया गया था और पहली बार 1964 में एल पीटर ड्यूश द्वारा पीडीपी-1 पर लागू किया गया था।[2] यह कंप्यूटर लिब में टेड नेल्सन द्वारा सुझाई गई तीन "पहली भाषाओं" में से एक थी। टीआरएसी टी64 का उपयोग कम से कम 1984 तक किया गया था, जब मूर्स ने इसे टीआरएसी टी84 में अपडेट किया था।[2]

भाषा विवरण

टीआरएसी विशुद्ध रूप से टेक्स्ट-आधारित भाषा है - एक प्रकार का सामान्य-उद्देश्य मैक्रो प्रोसेसर। उस समय की पारंपरिक तदर्थ मैक्रो भाषाओं के विपरीत, जैसे कि असेंबलरों में पाई जाने वाली, टीआरएसी सुनियोजित, सुसंगत और कई अर्थों में पूर्ण है। इसमें स्पष्ट इनपुट और आउटपुट ऑपरेटर हैं, जो सबसे बाहरी मैक्रो स्तर पर विशिष्ट निहित I/O के विपरीत है, जो इसे एक साथ सरल और पुरानी मैक्रो भाषाओं की तुलना में अधिक बहुमुखी बनाता है।

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

टीआरएसी एक टेक्स्ट-प्रोसेसिंग भाषा है,[3]जिसे स्ट्रिंग प्रोसेसिंग भाषा भी कहा जाता है।[4]

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

टीआरएसी, एपीएल प्रोग्रामिंग भाषा या लिस्प की तरह है, एक अभिव्यक्ति अभिविन्यास भाषा (अधिक विशिष्ट प्रक्रिया अभिविन्यास भाषाओं के विपरीत), लेकिन एपीएल के विपरीत, इसमें संचालको की पूरी तरह से कमी है। ज्यादातर स्थितियों में, यह शुद्ध कार्यात्मक प्रोग्रामिंग का मामला है।

टीआरएसी होमोइकोनिक है।Cite error: Closing </ref> missing for <ref> tag

टीआरएसी में एलआईएसपी के साथ सामान्यतः एक वाक्य - विन्यास होता है जिसमें सामान्यतः नेस्टेड कोष्ठक के कई स्तरों की उपस्थिति सम्मलित होती है।

टीआरएसी के लिए मुख्य प्रेरणा डगलस मैक्लॉयय के तीन शोधपत्रों से मिली।[5][6][7][8]

बौद्धिक संपदा

मूरर्स ने भाषा की परिभाषा पर अपना नियंत्रण बनाए रखने के प्रयास में टीआरएसी नाम का ट्रेडमार्क बनाया, जो उस समय एक असामान्य और अग्रणी कार्रवाई थी। एक बिंदु पर, उन्होंने डिजिटल उपकरण निगम के खिलाफ एक बौद्धिक संपदा उल्लंघन का मुकदमा दायर किया, यह आरोप लगाते हुए कि टीआरएसी व्याख्याता के साथ एक मिनी-कंप्यूटर देने के अनुबंध ने उनके अधिकारों का उल्लंघन किया। डॉ. डॉब के जर्नल का पहला अंक, पर्सनल कंप्यूटर क्षेत्र के प्रारंभी प्रकाशनों में से एक है, जिसमें मूर्स और उसकी कंप्यूटिंग भाषा के लिए लोगों पर आरोप लगाने की उसकी प्रचंडता के खिलाफ कटु संपादकीय है।"[9][10] इसके बाद से असंबद्ध सूचना प्रौद्योगिकी परियोजनाओं के लिए नाम का कई बार उपयोग किया गया है, जिसमें ट्रैक नामक एक उपस्थिता विवृत स्रोत सॉफ्टवेयर परियोजना प्रबंधन सिस्टम भी सम्मलित है।

प्रभाव और उपयोग

टीआरएसी को बाद में पीडीपी-8, पीडीपी-10 और पीडीपी-11 पर लागू किया गया।

टीआरएसी से प्रेरित विभिन्न भाषाएँ हैं। मूवर्स के साथ किसी भी परेशानी से बचने के लिए, उन्होंने प्रिमिटिव का नाम बदल दिया और विभिन्न मेटाचैकर का उपयोग किया। एसएएम76 के मामले में, क्लॉड कगन के अनुसार, प्रिमिटिव जोड़े गए थे, "क्योंकि टीआरएसी बेबी टॉक है"। मिंट के मामले में, एक परिष्कृत टेक्स्ट एडिटर मशीनरी तक पहुंच प्रदान करने के लिए प्रिमिटिव जोड़े गए थे।

  • टीआरएसी की एक कथित कमी पूर्ण व्यापकता की कमी थी: कुछ टीआरएसी प्रिमिटिव कार्य एक अशक्त (शून्य-वर्ण) तर्क और एक गैर-अस्तित्व (गैर-सीमांकित) के बीच अंतर के प्रति संवेदनशील होते हैं, लेकिन इसके अंतिम गैर-अशक्त तर्क से परे, एक उपयोगकर्ता परिभाषित फ़ंक्शन भेद नहीं कर सकता है। सैम76 एक टीआरएसी जैसी भाषा थी जिसने उस सीमा को समाप्त कर दिया।
  • रस नेल्सन ने MINT (MINT is Not टीआरएसी) नाम की एक Emacs एक्सटेंशन भाषा को लागू किया। इस भाषा का उपयोग फ्रीडॉस संपादक फ्रीएमएसीएस द्वारा किया जाता है।

टीआरएसी का उपयोग FTP सॉफ़्टवेयर द्वारा अपने पीसी/टीसीपी उत्पाद में मॉडेम डायलर स्क्रिप्टिंग भाषा के रूप में किया गया था।

टीआरएसी का उपयोग 'द लास्ट स्टारफाइटर' सहित फिल्मों के लिए डिजिटल प्रोडक्शंस क्रे रेंडरर पर फ्रंट एंड के रूप में भी किया गया था।

उदाहरण कार्यक्रम

फाइबोनैचि संख्याओं की गणना करने के लिए टीआरएसी टी84 स्क्रिप्ट:[11]

:(s,fibo,(
:(ei,<1>, 1, 0,(
:(ei,<1>, 2, 1,(
:(aa, :(ri,fibo,:(as, <1>,1)),:(ri,fibo,:(as, <1>,2)))
))
))
))`
:(mw,fibo)'

यह भी देखें

संदर्भ

  1. 1.0 1.1 "TRAC – A man-machine string manipulating language". HOPL: Online Historical Encyclopaedia of Programming Languages. Archived from the original on August 13, 2009.
  2. 2.0 2.1 "Coding Supply — Everything a Programmer Needs". Archived from the original on 2001-04-08.
  3. David Walden. "Macro Memories, 1964–2013". 2014.
  4. Carol Loeb Mir. "A Comparison of String Handling in Four Programming Languages". 1972.
  5. Cite error: Invalid <ref> tag; no text was provided for refs named trac_paper
  6. McIlroy, M.D., Macro Instruction Extensions of Compiler Languages. CACM 3, No. 4 (1960), 214–220.
  7. Eastwood, D.E. and McIlroy, M.D., Macro Compiler Modification of SAP. Bell Telephone Laboratories Computation Center, 1959.
  8. McIlroy, M.D., Using SAP Macro Instructions to Manipulate Symbolic Expressions. Bell Telephone Laboratories Computation Center (1960)
  9. Mooers, Calvin (22 June 1993). "केल्विन एन.मूअर्स और शार्लोट डी.मूअर्स के साथ मौखिक इतिहास साक्षात्कार". Charles Babbage Institute.
  10. "डॉ। डॉब्स जर्नल - वॉल्यूम 1". 1976.
  11. TRAC information page, at The History of Computing Project, with small code sample and photo of C. M. Mooers.

बाहरी संबंध