Text Editor and Corrector(TECO)は、1960年代にマサチューセッツ工科大学 (MIT) で開発されたテキストエディタ。当初の名称は "[paper] Tape Editor and COrrector" であった。TECOとその派生エディタは、vi(後にUNIXオペレーティングシステムに搭載)やEmacsエディタが普及する以前は広く使われていた。Emacs は TECO の直系の子孫である(TECO用マクロ集の名称だった)。TECO の構文は複雑であり、テキスト操作の汎用インタプリタ型プログラミング言語としても使えるようになっていた。マクロ機能は非常に強力で、今日では正規表現と呼ばれるものと対抗できるマッチング機能を備えていた。ほとんど全ての文字にコマンドが割り当てられており、適当な文字列も(必ずしも有益とは言えないが) TECO プログラムと解釈することができる。当時よく行われたゲームとして、TECO で何かのファイルを編集していて、自分の名前をコマンド列として与えたときに何が起きるかを見てみるというものがあった。リチャード・ストールマンは、当初 TECO 上で Emacs を実装した。その後、Multics Emacs や GNU Emacs は LISPおよびEmacs Lispで実装された。TECO を有名にしたのは、1964年に MIT の Project MAC で実装された DEC PDP-6 上のものである。この実装では画面上に編集対象のテキストが継続的に表示され、対話型のオンラインエディタとして使われた。ただし、これは当初の実装とは異なるし、当初想定された使い方でもない。その後の TECO は DECの端末(VT100など)でフルスクリーン表示が可能となった。TECO はいくつかのオペレーティングシステムやコンピュータで利用可能であった。PDP-1、PDP-6およびPDP-10上のIncompatible Timesharing System(ITS)、PDP-10上のTOPS-10およびTOPS-20などである。DECの各種オペレーティングシステムに対応したバージョンもあり、RT11用バージョンでは GT40 グラフィックス端末で利用可能だったり、RSTS/E 用バージョンでは一種のオペレーティング環境を提供していて、TECO の中であらゆる操作が可能となっていた。ヒューレット・パッカードはコンパックを経由してDECを取得しており、現在も OpenVMS には TECO が付属している。DEC がPDP-10向けに配布した派生バージョンは現在もインターネット上で入手可能であり、MS-DOS/Microsoft Windows環境にも(部分的に)実装した例がいくつかある。TECO は1963年ごろ、MIT の Daniel L. Murphy が PDP-1 向けに開発した。当時彼が使えるPDP-1(2台)は別の部門のもので、これらにプログラムのソースコードを供給するには紙テープを使用する必要があった。一方、IBMのメインフレームではパンチカードにソースコードを1行ずつパンチすることができ、カードの上端には人間が読める内容が印字されるようになっていた。このため、IBMのマシンでプログラムを書く際には、カードを並べ替えたり、削除したり、挿入したりといったことが手作業で可能だった。しかし、紙テープにはそのような機能が一切なく、そこからオンライン編集の必要性が生まれた。PDP-1用の初期のエディタは Expensive Typewriter(「高価なタイプライタ」)と呼ばれていた。作者は Stephen D. Piner で、ラインエディタとしての基本的な機能しか備えておらず、検索・置換機能も持っていなかった。その名称は同じようにPDP-1向けに開発された Colossal Typewriter(「巨大なタイプライタ」)と似たような皮肉である。当時のオンラインエディタは、デバッグ時間を大幅に短縮する手段であった。TECO は PDP-1 をより効率的に活用することを目的としていた。マニュアルを見てみると、コンソールを使ってCPU時間を占有して編集を行うよりも、バッチ的にテキスト編集を行うコマンド列を紙テープで用意して適用することを指向していたことがわかる。つまり、編集対象の紙テープと編集コマンドの紙テープをPDP-1にセットして読み込ませ、TECO を実行して編集結果を再び紙テープに出力する。その後、アセンブラをロードして実行する。この間、オンライン編集による時間の浪費は発生しない。TECO の当時としては洗練されていた検索機能は、オフラインの Flexowriter 端末では行番号が印字されず、編集内容でしか場所を指定できないという事情が影響している。各種ループ機能や条件分岐は、編集コマンドの紙テープで十分な編集機能を発揮するために必要とされたのである(このため、TECOは言語としてチューリング完全となった)。編集テープをなるべく短くするため、各編集コマンドはなるべく短くなるように設定された。編集テープは一種のプログラムであり、他のプログラムと同様にデバッグを必要とする。従って、バッチ的な編集という当初の目的は、ちょっとした検索・置換でもさらなるデバッグを要するという問題に陥った。結局、TECO は Expensive Typewriter のようにオンライン編集に使われるようになった(とは言っても、TECO の方が機能が豊富で編集が容易であった)。最初の PDP-1 バージョンは画面表示がなく、編集の途中の状態を見るには、編集テープ内に編集対象テキストをコンソールのタイプライタに印字するコマンドを挿入するしかなかった。hello.c というファイルの内容が以下のようになっているとする:これについて、"Hello" の代わりに "Goodbye" と表示したいとする。以下はそれを行うときのTECOのセッション例である。"*" はプロンプト、"$" は ESC のエコー表示である:プログラミング言語としてのTECOの文法は奇妙だが、非常に強力で、そのクローンはMS-DOSやUNIX上でいまだに利用可能である。TECOのコマンドは文字(制御文字もある)であり、プロンプトはアスタリスク("*")である。ESCキーを2回押下することでコマンドが完了し、画面にはドル記号("$$")で表示される。TECOプログラムでは、大文字/小文字は区別されず、空白は無視される。ただし、タブは挿入コマンドであり、無視されない。バッファ内の各行を行の先頭の文字に従ってソートする。この例ではGoto文を使用している。例1と同じことをするが、構造化プログラミングを使用している。TECOで書かれたBrainfuckインタプリタの例である。バッファの内容を Brainfuckプログラムとして実行する。
出典:wikipedia
LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。