Введение
Язык программирования (1964) также называют языком обработки строк. Акцент на строках как таковых настолько силен, что TRAC предоставляет механизмы для обработки собственных синтаксических символов языка как в их синтаксических ролях, так и как любых других символов, а самомодифицирующийся код ощущается скорее как естественное следствие типичных приемов программирования на TRAC, чем как специальная функция. TRAC, как и APL или LISP, является языком, ориентированным на выражения (в отличие от более распространенных языков, ориентированных на процедуры), но, в отличие от APL, в нем полностью отсутствуют операторы. По большинству параметров это пример чисто функционального программирования. TRAC является гомоиконическим. TRAC, как и LISP, имеет синтаксис, который обычно характеризуется наличием множества уровней вложенных скобок. Основным источником вдохновения для TRAC послужили три работы Дугласа Макилроя.
also called a string processing language. The emphasis on strings as strings is so strong that TRAC provides mechanisms for handling the language's own syntactic characters either in their syntactic roles or like any other character, and self modifying code has more the feel of a natural consequence of typical TRAC programming techniques than of being a special feature. TRAC is, like APL or LISP, an expression oriented language (in contrast to more typical procedure oriented languages), but unlike APL, it completely lacks operators. In most respects, it is a case of pure functional programming. TRAC is homoiconic. TRAC has in common with LISP a syntax that generally involves the presence of many levels of nested parentheses. The main inspiration for TRAC came from three papers by Douglas McIlroy.
Интеллектуальная собственность
Муэрс запатентовал название 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 при создании фильмов, включая «Последний звёздный боец».