टीईसीओ (टेक्स्ट एडिटर): Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 28: Line 28:
|url=https://books.google.com/books?isbn=1483221105  |isbn=978-1483221106 |date=2014
|url=https://books.google.com/books?isbn=1483221105  |isbn=978-1483221106 |date=2014
|last1=Bell  |first1=C. Gordon  |last2=Mudge  |first2=J. Craig
|last1=Bell  |first1=C. Gordon  |last2=Mudge  |first2=J. Craig
|last3=McNamara  |first3=John E. }}</ref><ref>The name on the cover of DEC's DEC-10-UTECA-A-D manual is "Introduction To TECO (Text Editor And Corrector)"</ref><ref name=PDP8>{{cite book  |title=PDP 8/e small computer handbook  |date=1970  |pages=2–30}}</ref> एक चरित्र-उन्मुख [[पाठ संपादक|टेक्स्ट संपादक]] और एक [[प्रोग्रामिंग भाषा]] दोनों है,<ref name=AnecD/><ref>citing Comm. of the ACM (see vol. 19, no. 12, 1976)</ref> जिसे 1962 में [[ डिजिटल उपकरण निगम ]] कंप्यूटरों पर उपयोग के लिए विकसित किया गया था, और तब से यह [[पीसी]] और [[यूनिक्स]] पर उपलब्ध हो गया है। डैनियल मर्फी (कंप्यूटर वैज्ञानिक) ने [[मैसाचुसेट्स की तकनीकी संस्था]] (एमआईटी) में एक छात्र के रूप में टीईसीओ विकसित किया था।<ref name=AnecD>{{cite journal |title= टीईसीओ की शुरुआत|first= Dan|last= Murphy |date= October–December 2009 |journal= IEEE Annals of the History of Computing |volume= 31 |number= 4  
|last3=McNamara  |first3=John E. }}</ref><ref>The name on the cover of DEC's DEC-10-UTECA-A-D manual is "Introduction To TECO (Text Editor And Corrector)"</ref><ref name=PDP8>{{cite book  |title=PDP 8/e small computer handbook  |date=1970  |pages=2–30}}</ref> एक चरित्र-उन्मुख [[पाठ संपादक|टेक्स्ट संपादक]] और एक [[प्रोग्रामिंग भाषा]] दोनों है,<ref name=AnecD/><ref>citing Comm. of the ACM (see vol. 19, no. 12, 1976)</ref> जिसे 1962 में [[ डिजिटल उपकरण निगम |डिजिटल उपकरण निगम]] कंप्यूटरों पर उपयोग के लिए विकसित किया गया था, और तब से यह [[पीसी]] और [[यूनिक्स]] पर उपलब्ध हो गया है। डैनियल मर्फी (कंप्यूटर वैज्ञानिक) ने [[मैसाचुसेट्स की तकनीकी संस्था]] (एमआईटी) में एक छात्र के रूप में टीईसीओ विकसित किया था।<ref name=AnecD>{{cite journal |title= टीईसीओ की शुरुआत|first= Dan|last= Murphy |date= October–December 2009 |journal= IEEE Annals of the History of Computing |volume= 31 |number= 4  
|url=http://tenex.opost.com/anhc-31-4-anec.pdf | doi = 10.1109/mahc.2009.127 |pages=110–115|s2cid= 18805607}}</ref>
|url=http://tenex.opost.com/anhc-31-4-anec.pdf | doi = 10.1109/mahc.2009.127 |pages=110–115|s2cid= 18805607}}</ref>


मर्फी के अनुसार, प्रारंभिक परिवर्णी शब्द ''टेप एडिटर और करेक्टर'' था क्योंकि हमारे पीडीपी-1 पर प्रोग्राम स्रोत के भंडारण के लिए [[ कागज का टेप | कागज का टेप]] ही एकमात्र माध्यम था। कोई हार्ड डिस्क, फ्लॉपी डिस्क, मैग्नेटिक टेप (मैग्टेप) या नेटवर्क नहीं था।<ref name="AnecD" /> जब तक टीईसीओ को सामान्य उपयोग के लिए उपलब्ध कराया गया, तब तक नाम टेक्स्ट एडिटर और करेक्टर बन चुका था,<ref name="PDP8" /> पीडीपी-1 संस्करण के बाद से भी तब तक अन्य मीडिया का समर्थन किया गया था।<ref name="AnecD" /> इसके बाद में इसे कई अन्य लोगों द्वारा संशोधित किया गया था<ref>{{cite web  |title=टेको|work=The Jargon File  |version=v.4.4.7   
मर्फी के अनुसार, प्रारंभिक परिवर्णी शब्द ''टेप एडिटर और करेक्टर'' था क्योंकि हमारे पीडीपी-1 पर प्रोग्राम स्रोत के भंडारण के लिए [[ कागज का टेप |कागज का टेप]] ही एकमात्र माध्यम था। कोई हार्ड डिस्क, फ्लॉपी डिस्क, मैग्नेटिक टेप (मैग्टेप) या नेटवर्क नहीं था।<ref name="AnecD" /> जब तक टीईसीओ को सामान्य उपयोग के लिए उपलब्ध कराया गया, तब तक नाम टेक्स्ट एडिटर और करेक्टर बन चुका था,<ref name="PDP8" /> पीडीपी-1 संस्करण के बाद से भी तब तक अन्य मीडिया का समर्थन किया गया था।<ref name="AnecD" /> इसके बाद में इसे कई अन्य लोगों द्वारा संशोधित किया गया था<ref>{{cite web  |title=टेको|work=The Jargon File  |version=v.4.4.7   
|publisher=[[ibiblio]]
|publisher=[[ibiblio]]
|url=http://www.catb.org/jargon/html/T/TECO.html}}</ref> और [[Emacs|एमएसीएस]] का प्रत्यक्ष पूर्वज है, जिसे मूल रूप से टीईसीओ मैक्रोज़ में प्रयुक्त किया गया था।<ref>{{cite web
|url=http://www.catb.org/jargon/html/T/TECO.html}}</ref> और [[Emacs|एमएसीएस]] का प्रत्यक्ष पूर्वज है, जिसे मूल रूप से टीईसीओ मैक्रोज़ में प्रयुक्त किया गया था।<ref>{{cite web
Line 43: Line 43:
  |url=https://books.google.com/books?isbn=1484217039  |isbn=978-1484217030
  |url=https://books.google.com/books?isbn=1484217039  |isbn=978-1484217030
  |author=Harley Hahn  |date=2016}}</ref>
  |author=Harley Hahn  |date=2016}}</ref>
