Szövegszerkesztő és javító

TECO
Típusú Szöveg szerkesztő
Szerző Dan Murphy
Fejlesztő Daniel Murphy [d]
Első kiadás 1962/63
Hardver platform PDP-1 , PDP-6 [d] és PDP-10

A TECO ( MFA: [ˈtiːkoʊ] ; eredetileg az angol rövidítése .  Tape Editor and Corrector , később - Text Editor and Corrector ) egy szövegszerkesztő , amelyet eredetileg a Massachusetts Institute of Technology -ban fejlesztettek ki az 1960-as években, majd később módosítani lehetett. "bárki" [1] . A TECO az Emacs közvetlen őse volt , amelyet eredetileg a TECO makrójaként valósítottak meg . [2]

Rövid leírás

A TECO nemcsak szövegszerkesztő volt, hanem értelmezett programozási nyelv is a szövegkezeléshez. A szöveg megtalálására és módosítására szolgáló különféle programok (úgynevezett makrók) meglehetősen hatékonysá tették a szerkesztőt. A reguláris kifejezésekkel ellentétben a programozási nyelv elengedhetetlen volt (bár egyes verziókban volt OR operátor a részkarakterláncok kereséséhez).

A TECO nyelvnek valójában nem volt szigorú szintaxisa , minden karaktert parancsoló parancsként kezeltek, amely egy adott műveletet hajt végre. Ez a művelet lehet a következő karakterek beolvasása a programfolyamból (egy "karakterlánc-argumentum" hatását eredményezve), a "programszámláló" pozíciójának megváltoztatása ( ellenőrző utasítások alkalmazásának hatására ), vagy értékek rányomása az értékre. verem (a beágyazott zárójelek hatását adja). De semmi sem akadályozza meg abban, hogy egy megjegyzés közepébe ugorjon, mivel a nyelvnek nincs szigorú szintaxisa és nincs elemzése .

A klasszikus programozási esszé, a " Valódi programozók nem használnak Pascalt " azt mondja, hogy a TECO szerkesztő hívei gyakori játéka az volt, hogy beírták a nevüket parancsok sorozataként, és megnézték, mi történik. Ugyanebben az esszében először említették a YAFIYGI mozaikszót, ami azt jelenti, hogy "Kérted, megvan" (  angolul  -  "kérted - megvan"), és a WYSIWYG ("What You See Is What ") ellentéte lett. Kapsz" „amit látsz, azt kapod").

A ma már híres Emacs szerkesztőt eredetileg a TECO-n implementálták. Az Emacs későbbi verziói, először a Multics Emacs, majd később a GNU Emacs Lisp és C nyelven lettek implementálva . A TECO a Digital Equipment Corporation PDP-6 nagyszámítógépének 1964 - es MIT -ben történő bevezetésével emelkedett előtérbe . Ez a megvalósítás folyamatosan jelenítette meg a szöveget egy CRT-kijelzőn , és interaktív szerkesztőként használták (bár eredetileg nem ez volt a cél).

A TECO számos operációs rendszerhez és számítógéphez elérhető volt, beleértve a PDP-1- et , a PDP-6 és PDP-10 nagyszámítógépeken az Incompatibilis Timesharing System - et (ITS), valamint a PDP- 10 számítógépen a TOPS-10 és TOPS-20 operációs rendszert . . A TECO szerkesztő verziót minden DEC operációs rendszerrel szállították. Az RT-11- hez mellékelt verzió képes volt meghajtani a GT40 grafikus kijelzőt, bár az RSTS/E -vel együtt szállított verzió többfelhasználós futásidejű rendszerként valósult meg, és teljes munkaasztalként is használható, így a felhasználó soha nem lépett ki TECO környezet...

A Hewlett - Packard , miután megvásárolta a Compaq -ot (amely korábban a Digital Equipment Corporationt vásárolta meg ), megkezdte a TECO szállítását az OpenVMS operációs rendszerével . [3] A DEC által a PDP-10-hez terjesztett verzió leszármazottja továbbra is elérhető online, valamint számos részleges implementáció az MS-DOS / Microsoft Windows környezethez .

Történelem

