Text Editor and Corrector


TECO (МФА: [ˈtiːkoʊ]; первоначально акроним для англ. Tape Editor and COrrector, позже - Text Editor and COrrector) — текстовый редактор, первоначально разработанный в Массачусетском технологическом институте в 1960-x, после чего мог быть модифицирован «кем угодно»[1]. TECO был прямым предком Emacs, который изначально был реализован как макрос для TECO.[2]

TECO был не только текстовым редактором, но ещё и интерпретируемым языком программирования для манипуляции текстами. Различные программы (называемые макросами) для поиска и модификации текста делали редактор довольно мощным. В отличие от регулярных выражений, язык программирования был императивным (хотя некоторые версии и имели оператор OR для поиска подстрок).

Язык TECO на самом деле не имел строгого синтаксиса, каждый символ рассматривался как императивная команда, выполняющая определённое действие. Это действие может быть чтением последующих символов из потока программы (дающее эффект «строкового аргумента»), сменой положения «счётчика команд» (дающее эффект применения управляющих операторов) или помещением значений в стек значений (дающее эффект вложенных скобок). Но ничто не предотвращает переход в середину комментария, так как у языка нет строгого синтаксиса и нет грамматического разбора.

В классическом эссе о программировании «Настоящие программисты не используют Паскаль», говорится о том, что распространённой игрой для приверженцев редактора TECO было ввести своё имя в качестве последовательности команд, и посмотреть, что произойдёт. В том же эссе был впервые упомянут акроним YAFIYGI, означающий «You Asked For It You Got It» (с англ. — «ты попросил об этом — ты это получил») и ставший антитезисом WYSIWYG («What You See Is What You Get», «что видишь, то и получишь»).

Ныне известный редактор Emacs был изначально реализован на TECO. Поздние версии Emacs, сначала Multics Emacs, а затем - GNU Emacs, были реализованы на языках Lisp и C соответственно. TECO стал известным, начиная с реализации для компьютера-мейнфрейма PDP-6 фирмы Digital Equipment Corporation, разработанной в МТИ в 1964 году. Эта реализация непрерывно отображала текст на ЭЛТ-дисплее и использовалась в качестве интерактивного редактора (хотя это не было изначально предполагавшимся способом его использования).

TECO был доступен для нескольких операционных систем и компьютеров, включая PDP-1, Incompatible Timesharing System (ITS) на PDP-6 и мейнфрейме PDP-10, и ОС TOPS-10 и TOPS-20 на компьютере PDP-10. Версия редактора TECO поставлялась со всеми операционными системами фирмы DEC. Версия, поставлявшаяся с RT-11, могла управлять графическим дисплеем GT40, хотя версия, поставлявшаяся с RSTS/E, была реализована как многопользовательская система времени выполнения и могла быть использована в качестве полноценной рабочей среды, так что фактически пользователь никогда не выходил из среды TECO.