== विवरण ==
== विवरण ==
टीईसीओ न केवल एक संपादक है चूँकि टेक्स्ट हेरफेर के लिए एक व्याख्या की गई प्रोग्रामिंग भाषा भी है। टेक्स्ट को खोजने और संशोधित करने के लिए इच्छानुसार कार्यक्रम (जिन्हें "मैक्रोज़" कहा जाता है) इसे महान शक्ति प्रदान करते हैं। चूँकि नियमित अभिव्यक्तियों के विपरीत, भाषा अनिवार्य थी, चूँकि कुछ संस्करणों में स्ट्रिंग खोज में "या" ऑपरेटर था।
टीईसीओ न केवल एक संपादक है चूँकि टेक्स्ट हेरफेर के लिए एक व्याख्या की गई प्रोग्रामिंग भाषा भी है। टेक्स्ट को खोजने और संशोधित करने के लिए इच्छानुसार कार्यक्रम (जिन्हें "मैक्रोज़" कहा जाता है) इसे महान शक्ति प्रदान करते हैं। चूँकि नियमित अभिव्यक्तियों के विपरीत, भाषा अनिवार्य थी, चूँकि कुछ संस्करणों में स्ट्रिंग खोज में "या" ऑपरेटर था।


टीईसीओ में वास्तव में [[ वाक्य - विन्यास ]] नहीं है; एक कार्यक्रम में प्रत्येक चरित्र एक अनिवार्य कमांड है, जो उसके संबंधित रूटीन को भेजा जाता है। वह दिनचर्या प्रोग्राम स्ट्रीम (स्ट्रिंग आर्ग्युमेंट्स का प्रभाव देते हुए) से आगे के पात्रों को पढ़ सकती है, प्रोग्राम काउंटर की स्थिति को बदल सकती है (नियंत्रण संरचनाओं का प्रभाव दे सकती है), या वैल्यू स्टैक पर मूल्यों को पुश कर सकती है (नेस्टेड कोष्ठकों का प्रभाव दे रही है) . किंतु किसी टिप्पणी के बीच में कूदने जैसे संचालन को रोकने के लिए कुछ भी नहीं है, क्योंकि कोई सिंटैक्स नहीं है और कोई पार्सिंग नहीं है।
टीईसीओ में वास्तव में [[ वाक्य - विन्यास |वाक्य - विन्यास]] नहीं है; एक कार्यक्रम में प्रत्येक चरित्र एक अनिवार्य कमांड है, जो उसके संबंधित रूटीन को भेजा जाता है। वह दिनचर्या प्रोग्राम स्ट्रीम (स्ट्रिंग आर्ग्युमेंट्स का प्रभाव देते हुए) से आगे के पात्रों को पढ़ सकती है, प्रोग्राम काउंटर की स्थिति को बदल सकती है (नियंत्रण संरचनाओं का प्रभाव दे सकती है), या वैल्यू स्टैक पर मूल्यों को पुश कर सकती है (नेस्टेड कोष्ठकों का प्रभाव दे रही है) . किंतु किसी टिप्पणी के बीच में कूदने जैसे संचालन को रोकने के लिए कुछ भी नहीं है, क्योंकि कोई सिंटैक्स नहीं है और कोई पार्सिंग नहीं है।


टीईसीओ [[ पत्र का मामला | केस]] और [[व्हाइटस्पेस चरित्र]] को अनदेखा करता है ([[टैब चरित्र]] को छोड़कर, जो एक इंसर्शन कमांड है)।<ref>{{cite web  
टीईसीओ [[ पत्र का मामला |केस]] और [[व्हाइटस्पेस चरित्र]] को अनदेखा करता है ([[टैब चरित्र]] को छोड़कर, जो एक इंसर्शन कमांड है)।<ref>{{cite web  
|quote=<tab>text$, Inserts specified text preceded by a tab.
|quote=<tab>text$, Inserts specified text preceded by a tab.
|url=http://www.avanthar.com/healyzh/teco/TecoPocketGuide.html
|url=http://www.avanthar.com/healyzh/teco/TecoPocketGuide.html
Line 69: Line 66:
|quote=What programming languages were supported on the PDP-8? ... TECO, the text editor, was included in the standard OS/8 distributions}}</ref> पीडीपी-6 और [[PDP-10|पीडीपी-10]] पर [[असंगत टाइमशेयरिंग सिस्टम]] (आईटीइस), और पीडीपी-10 पर [[TOPS-10|टॉप्स-10]] और [[TOPS-20|टॉप्स-20]]। टीईसीओ का एक संस्करण सभी डीईसी ऑपरेटिंग सिस्टम के साथ प्रदान किया गया था; [[RT11|आरटी11]] के लिए उपलब्ध संस्करण जीटी40 ग्राफिक्स डिस्प्ले को चलाने में सक्षम था जबकि आरएसटीएस/ई के लिए उपलब्ध संस्करण को बहु-उपयोगकर्ता [[रन-टाइम सिस्टम]] के रूप में प्रयुक्त किया गया था और इसे उपयोगकर्ता के पूर्ण ऑपरेटिंग वातावरण के रूप में उपयोग किया जा सकता था; उपयोगकर्ता को वास्तव में कभी भी टीईसीओ से बाहर नहीं निकलना पड़ा। वीटीईडीआईटी (वीडियो टर्मिनल एडिटर) टीईसीओ मैक्रो का उपयोग आमतौर पर आरएसटीएस/ई और [[VAX|वैक्स]] सिस्टम पर किया जाता था, जिसमें प्रत्यक्ष-कर्सर नियंत्रण (जैसे वीटी52 और वीटी100) में सक्षम टर्मिनल होते थे, जो समसामयिक रूप से विकसित एमएसीएस के फंक्शन में समान फुल-स्क्रीन विज़ुअल एडिटर प्रदान करते थे।
|quote=What programming languages were supported on the PDP-8? ... TECO, the text editor, was included in the standard OS/8 distributions}}</ref> पीडीपी-6 और [[PDP-10|पीडीपी-10]] पर [[असंगत टाइमशेयरिंग सिस्टम]] (आईटीइस), और पीडीपी-10 पर [[TOPS-10|टॉप्स-10]] और [[TOPS-20|टॉप्स-20]]। टीईसीओ का एक संस्करण सभी डीईसी ऑपरेटिंग सिस्टम के साथ प्रदान किया गया था; [[RT11|आरटी11]] के लिए उपलब्ध संस्करण जीटी40 ग्राफिक्स डिस्प्ले को चलाने में सक्षम था जबकि आरएसटीएस/ई के लिए उपलब्ध संस्करण को बहु-उपयोगकर्ता [[रन-टाइम सिस्टम]] के रूप में प्रयुक्त किया गया था और इसे उपयोगकर्ता के पूर्ण ऑपरेटिंग वातावरण के रूप में उपयोग किया जा सकता था; उपयोगकर्ता को वास्तव में कभी भी टीईसीओ से बाहर नहीं निकलना पड़ा। वीटीईडीआईटी (वीडियो टर्मिनल एडिटर) टीईसीओ मैक्रो का उपयोग आमतौर पर आरएसटीएस/ई और [[VAX|वैक्स]] सिस्टम पर किया जाता था, जिसमें प्रत्यक्ष-कर्सर नियंत्रण (जैसे वीटी52 और वीटी100) में सक्षम टर्मिनल होते थे, जो समसामयिक रूप से विकसित एमएसीएस के फंक्शन में समान फुल-स्क्रीन विज़ुअल एडिटर प्रदान करते थे।


