Введение

Язык программирования (1964) также называют языком обработки строк. Акцент на строках как таковых настолько силен, что TRAC предоставляет механизмы для обработки собственных синтаксических символов языка как в их синтаксических ролях, так и как любых других символов, а самомодифицирующийся код ощущается скорее как естественное следствие типичных приемов программирования на TRAC, чем как специальная функция. TRAC, как и APL или LISP, является языком, ориентированным на выражения (в отличие от более распространенных языков, ориентированных на процедуры), но, в отличие от APL, в нем полностью отсутствуют операторы. По большинству параметров это пример чисто функционального программирования. TRAC является гомоиконическим. TRAC, как и LISP, имеет синтаксис, который обычно характеризуется наличием множества уровней вложенных скобок. Основным источником вдохновения для TRAC послужили три работы Дугласа Макилроя.

Интеллектуальная собственность

Муэрс запатентовал название TRAC, чтобы сохранить контроль над определением языка, что было необычным и новаторским шагом для того времени. В какой-то момент он подал в суд на DEC за нарушение прав интеллектуальной собственности, утверждая, что контракт на поставку мини-компьютера с интерпретатором TRAC нарушает его права. "В первом выпуске журнала Dr. Dobb’s Journal, одного из первых изданий в области персональных компьютеров, вышла резкая редакционная статья против Муэрса и его стремления взимать плату за использование его языка программирования". С тех пор это название несколько раз использовалось для различных, не связанных между собой проектов в сфере информационных технологий, включая современную систему управления проектами с открытым исходным кодом Trac.

Влияние и использование

TRAC позже был реализован на PDP 8, PDP 10 и PDP 11. Существуют различные языки, вдохновленные TRAC. Чтобы избежать проблем с Муэрсом, они переименовывали примитивы и/или использовали другие метасимволы. В случае SAM76, по словам Клода Кагана, примитивы были добавлены «потому что TRAC – это детский лепет». В случае MINT примитивы были добавлены для обеспечения доступа к сложным средствам редактирования текста. Одним из воспринимаемых недостатков TRAC была недостаточная расширяемость: некоторые примитивные функции TRAC чувствительны к разнице между нулевым аргументом (символом с кодом ноль) и отсутствующим (неопределенным) аргументом, но пользовательская функция не может провести такое различие после последнего ненулевого аргумента. SAM76 был языком, подобным TRAC, который устранил это ограничение. Расс Нельсон реализовал язык расширения Emacs под названием MINT (MINT Is Not TRAC). Этот язык используется редактором FreeDOS FreeMACS. Джон Уокер (программист) реализовал встраиваемую библиотеку языка расширения DIESEL (Dumb Interpretively Evaluated String Expression Language) изначально для обработки макросов меню в AutoCAD. TRAC использовался компанией FTP Software в своем продукте PC/TCP в качестве языка скриптов для управления модемом. TRAC также использовался в качестве фронтенда для рендерера Cray от Digital Productions при создании фильмов, включая «Последний звёздный боец».