Открыть сервис

Текстовый редактор RUNOFF

RUNOFF — это одна из первых компьютерных программ для подготовки текстовых документов, разработанная в 1964 году для операционной системы CTSS (Compatible Time-Sharing System) в Массачусетском технологическом институте (MIT). Она представляла собой форматтер текста, который обрабатывал исходный файл с командами разметки и создавал отформатированный вывод на печатающее устройство. RUNOFF является прямым предшественником современных систем вёрстки и языков разметки, таких как troff, nroff, TeX и Markdown.

История

Создание в MIT

Программа RUNOFF была написана Джерри Сальцером (Jerry Saltzer) в 1964 году для операционной системы CTSS. Изначально она предназначалась для форматирования текста на принтере, подключённом к мэйнфрейму IBM 7094. Название программы происходит от фразы «run off a copy» («сделать копию»), что отражало её основное назначение — подготовку документа к печати.

Исходный код RUNOFF был написан на ассемблере MAD (Michigan Algorithm Decoder) и занимал около 200 строк. Программа работала в пакетном режиме: пользователь создавал текстовый файл с командами разметки (например, .center, .skip, .fill), а затем запускал RUNOFF, который обрабатывал файл и выводил результат.

Развитие и влияние

В 1965 году Боб Моррис (Bob Morris) и Дуг Макилрой (Doug McIlroy) портировали RUNOFF на новую операционную систему Multics, где она была переписана на языке PL/I. Эта версия получила название roff, а затем была адаптирована для UNIX Джо Оссанной (Joe Ossanna) в начале 1970-х годов. Версия для UNIX, известная как nroff (для текстовых терминалов) и troff (для фотонаборных устройств), стала стандартным инструментом форматирования в ранних системах UNIX.

RUNOFF также оказал прямое влияние на создание системы TeX Дональдом Кнутом (1978) и языка разметки SGML (1986), который лёг в основу HTML и XML.

Принцип работы

Режим командной строки

RUNOFF не имел графического интерфейса и работал исключительно в текстовом режиме. Пользователь готовил исходный файл, содержащий обычный текст и команды, начинающиеся с точки (.). Команды указывали программе, как форматировать текст: выравнивание, отступы, межстрочные интервалы, номера страниц и т.д.

Пример типичного входного файла для RUNOFF:

`` .center Заголовок документа .skip 2 .fill Это пример текста, который будет автоматически выровнен по ширине. .spacing 2 Между строками будет двойной интервал. .page ``

Программа обрабатывала этот файл и создавала готовый к печати документ.

Основные команды

RUNOFF поддерживал набор базовых команд, большинство из которых сохранилось в последующих системах:

Обработка макросов

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

Применение

Научные и технические документы

RUNOFF активно использовался в академической среде для подготовки научных статей, отчётов и диссертаций. Его способность автоматически нумеровать страницы, выравнивать текст и вставлять колонтитулы делала его незаменимым инструментом для исследователей.

Документация программного обеспечения

В 1970-1980-х годах RUNOFF и его наследники (nroff/troff) были стандартом для написания документации к операционным системам UNIX и другим программным продуктам. Многие руководства (man pages) до сих пор используют формат, основанный на этих системах.

Подготовка книг и брошюр

Хотя RUNOFF не предназначался для сложной вёрстки, он позволял создавать книги и брошюры с базовым форматированием. Например, знаменитая книга «The C Programming Language» Брайана Кернигана и Денниса Ритчи (1978) была набрана с помощью troff.

Ограничения

Отсутствие WYSIWYG

Главным недостатком RUNOFF было отсутствие режима «что видишь, то и получаешь» (WYSIWYG). Пользователь не мог видеть конечный результат до запуска программы, что приводило к многократным циклам правки и форматирования.

Сложность обучения

Для работы с RUNOFF требовалось знание команд разметки, что делало его малодоступным для неспециалистов. В отличие от визуальных редакторов, таких как Microsoft Word (появился в 1983 году), RUNOFF имел крутой порог входа.

Ограниченные возможности

RUNOFF не поддерживал графику, таблицы (в ранних версиях), сложные математические формулы или многоколоночную вёрстку. Эти функции появились только в его наследниках — troff и TeX.

Наследие

Влияние на языки разметки

RUNOFF считается первым языком разметки (markup language). Его идея — отделение содержания от представления — легла в основу SGML, HTML, XML и Markdown. Современные системы, такие как LaTeX и AsciiDoc, используют ту же концепцию.

Программное наследие

Исходный код RUNOFF для CTSS был утерян, но его идеи живут в современных инструментах. Например, утилита groff (GNU troff) до сих пор используется в UNIX-подобных системах для форматирования man-страниц и подготовки документов. В 2021 году была предпринята попытка восстановить оригинальный код RUNOFF по архивным записям, но полная реконструкция не удалась из-за отсутствия полной документации.

Культурное значение

RUNOFF стал символом эпохи мэйнфреймов и ранних систем разделения времени. Он демонстрирует, как простая идея — автоматизация форматирования текста — привела к созданию целого класса программ, изменивших способ создания документов.

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →