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

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

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

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

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

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

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

टीआरएसी होमोइकोनिक है।





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

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

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

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

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

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

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

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

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

यह भी देखें

 * टीटीएम (प्रोग्रामिंगभाषा), टीआरएसी से प्रेरित एक टीटीएम (प्रोग्रामिंग भाषा)है।

बाहरी संबंध

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