टीईसीओ को वीएसआई द्वारा [[OpenVMS|ओपनवीएमएस]] में सम्मिलित किया जाना प्रसारित है, और इसे <code>EDIT/टीईसीओ</code> कमांड के साथ प्रयुक्त किया जाता है।<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DCL_DICT_VOL_I.pdf|website=vmssoftware.com|access-date=2020-09-13|date=April 2020|title=VSI OpenVMS DCL Dictionary: A-Z}}</ref>
टीईसीओ को वीएसआई द्वारा [[OpenVMS|ओपनवीएमएस]] में सम्मिलित किया जाना प्रसारित है, और इसे <code>EDIT/टीईसीओ</code> कमांड के साथ प्रयुक्त किया जाता है।<ref>{{cite web|url=https://vmssoftware.com/docs/VSI_DCL_DICT_VOL_I.pdf|website=vmssoftware.com|access-date=2020-09-13|date=April 2020|title=VSI OpenVMS DCL Dictionary: A-Z}}</ref>


पीडीपी-10 के लिए वितरित संस्करण डीईसी का वंशज [[एमएस-डॉस]]/[[ माइक्रोसॉफ़्ट विंडोज़ | माइक्रोसॉफ़्ट विंडोज़]] पर्यावरण के लिए कई आंशिक कार्यान्वयन के साथ-साथ अभी भी इंटरनेट पर उपलब्ध है।
पीडीपी-10 के लिए वितरित संस्करण डीईसी का वंशज [[एमएस-डॉस]]/[[ माइक्रोसॉफ़्ट विंडोज़ | माइक्रोसॉफ़्ट विंडोज़]] पर्यावरण के लिए कई आंशिक कार्यान्वयन के साथ-साथ अभी भी इंटरनेट पर उपलब्ध है।
Line 93: Line 90:
  |doi=10.1109/MAHC.2009.127
  |doi=10.1109/MAHC.2009.127
  |s2cid=18805607
  |s2cid=18805607
  }}</ref> इन मशीनों पर, सामान्य विकास प्रक्रिया में छिद्रित पेपर टेप की एक सतत पट्टी पर ऑफ़लाइन स्रोत कोड तैयार करने के लिए [[फ्रीडम फ्लेक्सोराइटर]] का उपयोग सम्मिलित था। बड़े [[आईबीएम मेनफ्रेम]] के प्रोग्रामर्स ने मुख्य पंचों का उपयोग करते हुए, [[छिद्रित कार्ड]] पर अपने स्रोत कोड को कस्टमाइज किया जाता है जो प्रत्येक कार्ड के शीर्ष पर मानव-पठनीय [[ डॉट मैट्रिक्स ]] वर्णों को उसी समय मुद्रित करते थे, जब वे प्रत्येक मशीन-पठनीय वर्ण [[कुंजी पंच]] करते थे। इस प्रकार आईबीएम प्रोग्रामर डेक में कार्डों को भौतिक रूप से जोड़कर कोड की पंक्तियों को पढ़, सम्मिलित, हटा और स्थानांतरित कर सकते हैं। छिद्रित पेपर टेप में ऐसी कोई सुविधा नहीं थी, जिससे ऑनलाइन संपादन का विकास हुआ।
  }}</ref> इन मशीनों पर, सामान्य विकास प्रक्रिया में छिद्रित पेपर टेप की एक सतत पट्टी पर ऑफ़लाइन स्रोत कोड तैयार करने के लिए [[फ्रीडम फ्लेक्सोराइटर]] का उपयोग सम्मिलित था। बड़े [[आईबीएम मेनफ्रेम]] के प्रोग्रामर्स ने मुख्य पंचों का उपयोग करते हुए, [[छिद्रित कार्ड]] पर अपने स्रोत कोड को कस्टमाइज किया जाता है जो प्रत्येक कार्ड के शीर्ष पर मानव-पठनीय [[ डॉट मैट्रिक्स |डॉट मैट्रिक्स]] वर्णों को उसी समय मुद्रित करते थे, जब वे प्रत्येक मशीन-पठनीय वर्ण [[कुंजी पंच]] करते थे। इस प्रकार आईबीएम प्रोग्रामर डेक में कार्डों को भौतिक रूप से जोड़कर कोड की पंक्तियों को पढ़, सम्मिलित, हटा और स्थानांतरित कर सकते हैं। छिद्रित पेपर टेप में ऐसी कोई सुविधा नहीं थी, जिससे ऑनलाइन संपादन का विकास हुआ।


पीडीपी-1 के प्रारंभिक संपादक का नाम "[[ महँगा टाइपराइटर |एक्सपेंसिव]] टाइपराइटर" था। स्टीफ़न डी. पाइनर द्वारा लिखित, यह सबसे अल्पविकसित कल्पनीय लाइन-उन्मुख संपादक था, जिसमें खोज-और-प्रतिस्थापन क्षमताओं का भी अभाव था। इसका नाम "कोलोसल टाइपराइटर" कहे जाने वाले पुराने, किंतु फूले हुए संपादक पर व्यंग्यपूर्ण प्रहार के रूप में चुना गया था। उन दिनों भी, ऑनलाइन संपादन डिबगिंग चक्र में समय बचा सकता था। पीडीपी-1 हैकर्स द्वारा लिखा गया एक अन्य प्रोग्राम इसी तरह से एक्सपेंसिव डेस्क कैलकुलेटर था।
पीडीपी-1 के प्रारंभिक संपादक का नाम "[[ महँगा टाइपराइटर |एक्सपेंसिव]] टाइपराइटर" था। स्टीफ़न डी. पाइनर द्वारा लिखित, यह सबसे अल्पविकसित कल्पनीय लाइन-उन्मुख संपादक था, जिसमें खोज-और-प्रतिस्थापन क्षमताओं का भी अभाव था। इसका नाम "कोलोसल टाइपराइटर" कहे जाने वाले पुराने, किंतु फूले हुए संपादक पर व्यंग्यपूर्ण प्रहार के रूप में चुना गया था। उन दिनों भी, ऑनलाइन संपादन डिबगिंग चक्र में समय बचा सकता था। पीडीपी-1 हैकर्स द्वारा लिखा गया एक अन्य प्रोग्राम इसी तरह से एक्सपेंसिव डेस्क कैलकुलेटर था।


