ПРОФ (для Т вн Р eckoning й С ompiling) Язык является языком программирования разработан между 1959-1964 от Calvin Mooers и впервые реализована на PDP-1 в 1964 г. Л. Питер Deutsch . [2] Это был один из трех «первых языков», рекомендованных Тедом Нельсоном в Computer Lib . TRAC T64 использовался по крайней мере до 1984 года, когда Mooers обновил его до TRAC T84. [2]
Парадигма | универсальный макропроцессор |
---|---|
Разработано | Кэлвин Мурс |
Впервые появился | 1964 г. |
Под влиянием | |
Макрос SAP [1] | |
Под влиянием | |
SAM76 , ML / I [1] |
Описание языка
TRAC - это чисто текстовый язык, своего рода макроязык . В отличие от традиционных специальных макроязыков того времени, таких как используемые в ассемблерах, TRAC хорошо спланирован, согласован и во многих смыслах завершен. Он имеет явные операторы ввода и вывода, в отличие от типичного неявного ввода-вывода на самом внешнем макроуровне, что делает его одновременно более простым и универсальным, чем старые макроязыки.
Он также отличается от традиционных макроязыков тем, что номера TRAC представляют собой строки цифр, а целочисленная арифметика (без конкретных ограничений на максимальные значения) обеспечивается с помощью встроенных («примитивных») функций. Возможно, одним из аспектов его полноты является то, что концепция ошибки ограничена такими событиями, как нехватка файлового пространства и запрос расширения строки, длина которой превышает размер рабочей памяти интерпретатора; то, что на многих языках может быть описано как незаконные операции, обрабатывается в TRAC путем определения результата (часто нулевой строки) для каждой возможной комбинации строк аргументов функции.
TRAC - это язык обработки текста [3], также называемый языком обработки строк. [4]
Акцент на строках как на строках настолько силен, что TRAC предоставляет механизмы для обработки собственных синтаксических символов языка либо в их синтаксических ролях, либо как любой другой символ, а самомодифицирующийся код больше воспринимается как естественное следствие типичных методов программирования TRAC, чем быть особенной.
TRAC, как и APL или LISP , является языком, ориентированным на выражения (в отличие от более типичных процедурно-ориентированных языков), но, в отличие от APL, в нем полностью отсутствуют операторы. В большинстве случаев это чисто функциональное программирование .
TRAC гомиконичен . [5] [6] [7]
TRAC имеет общий с LISP синтаксис, который обычно предполагает наличие множества уровней вложенных скобок.
Основное вдохновение для TRAC пришло из трех статей Дугласа Макилроя . [5] [8] [9] [10]
Интеллектуальная собственность
Мурс зарегистрировал торговую марку TRAC, чтобы сохранить контроль над определением языка, что было необычным и новаторским действием в то время. В какой-то момент он подал иск о нарушении прав интеллектуальной собственности против DEC , утверждая, что контракт на поставку мини-компьютера с переводчиком TRAC нарушает его права. «В первом выпуске журнала доктора Добба , одной из первых публикаций в области персональных компьютеров, есть язвительная редакционная статья против Муерса и его жадности в попытках обвинить людей в его компьютерном языке». [11] Однако товарный знак ( № 72301892 ) истек в 1992 году. С тех пор это имя использовалось несколько раз для несвязанных проектов информационных технологий , включая текущую систему управления проектами с открытым исходным кодом под названием Trac .
Влияние и использование
Позже TRAC был реализован на PDP-8 , PDP-10 и PDP-11 .
TRAC вдохновлялся разными языками. Чтобы избежать проблем с Муерсом, они переименовали примитивы и / или использовали другие метасимволы. В случае SAM76 примитивы были добавлены, по словам Клода Кагана, «потому что TRAC - это детский лепет». В случае MINT примитивы были добавлены, чтобы предоставить доступ к сложному механизму текстового редактора.
- одним очевидным недостатком TRAC было отсутствие полной расширяемости: некоторые примитивные функции TRAC чувствительны к различию между нулевым (нулевым символом) аргументом и несуществующим (без разделителей) аргументом, но, помимо последнего ненулевого аргумента, пользователь -определенная функция не может различить. SAM76 был языком, подобным TRAC, который устранил это ограничение.
- Расс Нельсон реализовал язык расширений emacs под названием MINT ( M INT I s N ot T RAC). Этот язык используется редактором FreeDOS FreeMACS .
TRAC использовался FTP Software в своем продукте PC / TCP в качестве языка сценариев программы набора номера модема.
TRAC также использовался в качестве интерфейса для рендерера Digital Productions Cray для фильмов, включая The Last Starfighter .
Пример программы
Скрипт TRAC T84 для вычисления чисел Фибоначчи: [12]
: (s, фибо, (: (ei, <1>, 1, 0, (: (ei, <1>, 2, 1, (: (aa,: (ri, fibo, :( as, <1>, 1)), :( ri, fibo, :( as, <1>, 2))))))))) `: (мв, фибо) '
Смотрите также
- TTM (язык программирования) , язык программирования, вдохновленный TRAC
Рекомендации
- ^ a b "TRAC - человеко-машинный язык, управляющий строкой" . HOPL: Интернет-историческая энциклопедия языков программирования . Архивировано из оригинального 13 августа 2009 года.
- ^ а б https://web.archive.org/web/20010408052535/http://tracfoundation.org/t64tech.htm
- ^ Дэвид Уолден. «Макро-воспоминания, 1964–2013» . 2014 г.
- ^ Кэрол Лоеб Мир. «Сравнение обработки строк на четырех языках программирования» . 1972 г.
- ^ а б Муерс, CN ; Дойч, LP (1965). "TRAC, язык обработки текста". Материалы ACM '65 Материалы 20-й национальной конференции 1965 года . С. 229–246. DOI : 10,1145 / 800197.806048 .
- ^ Кей, Алан (1969). Реактивный двигатель (PhD). Университет Юты.
- ↑ Клаас ван Шелвен. «Не говори« Гомоиконный »» .
- ^ Макилрой, доктор медицины , Макро-инструкции расширений языков компилятора. CACM 3, No. 4 (1960), 214-220.
- ^ Иствуд, DE и Макилрой, доктор медицины, Macro Compiler Modification of SAP. Вычислительный центр Bell Telephone Laboratories, 1959.
- ^ Макилрой, доктор медицины, Использование макросов SAP для управления символьными выражениями. Вычислительный центр Bell Telephone Laboratories (1960)
- ^ Муерс, Кальвин. "Устное интервью истории с Кэлвином Н. Мурсом и Шарлоттой Д. Мурс" . Институт Чарльза Бэббиджа .
- ^ Информационная страница TRAC в The History of Computing Project , с небольшим образцом кода и фотографией CM Mooers.
Внешние ссылки
- Фонд ПРОФ (из архива)
- TRAC, язык описания процедур для реактивной пишущей машинки в Коммуникациях ACM, том 9, выпуск 3, март 1966 г.
- Страница информации TRAC Эндрю Уокера
- Запись TRAC в энциклопедии компьютерных языков HOPL
- Проект внедрения TRAC на sourceforge .
- Устное историческое интервью с Келвином Н. Мурсом и Шарлоттой Д. Мурс в Институте Чарльза Бэббиджа . Интервью посвящено поиску информации и исследованиям языков программирования со времен Второй мировой войны до начала 1990-х годов.