TECO

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
TECO
software
Tip Editor de text
Dezvoltator Daniel Murphy
Data primei versiuni 1962
Sistem de operare Multiplatform

TECO , inițial un acronim pentru T ape E ditor și CO rrector (editor de bandă și corector), ulterior înțeles mai târziu ca T ext E ditor și CO rrector (editor de text și corector), a fost un editor de text dezvoltat la MIT și modificat acolo de practic oricine. Cu toate dialectele incluse, TECO fusese cel mai folosit editor înainte de Emacs și poate fi considerat strămoșul.

TECO, remarcabil pentru sintaxa sa complicată și impronunciabilă, poate fi considerat un limbaj de programare interpretat, care vizează manipularea textului. Practic fiecare caracter este o comandă (o secvență de unul sau două caractere înlocuiește cuvintele cheie obișnuite din mai multe limbaje detaliate) și, prin urmare, fiecare șir de caractere este un program TECO, deși nu neapărat un program util.

Emacs- ul original al lui Richard Stallman a fost implementat în TECO. Mai târziu, versiunile Emacs, mai întâi Multics Emacs și apoi GNU Emacs, au fost implementate în Lisp .

TECO a fost dezvoltat inițial la MIT pentru a fi utilizat pe cele două computere PDP-1 , aparținând unor departamente diferite, ambele situate în clădirea 26. În aceste mașini, procesul normal de dezvoltare a implicat utilizarea unui Friden Flexowriter pentru a pregăti codul sursă. folosind computerul pe o bandă continuă de bandă de hârtie perforată. Marii programatori de calculatoare IBM și-au introdus propriul cod sursă în carduri, folosind punchere care tipăreau caractere matrice de puncte citibile de om de-a lungul vârfului fiecărei cărți, în același timp în care au perforat fiecare caracter citibil de mașină. Astfel, programatorii IBM puteau citi, insera, șterge și muta linii de cod manipulând fizic cardurile utilizate. Casetele perforate nu ofereau toate aceste posibilități, necesitatea a fost declanșatorul nașterii unui editor online .

Primul dintre acești editori pentru PDP-1 a fost (oficial!) Numit „ Scump Typewriter ”. A fost cel mai rudimentar editor orientat pe linii imaginabil, lipsit de asemenea de capacitatea de căutare și înlocuire a operațiunilor. Numele său reflecta dezgustul pentru cheltuiala și ineficiența aparentă a unui programator care monopoliza un computer scump cu singurul scop de editare a textului.

Scopul declarat inițial al TECO era de a face utilizarea PDP-1 mai eficientă. Așa cum se indică în manual, în loc să facă modificările „costisitoare” așezate la terminal, programatorul ar analiza pur și simplu textul eronat și ar pregăti o „bandă corectivă” care descrie operațiile de editare care trebuie efectuate asupra textului. Banda sursă și banda de corecție ar fi apoi furnizate PDP-1 prin intermediul unității sale de mare viteză (200 de caractere pe secundă). Funcționarea TECO ar împinge imediat o carte modificată cu pumnul de mare viteză (60 de caractere pe secundă). Asamblatorul putea fi apoi încărcat și executat imediat, fără a pierde timp la modificările terminalului.

Funcțiile de căutare introduse ulterior au fost motivate de faptul că tipăriturile Flexowriter nu aveau numerotarea liniilor; prin urmare, pozițiile de editare trebuiau specificate de context în loc de un număr de linie. Diversele construcții de cicluri și condiții (care au făcut TECO Turing-complete) au fost incluse pentru a permite o putere descriptivă suficientă pentru banda corectivă. Sintaxa concisă a redus numărul de apăsări de tastă necesare pentru a pregăti banda corectivă.

Totuși, acest lucru nu avea prea mult sens, deoarece banda corectivă era de fapt un program și necesita depanare la fel ca orice alt program. Pericolele chiar și unei simple operațiuni globale de căutare și înlocuire au devenit în curând evidente. În practică, s-au făcut modificări la terminal exact așa cum a fost cu Scump Typewriter.

TECO era disponibil pentru multe sisteme de operare , inclusiv ITS pe PDP-6 și PDP-10 , precum și pe TOPS-20 în PDP-10. Un descendent al versiunii DEC distribuite pentru PDP-10 este încă disponibil pe Internet , împreună cu mai multe implementări parțiale pentru mediul MS-DOS / Windows. O versiune a TECO a fost livrată cu toate sistemele de operare DEC; Compaq oferă în continuare TECO cu OpenVMS .

Exemplu de cod TECO

  • Fișier ER $ - deschide un fișier pentru acces la citire
  • [ q ... ] q - apasă ... pop din registrul Q (poate conține numere, text sau cod)
  • < cod > - iterație; acestea sunt coduri pentru operațiile următoare , pauză , continuare etc.
  • n " X apoi cod | ' code-else " - if-then-else (X este un tip pentru test)

Exemplu de program TECO

Acesta este un sortare simplă pentru bufferul de text curent, bazat pe primul caracter al fiecărei linii, preluat din ghidul de utilizare PDP-11 TECO. Sunt afișate două versiuni cu operații „go” și operațiuni „structurate”. Rețineți că TECO ignoră dacă textul este cu majusculă sau nu și spațiile (cu excepția filelor, care este considerată o comandă de inserare).

Exemplul 1

 ! START! j 0aua! săriți la început, încărcați primul caracter în registrul A!
! CONT! l 0aub! încărcați primul caracter al următoarei linii în registrul B!
qa-qb "g xa k -l ga 1uz '! s și A> B, schimbați liniile și setați un steag în registrul Z!
qbua! încărcați B în A!
 l z -. "g -l @ o / CONT / '! revine la început dacă există o altă linie în buffer!
qz "g 0uz @ o / START / '! repetați dacă s-au făcut schimburi în ultimul pas!

Exemplul 2

 0uz! Ștergeți steagul de repetare!
 <j 0aua l! încărcați primul caracter în registrul A!
<0aub! încărcați primul caracter al următoarei linii în registrul B!
qa-qb "g xa k -l ga -1uz '! if A> B, swap the lines and set a flag !
qbua! încărcați B în A!
 l.-z;>! reveniți la început dacă apare o altă linie în buffer!
qz;>! repetă dacă s-au făcut schimburi în ultimul pas!

linkuri externe