टीईसीओ का मूल घोषित उद्देश्य पीडीपी-1 का अधिक कुशल उपयोग करना था। जैसा कि मैनुअल में कल्पना की गई है, [[सिस्टम कंसोल]] पर बैठकर बड़े मापदंड पर संपादन करने के अतिरिक्त , केवल दोषपूर्ण टेक्स्ट की जांच करेगा और टेक्स्ट पर किए जाने वाले संपादन कार्यों का वर्णन करते हुए एक सुधार टेप तैयार करेगा। कोई स्रोत टेप और सुधार टेप को इसकी उच्च-गति (200 वर्ण प्रति सेकंड) रीडर के माध्यम से पीडीपी-1 में दक्षतापूर्वक फीड करेगा। टीईसीओ चलाकर यह तुरंत एक संपादित टेप को अपनी उच्च गति (60 वर्ण प्रति सेकेंड) पंच के साथ पंच करेगा। ऑनलाइन संपादन में कोई समय व्यर्थ किए बिना, कोई तुरंत असेंबलर को लोड और चलाने के लिए आगे बढ़ सकता है।
टीईसीओ का मूल घोषित उद्देश्य पीडीपी-1 का अधिक कुशल उपयोग करना था। जैसा कि मैनुअल में कल्पना की गई है, [[सिस्टम कंसोल]] पर बैठकर बड़े मापदंड पर संपादन करने के अतिरिक्त , केवल दोषपूर्ण टेक्स्ट की जांच करेगा और टेक्स्ट पर किए जाने वाले संपादन कार्यों का वर्णन करते हुए एक सुधार टेप तैयार करेगा। कोई स्रोत टेप और सुधार टेप को इसकी उच्च-गति (200 वर्ण प्रति सेकंड) रीडर के माध्यम से पीडीपी-1 में दक्षतापूर्वक फीड करेगा। टीईसीओ चलाकर यह तुरंत एक संपादित टेप को अपनी उच्च गति (60 वर्ण प्रति सेकेंड) पंच के साथ पंच करेगा। ऑनलाइन संपादन में कोई समय व्यर्थ किए बिना, कोई तुरंत असेंबलर को लोड और चलाने के लिए आगे बढ़ सकता है।


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


