「Text Editor and Corrector」の版間の差分

削除された内容 追加された内容
m編集の要約なし
14行目:
TECOは[[1963年]]ごろ、マサチューセッツ工科大学のダニエル・マーフィー<ref>{{lang-en-short|Daniel L. Murphy}}</ref>が[[PDP-1]]向けに開発した。当時彼が使えるPDP-1(2台)は別の部門のもので、これらにプログラムのソースコードを供給するには紙テープを使用する必要があった。一方、[[IBM]]の[[メインフレーム]]では[[パンチカード]]にソースコードを1行ずつパンチすることができ、カードの上端には人間が読める内容が印字されるようになっていた。このため、IBMのマシンでプログラムを書く際には、カードを並べ替えたり、削除したり、挿入したりといったことが手作業で可能だった。しかし、紙テープにはそのような機能が一切なく、そこからオンライン編集の必要性が生まれた。
 
PDP-1用の初期のエディタは「高価なタイプライタ」<ref>{{lang-en-short|expensive typewriter}}</ref>と呼ばれていた。作者はステフェン・ピナー<ref>{{lang-en-short|Stephen D. Piner}}</ref>で、[[ラインエディタ]]としての基本的な機能しか備えておらず、検索・置換機能も持っていなかった。その名称は同じようにPDP-1向けに開発された「巨大なタイプライタ」<ref>{{lang-en-short|colossal typewriter}}</ref>と似たような皮肉である。当時のオンラインエディタは、デバッグ時間を大幅に短縮する手段であった。
 
TECOはPDP-1をより効率的に活用することを目的としていた。マニュアルを見てみると、[[コンソール]]を使ってCPU時間を占有して編集を行うよりも、バッチ的にテキスト編集を行うコマンド列を紙テープで用意して適用することを指向していたことがわかる。つまり、編集対象の紙テープと編集コマンドの紙テープをPDP-1にセットして読み込ませ、TECOを実行して編集結果を再び紙テープに出力する。その後、アセンブラをロードして実行する。この間、オンライン編集による時間の浪費は発生しない。
20行目:
TECOの当時としては洗練されていた検索機能は、オフラインのFlexowriter端末では行番号が印字されず、編集内容でしか場所を指定できないという事情が影響している。各種ループ機能や条件分岐は、編集コマンドの紙テープで十分な編集機能を発揮するために必要とされたのである(このため、TECOは言語として[[チューリング完全]]となった)。編集テープをなるべく短くするため、各編集コマンドはなるべく短くなるように設定された。
 
編集テープは一種のプログラムであり、他のプログラムと同様にデバッグを必要とする。従って、バッチ的な編集という当初の目的は、ちょっとした検索・置換でもさらなるデバッグを要するという問題に陥った。結局、TECOはExpensive Typewriter「高価なタイプライタ」のようにオンライン編集に使われるようになった(とは言っても、TECOの方が機能が豊富で編集が容易であった)。最初のPDP-1バージョンは画面表示がなく、編集の途中の状態を見るには、編集テープ内に編集対象テキストをコンソールのタイプライタに印字するコマンドを挿入するしかなかった。
 
== TECO使用例 ==