Textový editor a korektor

TECO
Typ Textový editor
Autor Dan Murphy
Vývojář Daniel Murphy [d]
První vydání 1962/63
Hardwarová platforma PDP-1 , PDP-6 [d] a PDP-10

TECO ( MFA: [ˈtiːkoʊ] ; původně zkratka pro angličtinu.  Tape Editor and COrrector , později - Text Editor and COrrector ) je textový editor , původně vyvinutý na Massachusetts Institute of Technology v 60. letech 20. století, poté jej mohl upravit "kdokoli" [1] . TECO byl přímým předkem Emacsu , který byl původně implementován jako makro pro TECO. [2]

Stručný popis

TECO nebyl pouze textový editor, ale také interpretovaný programovací jazyk pro manipulaci s textem. Různé programy (nazývané makra) pro vyhledávání a úpravy textu dělaly editor poměrně výkonným. Na rozdíl od regulárních výrazů byl programovací jazyk nezbytný (ačkoli některé verze měly operátor OR pro vyhledávání podřetězců).

Jazyk TECO ve skutečnosti neměl striktní syntaxi , každý znak byl považován za imperativní příkaz, který prováděl určitou akci. Touto akcí může být čtení následných znaků z programového toku (dát efekt „řetězcového argumentu“), změna pozice „ programového čítače “ (dát efekt použití řídicích příkazů ) nebo vložení hodnot do hodnoty. stack (dát efekt vnořených závorek). Nic mu ale nebrání skočit doprostřed komentáře, protože jazyk nemá žádnou striktní syntaxi a žádnou analýzu .

Klasická programátorská esej „ Skuteční programátoři nepoužívají Pascal “ říká, že běžnou hrou pro přívržence editoru TECO bylo zadat své jméno jako sekvenci příkazů a sledovat, co se stane. Ve stejné eseji byla poprvé zmíněna zkratka YAFIYGI, která znamená „You Asked For It You Got It“ (z  angličtiny  –  „prosili jste to – máte to“) a stala se protikladem WYSIWYG („What You See Is What Dostanete" "co vidíte, to dostanete").

Nyní slavný editor Emacs byl původně implementován na TECO. Pozdější verze Emacsu, nejprve Multics Emacs a později GNU Emacs, byly implementovány v Lisp a C , v tomto pořadí. Společnost TECO se prosadila díky implementaci sálového počítače PDP-6 společnosti Digital Equipment Corporation v roce 1964 na MIT . Tato implementace nepřetržitě zobrazovala text na CRT displeji a byla používána jako interaktivní editor (ačkoli to nebylo původně zamýšlené použití).

TECO bylo k dispozici pro několik operačních systémů a počítačů, včetně PDP-1 , nekompatibilního systému sdílení času (ITS) na sálových počítačích PDP-6 a PDP-10 a OS TOPS-10 a TOPS-20 na počítači PDP-10. . Verze editoru TECO byla dodána se všemi operačními systémy DEC. Verze dodávaná s RT-11 mohla řídit grafický displej GT40, i když verze dodávaná s RSTS/E byla implementována jako běhový systém pro více uživatelů a mohla být použita jako plnohodnotný pracovní stůl, takže uživatel ve skutečnosti nikdy neopustil TECO prostředí..

Hewlett -Packard , který koupil Compaq (který předtím koupil Digital Equipment Corporation ), začal dodávat TECO se svým operačním systémem OpenVMS . [3] Potomek verze, kterou DEC distribuoval pro PDP-10, je stále dostupný online, spolu s několika dílčími implementacemi pro prostředí MS-DOS / Microsoft Windows .

Historie

TECO bylo původně vyvinuto na Massachusetts Institute of Technology kolem roku 1963 Danielem Murphym pro použití na dvou počítačích PDP-1 patřících různým oddělením, z nichž oba byly umístěny ve 26. budově MIT. Na těchto počítačích byl do vývojového procesu zařazen Friden Flexowriter, na kterém byl zdrojový kód programu předem připraven na kusu perforované papírové pásky. Programátoři na velkých sálových počítačích IBM obvykle psali zdrojový kód na děrné štítky pomocí děrovače, který nejen vyrážel data na kartu ve strojově čitelné podobě, ale také je tiskl na jehličkové tiskárně v horní části každé karty ve formátu konvenční, člověkem čitelná forma. Programátoři IBM tak mohli číst, vkládat, mazat a přesouvat řádky kódu fyzickým pohybem děrných štítků v balíčku. S děrnou páskou to již nebylo možné, a to vedlo k potřebě editace v reálném čase.

Jedna z prvních verzí editoru pro PDP-1 se jmenovala „Drahý psací stroj“. Napsal Steven Piner, byl to základní řádek orientovaný editor, který postrádal dokonce funkci vyhledávání a nahrazování textu. Jeho název byl vybrán jako parodie na dřívější editorský titul s názvem „Kolosální psací stroj“. Dokonce i v té době mohly úpravy v reálném čase ušetřit spoustu času na ladění. Dalším programem napsaným aktivními uživateli PDP-1 byl „Expensive Desk Calculator“, pojmenovaný v podobném stylu.

Příklady kódu

Příklad kódu Vysvětlení
ER soubor $ otevřít soubor pro čtení
[ q … ] q zatlačte na zásobník ... vysuňte registr Q ze zásobníku (operaci lze provést s číslem, textem nebo kódem)
< kód > opakování smyčky; existují kódy pro další , přerušení , pokračování atd.
n " X pak-kód | else-kód podmíněný operátor (X je kontrolovaný typ)

Příklady programů

Příklad 1

!START! j 0aua! skok na začátek, načtěte první znak do registru A ! !POKRAČOVÁNÍ! l 0aub ! načtěte první znak dalšího řádku do registru B ! qa-qb"g xa k -l ga 1uz ' ! pokud A>B, přepněte řádek a nastavte příznak v registru Z ! qbua! nalož B do A! l z-."g -l @o/CONT/ ' ! návrat na začátek cyklu, pokud je ve vyrovnávací paměti alespoň jeden řádek! qz"g 0uz @o/START/ ' ! opakujte, pokud došlo k přepnutí během předchozí iterace!

Příklad 2

Toto je příklad jazykového tlumočníka Brainfuck napsaného v TECO. Funguje tak, že spustí aktuální vyrovnávací paměť jako program Brainfuck a demonstruje možnosti editoru.

@^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/cs d/'!end!QI+1UI(.-Z)"=.=@^a/END/^c^c'C>

Poznámky

  1. The Glorious Horror of TECO  ( 30. listopadu 2010). Archivováno z originálu 10. července 2013.
  2. GNU Emacs FAQ . Odkud pochází název „Emacs“?  (anglicky) . Archivováno z originálu 2. září 2013.
  3. Dokumentace k systému HP OpenVMS. Archivováno 13. června 2011 na Wayback Machine Jak přivolat TECO.

Odkazy