TRAC (प्रोग्रामिंग भाषा)

TRAC (टेक्स्ट रेकनिंग एंड कंपाइलिंग के लिए) लैंग्वेज एक प्रोग्रामिंग भाषा  है जिसे 1959-1964 के बीच केल्विन मूर्स द्वारा विकसित किया गया था और पहली बार 1964 में L. पीटर Deutsch द्वारा PDP-1 पर लागू किया गया था। यह कंप्यूटर लिब में टेड नेल्सन द्वारा सुझाई गई तीन पहली भाषाओं में से एक थी। TRAC T64 का उपयोग कम से कम 1984 तक किया गया था, जब Mooers ने इसे TRAC T84 में अपडेट किया था।

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

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

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

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

TRAC समलैंगिक  है।



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

टीआरएसी के लिए मुख्य प्रेरणा डगलस मैक्लॉयय द्वारा तीन पत्रों से आई थी।

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

प्रभाव और उपयोग
TRAC को बाद में PDP-8, PDP-10 और PDP-11 पर लागू किया गया।

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

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

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

उदाहरण कार्यक्रम
फाइबोनैचि संख्याओं की गणना करने के लिए TRAC T84 स्क्रिप्ट: <पूर्व>:(s,fibo,(
 * (ईआइ,<1>, 1, 0,(
 * (ईआई,<1>, 2, 1,(
 * (आ, :(री,फाइबो,:(as, <1>,1)),:(ri,fibo,:(as, <1>,2)))

)) )) ))`
 * (मेगावाट, Fibo)'

यह भी देखें

 * TTM (प्रोग्रामिंग लैंग्वेज), TRAC से प्रेरित टीटीएम (प्रोग्रामिंग भाषा)

बाहरी संबंध

 * The TRAC Foundation (Archived)
 * TRAC, a procedure-describing language for the reactive typewriter in the Communications of the ACM, Volume 9 Issue 3, March 1966.
 * Andrew Walker's TRAC Information page
 * TRAC entry in the HOPL Encyclopedia of Computer Languages
 * A TRAC implementation project on SourceForge.
 * Oral history interview with Calvin N. Mooers and Charlotte D. Mooers at the Charles Babbage Institute. Interview discusses information retrieval and programming language research from World War II through the early 1990s.