TECO

/tee´koh/, 名詞・動詞・廃語

  1. [元々は‘[paper] Tape Editor and COrrector’の頭字語。後に‘Text Editor and COrrector’]名詞。MITで開発され、ほぼ誰もが手を加えたテキストエディタ。すべての方言を含めれば、TECOはEMACS以前に使われた最も多産なエディタだったかもしれない。EMACSはこれを直接の祖先としている。プログラミング言語のような強力な機能と、口にできないほどhairyな構文で知られる。文字通り、あらゆる文字列が妥当なTECOプログラムである(おそらく有用ではないが)。よくあった遊びの一つは、人名に対応するTECOコマンドが何をするかを頭の中で割り出すことだった。

  2. 他動詞。元々は、TECOエディタを無限の変種のいずれかで使って編集すること(下記参照)。

  3. 他動詞・廃語。TECOが使っているエディタでないときでさえ編集すること!この用法はまれで、今では主に歴史的なものである。

TECOの難解さの一例として、次のような名前のリストを取るTECOプログラムを挙げる。

Loser, J. Random
Quux, The Great
Dick, Moby

これを姓のアルファベット順に並べ替え、それから姓を最後に回してコンマを取り除き、以下を生成する。

Moby Dick
J. Random Loser
The Great Quux

そのプログラムは

[1 J^P$L$$
J <.-Z; .,(S,$ -D .)FX1 @F^B $K :L I $ G1 L>$$

(ここで^Bは‘Control-B’(ASCII 0000010)を意味し、$は実際にはaltないしエスケープ(ASCII 0011011)文字である)。

実際、まさにこのプログラムが、最初のリストから二番目の並べ替え済みリストを生成するのに使われた。最初の試みにはbugがあった。GLS(著者)はうっかりF^Bの前の@を省いてしまっていたのだが、誰の目にも明らかにこれはWrong Thingである。二度目はうまく動いた。TECOのすべての機能を説明する余地はないが、^Pが‘sort’を意味し、J<.-Z; ... L>が‘各行に対して一度ずつ実行する’ための慣用的なコマンド列であることは興味深いかもしれない。

1991年半ば、TECOはEMACSにハッカー界の愛情を奪われ、ほぼ歴史の塵となっている。だがDECが採用した初期の(やや脳の一部を切除された)版の子孫は、いまだにVMSやいくつかのcruftyなPDP-11オペレーティングシステムに潜んでおり、より高度なMIT版の移植は今も一部の好古的関心の的になっている。retrocomputingwrite-only languageも参照。