A TECO-t eredetileg a Massachusetts Institute of Technology- ban fejlesztette ki 1963 körül Daniel Murphy két különböző részlegekhez tartozó PDP-1 számítógépen való használatra , mindkettő az MIT 26. épületében volt elhelyezve. Ezeken a számítógépeken a fejlesztési folyamatba bekerült a Friden Flexowriter, amelyen egy perforált papírszalagra előzetesen elkészítették a program forráskódját . A nagy IBM nagyszámítógépeken dolgozó programozók jellemzően a lyukkártyákra írták a forráskódot egy kulcslyukasztó segítségével, amely nem csak géppel olvasható formában lyukasztotta ki a kártyán lévő adatokat, hanem egy mátrixnyomtatóra is nyomtatta az egyes kártyák tetején. konvencionális, ember által olvasható formában. Így az IBM programozói a pakliban lévő lyukkártyák fizikai mozgatásával olvashattak, szúrhattak be, törölhettek és mozgathattak kódsorokat. Lyukszalaggal ez már nem volt lehetséges , és ez a valós idejű szerkesztés szükségességéhez vezetett.

A PDP-1 szerkesztőjének egyik első verziója a "Drága írógép" nevet kapta. Steven Piner írta, ez egy kezdetleges vonalorientált szerkesztő volt, amelyből hiányzott még a szöveges keresés és csere funkció is. Címét egy korábbi szerkesztő „Kolosszális írógép” címének paródiájaként választották. A valós idejű szerkesztés még akkoriban is sok hibakeresési időt takaríthatott meg. Egy másik program, amelyet a PDP-1 aktív felhasználói írtak, a "Drága asztali kalkulátor" volt, amelyet hasonló stílusban neveztek el.

Kódpéldák

Kódpélda Magyarázat
ER fájl $ fájl megnyitása olvasásra
[ q … ] q nyomja rá a veremre ... a Q regiszter kihelyezése a veremből (a művelet végrehajtható számmal, szöveggel vagy kóddal)
< kód > hurokiteráció; kódok vannak a következőhöz , szünethez , folytatáshoz stb.
n " X then-code | else-code feltételes operátor (X az ellenőrzött típus)

Programpéldák

1. példa

!RAJT! j 0aua ! ugrás az elejére, az első karakter betöltése az A regiszterbe! !CONT! l 0aub ! töltse be a következő sor első karakterét a B regiszterbe! qa-qb"g xa k -l ga 1uz ' ! ha A>B, váltson vonalat és állítsa be a zászlót a Z regiszterben! qbua! töltsd be B-t A-ba! l z-."g -l @o/CONT/ ' ! visszatér a ciklus elejére, ha van legalább egy sor a pufferben! qz"g 0uz @o/START/ ' ! ismételje meg, ha az előző iteráció során váltás történt!

2. példa

Ez egy példa a TECO-ban írt Brainfuck nyelvi tolmácsra . Úgy működik, hogy az aktuális puffert Brainfuck programként hajtja végre, és bemutatja a szerkesztő képességeit.

@^UB#@S/{^EQQ,/#@^UC#@S/,^EQQ}/@-1S/{/#@^UR#.U1ZJQZ\^SC.,.+-^SXQ-^ SDQ1J#@^U9/[]-+<>.,/<@:-FD/^N^EG9/;>J30000<0@I/ />ZJZUL30000J0U10U20U30U60U7@^U4/[]/@^U5#<@:S/^EG4/U7Q7;-AU3(Q3-91)"=%1|Q1"=.U6ZJ@i/{/Q2\@i /,/Q6\@i/}/Q6J0;'-1%1' >#<@:S/[/UT.U210^T13^TQT;QT"NM5Q2J'>0UP30000J.US.UI<(0A-43)"=QPJ0AUTDQT+1@I//QIJ@O/end/'( 0A-45)"=QPJ0AUTDQT-1@I// QIJ@O/end/'(0A-60)"=QP-1UP@O/end/'(0A-62)"=QP+1UP@O/end/'(0A-46)"=-.+QPA ^T(-.+QPA-10)"=13^T'@O/end/'(0A-44)"=^TUT 8^TQPJDQT@I//QIJ@O/end/'(0A-91)"=-.+QPA"=QI+1UZQLJMRMB\-1J.UI'@O/end/'(0A-93)"=- .+QPA"NQI+1UZQLJMRMC\-1J.UI'@O/en d/'!end!QI+1UI(.-Z)"=.=@^a/END/^c^c'C>

Jegyzetek

  1. A TECO dicsőséges horrorja  ( 2010. november 30.). Az eredetiből archiválva: 2013. július 10.
  2. A GNU Emacs GYIK . Honnan származik az „Emacs” név?  (angol) . Archiválva az eredetiből 2013. szeptember 2-án.
  3. HP OpenVMS rendszerdokumentáció. Archivált : 2011. június 13. a Wayback Machine -nél Hogyan kell megidézni a TECO-t.

Linkek