Editor și corector de text

TECO
Tip de Editor de text
Autor Dan Murphy
Dezvoltator Daniel Murphy [d]
Prima editie 1962/63
Platformă hardware PDP-1 , PDP-6 [d] şi PDP-10

TECO ( MFA: [ˈtiːkoʊ] ; inițial un acronim pentru engleză.  Tape Editor and CORrector , mai târziu - Text Editor and CORrector ) este un editor de text , dezvoltat inițial la Massachusetts Institute of Technology în anii 1960, după care ar putea fi modificat de către „oricine” [ 1] . TECO a fost strămoșul direct al lui Emacs , care a fost implementat inițial ca macrocomandă pentru TECO. [2]

Scurtă descriere

TECO nu a fost doar un editor de text, ci și un limbaj de programare interpretat pentru manipularea textului. Diverse programe (numite macro-uri) pentru găsirea și modificarea textului au făcut editorul destul de puternic. Spre deosebire de expresiile regulate, limbajul de programare era imperativ (deși unele versiuni aveau un operator OR pentru a căuta subșiruri).

Limbajul TECO nu avea cu adevărat o sintaxă strictă , fiecare caracter era tratat ca o comandă imperativă care executa o anumită acțiune. Această acțiune poate fi citirea caracterelor ulterioare din fluxul de program (dând efectul unui „argument șir”), schimbarea poziției „ contorului programului ” (dând efectul aplicării instrucțiunilor de control ) sau împingerea valorilor pe valoare stiva (dând efectul de paranteze imbricate). Dar nimic nu-l împiedică să sară în mijlocul unui comentariu, deoarece limbajul nu are o sintaxă strictă și nici o analiză .

Eseul clasic de programare, „ Programatorii reali nu folosesc Pascal ”, spune că un joc obișnuit pentru adepții editorului TECO era să introducă numele lor ca o secvență de comenzi și să vadă ce se întâmplă. În același eseu, a fost menționat pentru prima dată acronimul YAFIYGI, adică „Tu l-ai cerut, l-ai prins” (din  engleză  –  „l-ai cerut – l-ai primit”) și a devenit antiteza WYSIWYG („What You See Is What Obții” „ceea ce vezi este ceea ce primești”).

Acum celebrul editor Emacs a fost implementat inițial pe TECO. Versiunile ulterioare de Emacs, mai întâi Multics Emacs și mai târziu GNU Emacs, au fost implementate în Lisp și , respectiv , C. TECO a devenit proeminentă odată cu implementarea în 1964 a computerului mainframe PDP-6 al Digital Equipment Corporation la MIT . Această implementare a afișat continuu text pe un afișaj CRT și a fost folosită ca editor interactiv (deși aceasta nu a fost utilizarea inițială prevăzută pentru aceasta).

TECO a fost disponibil pentru mai multe sisteme de operare și computere, inclusiv PDP-1 , Sistemul de partajare a timpului incompatibil (ITS) pe mainframe -ul PDP-6 și PDP-10 și SO TOPS-10 și TOPS-20 pe computerul PDP-10 . Versiunea de editor TECO a fost furnizată cu toate sistemele de operare DEC. Versiunea care a venit cu RT-11 ar putea conduce afișajul grafic GT40, deși versiunea care a venit cu RSTS/E a fost implementată ca un sistem de rulare multi-utilizator și ar putea fi folosită ca un banc de lucru complet, astfel încât utilizatorul să nu iasă niciodată din Mediul TECO. .

Hewlett - Packard , după ce a cumpărat Compaq (care cumpărase anterior Digital Equipment Corporation ), a început să livreze TECO cu sistemul său de operare OpenVMS . [3] Un descendent al versiunii pe care DEC a distribuit-o pentru PDP-10 este încă disponibil online, împreună cu câteva implementări parțiale pentru mediul MS-DOS / Microsoft Windows .

Istorie

TECO a fost dezvoltat inițial la Institutul de Tehnologie din Massachusetts în jurul anului 1963 de Daniel Murphy pentru a fi utilizat pe două computere PDP-1 aparținând unor departamente diferite, ambele fiind găzduite în a 26-a clădire a MIT. Pe aceste computere, în procesul de dezvoltare a fost inclus Friden Flexowriter, pe care a fost pregătit în prealabil codul sursă al programului pe o bucată de bandă de hârtie perforată. Programatorii de pe mainframe IBM mari au scris de obicei cod sursă pe carduri perforate folosind o perforare a tastei, care nu numai că a perforat datele de pe card într-o formă care poate fi citită de mașină, ci și le-a tipărit pe o imprimantă cu matrice de puncte în partea de sus a fiecărei carduri într-un formă convențională, care poate fi citită de om. Astfel, programatorii IBM puteau citi, introduce, șterge și muta linii de cod mutând fizic cărțile perforate în pachet. Cu bandă perforată , acest lucru nu a mai fost posibil și acest lucru a dus la necesitatea editării în timp real.

Una dintre primele versiuni ale editorului pentru PDP-1 a fost numită „Mașină de scris scumpă”. Scris de Steven Piner, a fost un editor rudimentar orientat pe linii, căruia îi lipsea chiar și funcționalitatea de căutare și înlocuire a textului. Titlul său a fost ales ca o parodie a titlului unui editor anterior numit „Colossal Machinewriter”. Chiar și în acele zile, editarea în timp real ar putea economisi mult timp de depanare. Un alt program scris de utilizatorii activi ai PDP-1 a fost „Expensive Desk Calculator”, numit într-un stil similar.

Exemple de cod

Exemplu de cod Explicaţie
Fișierul ER $ deschideți fișierul pentru citire
[ q … ] q apăsați pe stivă ... scoateți registrul Q din stivă (operația poate fi efectuată cu un număr, text sau cod)
< cod > iterație în buclă; există coduri pentru next , break , continue etc.
n " X atunci cod | else-code operator condiționat (X este tipul care se verifică)

Exemple de programe

Exemplul 1

!START! j 0aua ! sari pentru a incepe, incarca primul caracter in registrul A! !CONT! l 0aub ! incarca primul caracter al liniei urmatoare in registrul B ! qa-qb"g xa k -l ga 1uz ' ! dacă A>B, comutați linia și setați pavilionul în registrul Z ! qbua! încărcați B în A! l z-."g -l @o/CONT/ ' ! reveni la începutul buclei dacă există cel puțin o linie în buffer ! qz"g 0uz @o/START/ ' ! repetați dacă a fost făcută o schimbare în timpul iterației anterioare !

Exemplul 2

Acesta este un exemplu de interpret de limba Brainfuck scris în TECO. Funcționează prin executarea bufferului curent ca program Brainfuck și demonstrează capacitățile editorului.

@^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>

Note

  1. The Glorious Horror of TECO  ( 30 noiembrie 2010). Arhivat din original pe 10 iulie 2013.
  2. Întrebări frecvente GNU Emacs . De unde provine numele „Emacs”?  (engleză) . Arhivat din original pe 2 septembrie 2013.
  3. Documentația sistemului HP OpenVMS. Arhivat 13 iunie 2011 la Wayback Machine Cum să invoci TECO.

Link -uri