सुधार टेप एक प्रोग्राम था, और किसी अन्य प्रोग्राम की तरह ही डिबगिंग की आवश्यकता थी। सरलतम वैश्विक खोज-और-प्रतिस्थापन के हानि भी जल्द ही स्पष्ट हो गए। व्यवहार में, टीईसीओ संपादन ऑनलाइन किया गया था जैसा कि एक्सपेंसिव टाइपराइटर के साथ किया गया था (चूँकि टीईसीओ निश्चित रूप से एक्सपेंसिव टाइपराइटर की तुलना में अधिक फीचर-पूर्ण संपादक था, इसलिए टीईसीओ के साथ संपादन अधिक कुशल था)। मूल पीडीपी-1 संस्करण में कोई स्क्रीन डिस्प्ले नहीं था। संपादन प्रक्रिया के समय टेक्स्ट की स्थिति का निरीक्षण करने का एकमात्र तरीका कमांड टाइप करना था जिससे कंसोल टाइपराइटर पर टेक्स्ट (या उसके भाग) को टाइप किया जा सके।
सुधार टेप एक प्रोग्राम था, और किसी अन्य प्रोग्राम की तरह ही डिबगिंग की आवश्यकता थी। सरलतम वैश्विक खोज-और-प्रतिस्थापन के हानि भी जल्द ही स्पष्ट हो गए। व्यवहार में, टीईसीओ संपादन ऑनलाइन किया गया था जैसा कि एक्सपेंसिव टाइपराइटर के साथ किया गया था (चूँकि टीईसीओ निश्चित रूप से एक्सपेंसिव टाइपराइटर की तुलना में अधिक फीचर-पूर्ण संपादक था, इसलिए टीईसीओ के साथ संपादन अधिक कुशल था)। मूल पीडीपी-1 संस्करण में कोई स्क्रीन डिस्प्ले नहीं था। संपादन प्रक्रिया के समय टेक्स्ट की स्थिति का निरीक्षण करने का एकमात्र तरीका कमांड टाइप करना था जिससे कंसोल टाइपराइटर पर टेक्स्ट (या उसके भाग) को टाइप किया जा सके।
Line 132: Line 129:
  |publisher=[[Computer Terminal Corporation]]
  |publisher=[[Computer Terminal Corporation]]
  |access-date=2009-10-27
  |access-date=2009-10-27
}}</ref> चूँकि टीईसीओ बफ़र कार्यान्वयन एकल वर्ण सम्मिलित करने या हटाने के कार्यों को संसाधित करने के लिए बहुत अक्षम था - संपादन में PDP-10 का 100% खर्च होता था। रिचर्ड ग्रीनब्लाट के समर्थन से, 1972 की गर्मियों में कार्ल ने टीईसीओ बफर स्टोरेज को फिर से प्रयुक्त किया और मैक्रोज़ को मूल PDP-10 कोड के रूप में सुधार किया। चूंकि वास्तविक समय मोड में प्रवेश {{keypress|cntl|R}} टाइप करके किया जाता था, इसे नियंत्रण के रूप में जाना जाता था- आर मोड. उसी समय, रिसी लिकनेत्स्की ने इनपुट-टाइम मैक्रोज़ ({{keypress|cntl|]}}) जोड़ा, जो निष्पादित होने के अतिरिक्त कमांड स्ट्रिंग को पढ़ने के रूप में संचालित होता था। रीड-टाइम मैक्रोज़ ने टीईसीओ सहायक टेक्स्ट बफ़र्स बनाए, जिन्हें क्यू-रजिस्टर कहा जाता है, अधिक उपयोगी। कार्ल ने क्यू-रजिस्टर नाम स्थान का विस्तार किया। रीड-टाइम मैक्रोज़, एक बड़े क्यू-रजिस्टर नाम स्थान और कुशल बफर संचालन के साथ, प्रत्येक कुंजी को मैक्रो में बाइंड करने के लिए चरण निर्धारित किया गया था। ये संपादन मैक्रोज़ एमएसीएस में विकसित हुए।<ref>
}}</ref> चूँकि टीईसीओ बफ़र कार्यान्वयन एकल वर्ण सम्मिलित करने या हटाने के कार्यों को संसाधित करने के लिए बहुत अक्षम था - संपादन में PDP-10 का 100% खर्च होता था। रिचर्ड ग्रीनब्लाट के समर्थन से, 1972 की गर्मियों में कार्ल ने टीईसीओ बफर स्टोरेज को फिर से प्रयुक्त किया और मैक्रोज़ को मूल PDP-10 कोड के रूप में सुधार किया। चूंकि वास्तविक समय मोड में प्रवेश {{keypress|cntl|R}} टाइप करके किया जाता था, इसे नियंत्रण के रूप में जाना जाता था- आर मोड. उसी समय, रिसी लिकनेत्स्की ने इनपुट-टाइम मैक्रोज़ ({{keypress|cntl|]}}) जोड़ा, जो निष्पादित होने के अतिरिक्त कमांड स्ट्रिंग को पढ़ने के रूप में संचालित होता था। रीड-टाइम मैक्रोज़ ने टीईसीओ सहायक टेक्स्ट बफ़र्स बनाए, जिन्हें क्यू-रजिस्टर कहा जाता है, अधिक उपयोगी। कार्ल ने क्यू-रजिस्टर नाम स्थान का विस्तार किया। रीड-टाइम मैक्रोज़, एक बड़े क्यू-रजिस्टर नाम स्थान और कुशल बफर संचालन के साथ, प्रत्येक कुंजी को मैक्रो में बाइंड करने के लिए चरण निर्धारित किया गया था। ये संपादन मैक्रोज़ एमएसीएस में विकसित हुए।<ref>
{{Cite web
{{Cite web
  |date      = January 1978
  |date      = January 1978
Line 154: Line 151:


==== ग्रामर के उपकरण के रूप में ====
==== ग्रामर के उपकरण के रूप में ====
[[पंच कार्ड युग में कंप्यूटर प्रोग्रामिंग]] के वर्षों के समय और उसके तुरंत बाद, ऐसे स्रोत कार्यक्रम थे जो पंच कार्ड-आधारित के रूप में प्रारंभ हुए थे। टिप्पणियां अधिकांशतः पंक्तियों की एक श्रृंखला होती थीं जिनमें एकल सीमांत तारक और शीर्ष/नीचे तारांकन की पूर्ण पंक्तियां सम्मिलित होती थीं। एक बार कार्डों को ऑनलाइन स्थानांतरित कर दिए जाने के बाद, सीमांत सितारों को पुनः प्राप्त करना एक काम था। बचाव के लिए टीईसीओ ...<ref name="WhyTeco">{{citation |title=Why Teco |author=Martin Pring |date=July 1982}}</ref><ref>He wrote this years after his colleague Carl B. Marbach became editor of a DEC-oriented periodical and wrote "Why Teco?". Both items were published together.</ref>
[[पंच कार्ड युग में कंप्यूटर प्रोग्रामिंग]] के वर्षों के समय और उसके तुरंत बाद, ऐसे स्रोत कार्यक्रम थे जो पंच कार्ड-आधारित के रूप में प्रारंभ हुए थे। टिप्पणियां अधिकांशतः पंक्तियों की एक श्रृंखला होती थीं जिनमें एकल सीमांत तारक और शीर्ष/नीचे तारांकन की पूर्ण पंक्तियां सम्मिलित होती थीं। एक बार कार्डों को ऑनलाइन स्थानांतरित कर दिए जाने के बाद, सीमांत सितारों को पुनः प्राप्त करना एक काम था। बचाव के लिए टीईसीओ ...<ref name="WhyTeco">{{citation |title=Why Teco |author=Martin Pring |date=July 1982}}</ref><ref>He wrote this years after his colleague Carl B. Marbach became editor of a DEC-oriented periodical and wrote "Why Teco?". Both items were published together.</ref>




Line 209: Line 206:
*EX$$                            Copy the remainder of the file and exit
*EX$$                            Copy the remainder of the file and exit
</syntaxhighlight>
</syntaxhighlight>
ये दो उदाहरण कार्यक्रम पीडीपी-11 टीईसीओ उपयोगकर्ता मार्गदर्शिका से ली गई प्रत्येक पंक्ति के पहले वर्ण के आधार पर, वर्तमान टेक्स्ट बफ़र का एक सरल इंटरचेंज सॉर्ट हैं। एक [[ के लिए जाओ | गोटो]] और [[संरचित प्रोग्रामिंग]] संस्करण दिखाया गया है।
ये दो उदाहरण कार्यक्रम पीडीपी-11 टीईसीओ उपयोगकर्ता मार्गदर्शिका से ली गई प्रत्येक पंक्ति के पहले वर्ण के आधार पर, वर्तमान टेक्स्ट बफ़र का एक सरल इंटरचेंज सॉर्ट हैं। एक [[ के लिए जाओ |गोटो]] और [[संरचित प्रोग्रामिंग]] संस्करण दिखाया गया है।


=== उदाहरण 1 ===
=== उदाहरण 1 ===
Line 220: Line 217:
qz"g 0uz @o/START/ '        ! repeat if a switch was made on last pass !
qz"g 0uz @o/START/ '        ! repeat if a switch was made on last pass !
</syntaxhighlight>
</syntaxhighlight>
  !प्रारंभ करना! जे ओआउआ! प्रारंभ में जाएं, रजिस्टर ए में पहला वर्ण लोड करें!
   
!संपर्क करें! एल 0aub! रजिस्टर बी में अगली पंक्ति का पहला चार लोड करें!
क्यूए-क्यूबी जी एक्सए के-एल गा 1यूज़ '! यदि ए> बी, लाइनों को स्विच करें और रजिस्टर जेड में ध्वज सेट करें!
क्यूबुआ! बी को ए में लोड करें!
एल जेड-। g -l @o/CONT/'! लूप बैक अगर बफर में एक और लाइन!
qz g 0uz @o/START/' ! अगर पिछले पास पर स्विच किया गया था तो दोहराएं!


=== उदाहरण 2 ===
=== उदाहरण 2 ===
Line 237: Line 229:
qz;>                            ! repeat if a switch was made last pass !
qz;>                            ! repeat if a switch was made last pass !
</syntaxhighlight>
</syntaxhighlight>
  0उज़! साफ दोहराना झंडा!
   
<जे 0आउआ एल! पहले चार को रजिस्टर ए में लोड करें!
<0औब! अगली पंक्ति का पहला वर्ण B में लोड करें!
क्यूए-क्यूबी जी एक्सए के-एल जीए -1यूज़ '! अगर ए> बी, लाइनों को स्विच करें और ध्वज सेट करें!
क्यूबुआ! बी को ए में लोड करें!
एल .-z;> ! लूप बैक अगर बफर में एक और लाइन!
क्यूजेड;> ! दोहराएँ अगर एक स्विच अंतिम पास बनाया गया था!


==टिप्पणियाँ==
==टिप्पणियाँ==
Line 278: Line 264:
*[http://www.opost.com/dlm/ Dan Murphy's personal site]
*[http://www.opost.com/dlm/ Dan Murphy's personal site]
*[http://www.sourceforge.net/projects/teco/ Peटीई Siemsen's टीईसीओ collection]
*[http://www.sourceforge.net/projects/teco/ Peटीई Siemsen's टीईसीओ collection]
*[http://almy.us/teco.html Tom Almy's टीईसीओ page.] Includes a टीईसीओ based on Peटीई Siemsen's टीईसीओC and दिसम्बरUS documentation. There are MS-DOS, Windows (console), Linux, Mac OS X, and OS/2 versions.
*[http://almy.us/teco.html Tom Almy's टीईसीओ page.] Includes a टीईसीओ based on Peटीई Siemsen's टीईसीओC and दिसम्बरUS documentation. There are MS-DOS, Windows (console), Linux, Mac OS X, and OS/2 versions.
*[http://scienceblogs.com/goodmath/2006/09/22/worlds-greatest-pathological-l-1/ Introduction to the टीईसीओ syntax]
*[http://scienceblogs.com/goodmath/2006/09/22/worlds-greatest-pathological-l-1/ Introduction to the टीईसीओ syntax]
*[http://www.pdp8online.com/editors/teco/teco.shtml टीईसीओ Information]
*[http://www.pdp8online.com/editors/teco/teco.shtml टीईसीओ Information]

Revision as of 10:06, 5 July 2023

Original author(s)Dan Murphy
Initial release1962/63
Operating systemOS/8, ITS, TOPS-10, TOPS-20, RT-11, RSTS/E, RSX-11, OpenVMS, Multics
TypeText editor

टेको (/ˈtk/[1]), टेक्स्ट एडिटर और करेक्टर के लिए शॉर्टकट,[2][3][4] एक चरित्र-उन्मुख टेक्स्ट संपादक और एक प्रोग्रामिंग भाषा दोनों है,[5][6] जिसे 1962 में डिजिटल उपकरण निगम कंप्यूटरों पर उपयोग के लिए विकसित किया गया था, और तब से यह पीसी और यूनिक्स पर उपलब्ध हो गया है। डैनियल मर्फी (कंप्यूटर वैज्ञानिक) ने मैसाचुसेट्स की तकनीकी संस्था (एमआईटी) में एक छात्र के रूप में टीईसीओ विकसित किया था।[5]

मर्फी के अनुसार, प्रारंभिक परिवर्णी शब्द टेप एडिटर और करेक्टर था क्योंकि हमारे पीडीपी-1 पर प्रोग्राम स्रोत के भंडारण के लिए कागज का टेप ही एकमात्र माध्यम था। कोई हार्ड डिस्क, फ्लॉपी डिस्क, मैग्नेटिक टेप (मैग्टेप) या नेटवर्क नहीं था।[5] जब तक टीईसीओ को सामान्य उपयोग के लिए उपलब्ध कराया गया, तब तक नाम टेक्स्ट एडिटर और करेक्टर बन चुका था,[4] पीडीपी-1 संस्करण के बाद से भी तब तक अन्य मीडिया का समर्थन किया गया था।[5] इसके बाद में इसे कई अन्य लोगों द्वारा संशोधित किया गया था[7] और एमएसीएस का प्रत्यक्ष पूर्वज है, जिसे मूल रूप से टीईसीओ मैक्रोज़ में प्रयुक्त किया गया था।[8][9][10]

विवरण

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

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

टीईसीओ केस और व्हाइटस्पेस चरित्र को अनदेखा करता है (टैब चरित्र को छोड़कर, जो एक इंसर्शन कमांड है)।[11]

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

प्रभाव

एमएसीएस संपादक मूल रूप से डेविड ए. मून और गाइ एल. स्टील जूनियर द्वारा प्रारंभ किया गया था, जिसे टीईसीओ में संपादक मैक्रोज़ के एक सेट के रूप में प्रयुक्त किया गया था। 1964 में एमआईटी के प्रोजेक्ट मैक में विकसित एक डिजिटल इक्विपमेंट कॉरपोरेशन (दिसम्बर) पीडीपी-6 कार्यान्वयन के बाद टीईसीओ का अधिक व्यापक रूप से उपयोग किया जाने लगा। इस कार्यान्वयन ने कैथोड रे ट्यूब स्क्रीन पर दृश्य रूप से संपादित टेक्स्ट को निरंतर प्रदर्शित किया था और एक इंटरैक्टिव ऑनलाइन संपादक के रूप में उपयोग किया गया। टीईसीओ के बाद के संस्करण विभिन्न दिसम्बर आरएस-232 वीडियो टर्मिनलों जैसे वीटी52 या वीटी100 पर फुल-स्क्रीन मोड चलाने में सक्षम थे।

पीडीपी-1 कंप्यूटर, पीडीपी-8 (ओएस/8 के तहत), सहित कई ऑपरेटिंग सिस्टम और कंप्यूटरों के लिए टीईसीओ उपलब्ध था।[12][13] पीडीपी-6 और पीडीपी-10 पर असंगत टाइमशेयरिंग सिस्टम (आईटीइस), और पीडीपी-10 पर टॉप्स-10 और टॉप्स-20। टीईसीओ का एक संस्करण सभी डीईसी ऑपरेटिंग सिस्टम के साथ प्रदान किया गया था; आरटी11 के लिए उपलब्ध संस्करण जीटी40 ग्राफिक्स डिस्प्ले को चलाने में सक्षम था जबकि आरएसटीएस/ई के लिए उपलब्ध संस्करण को बहु-उपयोगकर्ता रन-टाइम सिस्टम के रूप में प्रयुक्त किया गया था और इसे उपयोगकर्ता के पूर्ण ऑपरेटिंग वातावरण के रूप में उपयोग किया जा सकता था; उपयोगकर्ता को वास्तव में कभी भी टीईसीओ से बाहर नहीं निकलना पड़ा। वीटीईडीआईटी (वीडियो टर्मिनल एडिटर) टीईसीओ मैक्रो का उपयोग आमतौर पर आरएसटीएस/ई और वैक्स सिस्टम पर किया जाता था, जिसमें प्रत्यक्ष-कर्सर नियंत्रण (जैसे वीटी52 और वीटी100) में सक्षम टर्मिनल होते थे, जो समसामयिक रूप से विकसित एमएसीएस के फंक्शन में समान फुल-स्क्रीन विज़ुअल एडिटर प्रदान करते थे।

टीईसीओ को वीएसआई द्वारा ओपनवीएमएस में सम्मिलित किया जाना प्रसारित है, और इसे EDIT/टीईसीओ कमांड के साथ प्रयुक्त किया जाता है।[14]

पीडीपी-10 के लिए वितरित संस्करण डीईसी का वंशज एमएस-डॉस/ माइक्रोसॉफ़्ट विंडोज़ पर्यावरण के लिए कई आंशिक कार्यान्वयन के साथ-साथ अभी भी इंटरनेट पर उपलब्ध है।

इतिहास

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

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

टीईसीओ का मूल घोषित उद्देश्य पीडीपी-1 का अधिक कुशल उपयोग करना था। जैसा कि मैनुअल में कल्पना की गई है, सिस्टम कंसोल पर बैठकर बड़े मापदंड पर संपादन करने के अतिरिक्त , केवल दोषपूर्ण टेक्स्ट की जांच करेगा और टेक्स्ट पर किए जाने वाले संपादन कार्यों का वर्णन करते हुए एक सुधार टेप तैयार करेगा। कोई स्रोत टेप और सुधार टेप को इसकी उच्च-गति (200 वर्ण प्रति सेकंड) रीडर के माध्यम से पीडीपी-1 में दक्षतापूर्वक फीड करेगा। टीईसीओ चलाकर यह तुरंत एक संपादित टेप को अपनी उच्च गति (60 वर्ण प्रति सेकेंड) पंच के साथ पंच करेगा। ऑनलाइन संपादन में कोई समय व्यर्थ किए बिना, कोई तुरंत असेंबलर को लोड और चलाने के लिए आगे बढ़ सकता है।

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

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

1964 तक, टीईसीओ (टीईसीओ-6) का एक विशेष संस्करण एमआईटी में पीडीपी-6 पर प्रयुक्त किया गया था। उस संस्करण ने स्क्रीन डिस्प्ले का उपयोग करके दृश्य संपादन का समर्थन किया, जो वास्तविक समय में संपादन बफ़र की पदार्थ को दिखाता है, जैसे-जैसे यह बदलता है, अपडेट होता है।[17] टीईसीओ-6 के रचनाकारों में रिचर्ड ग्रीनब्लाट (प्रोग्रामर) और स्टीवर्ट नेल्सन (हैकर) थे।[18]

एमआईटी में, टीईसीओ का विकास 1971 के पतन में जारी रहा कार्ल मिकेलसेन ने टीईसीओ-6 ग्राफिक कंसोल कमांड के आधार पर एक वास्तविक समय संपादन मोड प्रयुक्त किया था, किंतु नए स्थापित डेटापॉइंट-3300 सीआरटी टेक्स्ट डिस्प्ले के साथ काम कर रहे थे।[19] चूँकि टीईसीओ बफ़र कार्यान्वयन एकल वर्ण सम्मिलित करने या हटाने के कार्यों को संसाधित करने के लिए बहुत अक्षम था - संपादन में PDP-10 का 100% खर्च होता था। रिचर्ड ग्रीनब्लाट के समर्थन से, 1972 की गर्मियों में कार्ल ने टीईसीओ बफर स्टोरेज को फिर से प्रयुक्त किया और मैक्रोज़ को मूल PDP-10 कोड के रूप में सुधार किया। चूंकि वास्तविक समय मोड में प्रवेश cntl+R टाइप करके किया जाता था, इसे नियंत्रण के रूप में जाना जाता था- आर मोड. उसी समय, रिसी लिकनेत्स्की ने इनपुट-टाइम मैक्रोज़ (cntl+]) जोड़ा, जो निष्पादित होने के अतिरिक्त कमांड स्ट्रिंग को पढ़ने के रूप में संचालित होता था। रीड-टाइम मैक्रोज़ ने टीईसीओ सहायक टेक्स्ट बफ़र्स बनाए, जिन्हें क्यू-रजिस्टर कहा जाता है, अधिक उपयोगी। कार्ल ने क्यू-रजिस्टर नाम स्थान का विस्तार किया। रीड-टाइम मैक्रोज़, एक बड़े क्यू-रजिस्टर नाम स्थान और कुशल बफर संचालन के साथ, प्रत्येक कुंजी को मैक्रो में बाइंड करने के लिए चरण निर्धारित किया गया था। ये संपादन मैक्रोज़ एमएसीएस में विकसित हुए।[20]

वीएमएस कार्यान्वयन का एक लंबा इतिहास रहा है - यह टीईसीओ-8 के रूप में प्रारंभ हुआ जिसे पीडीपी-8 असेंबली में कार्यान्वित किया गया। टीईसीओ-11 का उत्पादन करने के लिए इस कोड का पीडीपी-11 असेंबली में अनुवाद किया गया था। पीडीपी-11 अनुकूलता मोड में वैक्स/वीएमएस के शुरुआती संस्करणों में टीईसीओ-11 का उपयोग किया गया था। इसे बाद में टीईसीओ32 का उत्पादन करने के लिए पीडीपी-11 असेंबली से वैक्स असेंबली में अनुवादित किया गया। टीईसीओ32 को क्रमशः अल्फा और इटेनियम पर ओपनवीएमएस के साथ संगत बनाने के लिए वेस्ट और एईएसटी बाइनरी अनुवाद उपयोगिताओं के साथ परिवर्तित किया गया था।[21][22][23]


OS/8 मूंग कमांड

OS/8 संक्षिप्त कमांड लैंग्वेज मूंग कमांड ने निर्दिष्ट टीई टीईसीओ मैक्रो को पढ़ने और निष्पादित करने के लिए टीईसीओ का आह्वान किया। वैकल्पिक कमांड लाइन मापदंडों ने अतिरिक्त अनुकूलता प्रदान की गई थी।[24]

ग्रामर के उपकरण के रूप में

पंच कार्ड युग में कंप्यूटर प्रोग्रामिंग के वर्षों के समय और उसके तुरंत बाद, ऐसे स्रोत कार्यक्रम थे जो पंच कार्ड-आधारित के रूप में प्रारंभ हुए थे। टिप्पणियां अधिकांशतः पंक्तियों की एक श्रृंखला होती थीं जिनमें एकल सीमांत तारक और शीर्ष/नीचे तारांकन की पूर्ण पंक्तियां सम्मिलित होती थीं। एक बार कार्डों को ऑनलाइन स्थानांतरित कर दिए जाने के बाद, सीमांत सितारों को पुनः प्राप्त करना एक काम था। बचाव के लिए टीईसीओ ...[25][26]


एक प्रोग्रामिंग भाषा के रूप में

टीईसीओ प्रोग्रामिंग भाषा की अस्पष्टता का वर्णन "रियल प्रोग्रामर्स डोंट यूज़ पास्कल" के निम्नलिखित उद्धरण में किया गया है, जो एड पोस्ट से डेटामेशन जुलाई 1983 को लिखा गया एक पत्र है:

यह देखा गया है कि टीईसीओ कमांड अनुक्रम पठनीय पाठ की तुलना में ट्रांसमिशन लाइन ध्वनि से अधिक मिलता जुलता है। टीईसीओ के साथ खेलने के लिए अधिक मनोरंजक खेलों में से एक है कमांड लाइन के रूप में अपना नाम टाइप करना और यह अनुमान लगाने का प्रयास करना कि यह क्या करता है। टीईसीओ के साथ बात करते समय लगभग कोई भी संभावित टाइपिंग त्रुटि संभवतः आपके प्रोग्राम को नष्ट कर देगी, या इससे भी खराब - एक बार काम करने वाले सबरूटीन में सूक्ष्म और रहस्यमय बग प्रस्तूत कर देगी।.[27]


द क्राफ्ट ऑफ टेक्स्ट एडिटिंग के लेखक क्रेग फिनसेथ के अनुसार, [28] टीईसीओ को "केवल लिखने वाली" भाषा के रूप में वर्णित किया गया है, जिसका अर्थ है कि एक बार टीईसीओ में कोई प्रोग्राम लिखा जाता है, तो यह समझना बहुत कठिन है कि उपयुक्तता दस्तावेज़ीकरण के बिना उसने क्या किया है। .

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

टीईसीओ आदेश वर्ण हैं (नियंत्रण-वर्णों सहित) और संकेत एक एकल तारांकन चिह्न है:

*

एस्केप कुंजी एक डॉलर चिह्न के रूप में प्रदर्शित होती है, एक बार दबाए जाने पर एक तर्क की आवश्यकता वाले कमांड के अंत को चित्रित किया जाता है और दो बार दबाए जाने पर अंकित कमांड के निष्पादन की प्रारंभ होती है:

*$$

उदाहरण कोड

निम्नलिखित पदार्थ के साथ hello.c नाम की एक फ़ाइल दी गई है:

 int main(int argc, char **argv)
 {
     printf("Hello world!\n");
     return 0;
 }

हैलो को गुडबाय में बदलने के लिए कोई निम्नलिखित टीईसीओ सत्र का उपयोग कर सकता है (ध्यान दें कि संकेत * और $ है कि ईएससी कैसे प्रतिध्वनित होता है):

*EBhello.c$$                     Open file for read/write with backup
*P$$                             Read in the first page
*SHello$0TT$$                    Search for "Hello" and print the line (pointer placed after searched string)
    printf("Hello world!\n");    The line
*-5DIGoodbye$0TT$$               Delete five characters before pointer (ie "Hello"), insert "Goodbye", and print the line
    printf("Goodbye world!\n");  The updated line
*EX$$                            Copy the remainder of the file and exit

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

उदाहरण 1

!START! j 0aua               ! jump to beginning, load 1st char in register A !
!CONT! l 0aub                ! load first char of next line in register B !
qa-qb"g xa k -l ga 1uz '     ! if A>B, switch lines and set flag in register Z !
qbua                         ! load B into A !
l z-."g -l @o/CONT/ '        ! loop back if another line in buffer !
qz"g 0uz @o/START/ '         ! repeat if a switch was made on last pass !


उदाहरण 2

0uz                             ! clear repeat flag !
<j 0aua l                       ! load 1st char into register A !
<0aub                           ! load 1st char of next line into B !
qa-qb"g xa k -l ga -1uz '       ! if A>B, switch lines and set flag !
qbua                            ! load B into A !
l .-z;>                         ! loop back if another line in buffer !
qz;>                            ! repeat if a switch was made last pass !


टिप्पणियाँ

  1. "डीईसी टाइमशेयरिंग". The DEC Professional. Tee'koh
  2. "A powerful and sophisticated text editor, TECO (Text Editor and Corrector) ... Bell, C. Gordon; Mudge, J. Craig; McNamara, John E. (2014). Computer Engineering: A DEC View of Hardware Systems Design. ISBN 978-1483221106.
  3. The name on the cover of DEC's DEC-10-UTECA-A-D manual is "Introduction To TECO (Text Editor And Corrector)"
  4. 4.0 4.1 PDP 8/e small computer handbook. 1970. pp. 2–30.
  5. 5.0 5.1 5.2 5.3 Murphy, Dan (October–December 2009). "टीईसीओ की शुरुआत" (PDF). IEEE Annals of the History of Computing. 31 (4): 110–115. doi:10.1109/mahc.2009.127. S2CID 18805607.
  6. citing Comm. of the ACM (see vol. 19, no. 12, 1976)
  7. "टेको". The Jargon File. v.4.4.7. ibiblio.
  8. "A History of EMACS".
  9. Mario Biagioli; Peter Jaszi; Martha Woodmansee (2015). Making and Unmaking Intellectual Property: Creative Production. ISBN 022617249X. EMACS was originally built on top of TECO
  10. Harley Hahn (2016). हार्ले हान की Emacs फील्ड गाइड. p. 9. ISBN 978-1484217030.
  11. "TECO Pocket Guide". <tab>text$, Inserts specified text preceded by a tab.
  12. "Standard TECO Text Editor and Corrector". Standard TECO. Text Editor and Corrector for the. VAX, PDP-11, PDP-10, and. PDP-8.
  13. "Doug Jones's DEC PDP-8 FAQs". What programming languages were supported on the PDP-8? ... TECO, the text editor, was included in the standard OS/8 distributions
  14. "VSI OpenVMS DCL Dictionary: A-Z" (PDF). vmssoftware.com. April 2020. Retrieved 2020-09-13.
  15. "Summary of TECO commands". From a collection of MIT PDP-1 paper tapes at the Computer History Museum. Archived from the original on 2008-01-18. Retrieved 2007-09-12.
  16. Murphy, Dan (2009). "The Beginnings of TECO" (PDF). IEEE Annals of the History of Computing. 31 (4): 110–115. doi:10.1109/MAHC.2009.127. S2CID 18805607.
  17. Samson, Peter (July 23, 1965). "PDP-6 TECO". Memorandum MAC-M-250. p. 9. hdl:1721.1/5917. Retrieved 2007-09-12.
  18. Edwards, Daniel J. (October 29, 1964). "TECO 6". Memorandum MAC-M-191. p. 2. Archived from the original on 2007-09-28. Retrieved 2007-09-12.
  19. "For the Time Sharing Computer User: Datapoint 3300" (PDF). Computer Terminal Corporation. Retrieved 2009-10-27.
  20. "An Introduction to the EMACS Editor" (PDF). MIT. January 1978. Archived from the original (PDF) on 2020-10-27. Retrieved 2016-11-15.
  21. "tecox Readme". github.com. 2019-06-10. Retrieved 2020-09-13.
  22. "VAX PDP11 संगतता मोड". comp.os.vms.narkive.com. 2019-08-06. Retrieved 2020-09-13.
  23. "एंडी गोल्डस्टीन सेवानिवृत्ति". comp.os.vms.narkive.com. 2009-06-12. Retrieved 2020-09-13.
  24. "TECO Reference Manual digital equipment corporation" (PDF).
  25. Martin Pring (July 1982), Why Teco
  26. He wrote this years after his colleague Carl B. Marbach became editor of a DEC-oriented periodical and wrote "Why Teco?". Both items were published together.
  27. Post, Ed (July 1983). "Real Programmers Don't Use PASCAL". Datamation. 29 (7): 263–265.
  28. Finseth, Craig A. (2006). The Craft of Text Editing. Lulu.com. ISBN 978-1-4116-8297-9.


संदर्भ


बाहरी संबंध

This article is based in part on the Jargon File, which is in the public domain.