Jump to content

TRAC (язык программирования)

ПРОФ
Парадигма макропроцессор общего назначения
Разработано Кэлвин Мурс
Впервые появился 1964
Стабильная версия
Т2001 [1] / 17 ноября 2001 г .; 22 года назад ( 17 ноября 2001 ) [2]
Под влиянием
Макро SAP [3]
Под влиянием
SAM76 , ML/I [3]

TRAC (для и ) компиляции расчета текста разработанный PDP Язык это язык программирования, в 1959–1964 годах Кэлвином Мурсом и впервые реализованный на -1 в 1964 году Л. Питером Дойчем . [4] Это был один из трех «первых языков», рекомендованных Тедом Нельсоном в Computer Lib . TRAC T64 использовался как минимум до 1984 года, когда Мурс обновил его до TRAC T84. [4]

Описание языка

[ редактировать ]

TRAC — это чисто текстовый язык, своего рода макроязык . В отличие от традиционных специальных макроязыков того времени, например, используемых в ассемблерах, TRAC хорошо спланирован, последователен и во многих смыслах завершен. Он имеет явные операторы ввода и вывода, в отличие от типичного неявного ввода-вывода на самом внешнем макроуровне, что делает его одновременно более простым и универсальным, чем старые макроязыки.

Он также отличается от традиционных макроязыков тем, что числа TRAC представляют собой строки цифр, а целочисленная арифметика (без определенных ограничений на максимальные значения) обеспечивается посредством встроенных («примитивных») функций. Возможно, одним из аспектов его полноты является то, что концепция ошибки ограничивается такими событиями, как нехватка файлового пространства и запрос расширения строки, длина которой превышает рабочую память интерпретатора; то, что на многих языках было бы описано как незаконные операции, в TRAC рассматривается путем определения результата (часто нулевой строки) для каждой возможной комбинации строк аргументов функции.

TRAC — это язык обработки текста, [5] также называется языком обработки строк. [6]

Акцент на строках как на строках настолько силен, что TRAC предоставляет механизмы для обработки собственных синтаксических символов языка либо в их синтаксической роли, либо как любой другой символ, а самомодифицирующийся код больше напоминает естественное следствие типичных методов программирования TRAC, чем быть особенной особенностью.

TRAC, как и APL или LISP , является языком, ориентированным на выражения (в отличие от более типичных процедурно-ориентированных языков), но в отличие от APL в нем полностью отсутствуют операторы. Во многих отношениях это случай чистого функционального программирования .

TRAC гомоиконичен . [7] [8] [9]

TRAC и LISP имеют общий синтаксис, который обычно предполагает наличие многих уровней вложенных круглых скобок.

Основным источником вдохновения для TRAC послужили три статьи Дугласа Макилроя . [7] [10] [11] [12]

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

[ редактировать ]

Мурс зарегистрировал торговую марку TRAC, чтобы сохранить контроль над определением языка, что было необычным и новаторским шагом в то время. иск о нарушении прав интеллектуальной собственности В какой-то момент он подал против DEC , утверждая, что контракт на поставку мини-компьютера с интерпретатором TRAC нарушает его права. «В первом выпуске « Журнала доктора Добба» , одной из первых публикаций в области персональных компьютеров, содержится язвительная редакционная статья, направленная против Муерса и его жадности в попытках взимать с людей плату за его компьютерный язык». [13] [14] С тех пор это имя несколько раз использовалось для несвязанных проектов в области информационных технологий , включая текущую с открытым исходным кодом систему управления проектами под названием Trac .

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

[ редактировать ]

Позже TRAC был реализован на PDP-8 , PDP-10 и PDP-11 .

TRAC вдохновил различные языки. Чтобы избежать проблем с Mooers, они переименовали примитивы и/или использовали другие метасимволы. В случае с SAM76 примитивы были добавлены, по словам Клода Кагана, «потому что TRAC — это детский лепет». В случае с MINT примитивы были добавлены, чтобы предоставить доступ к сложному механизму текстового редактора.

  • Одним из очевидных недостатков TRAC было отсутствие полной расширяемости: некоторые примитивные функции TRAC чувствительны к различию между нулевым (нулевым символом) аргументом и несуществующим (не ограниченным) аргументом, но помимо его последнего ненулевого аргумента пользователь -определенная функция не может провести различие. SAM76 был языком, подобным TRAC, который устранил это ограничение.
  • Расс Нельсон реализовал emacs под названием MINT ( MINT I s Not T язык расширения RAC ). Этот язык используется FreeDOS редактором FreeMACS .
  • Джон Уокер (программист) реализовал встраиваемую языковую библиотеку расширений DIESEL. [15] ( Язык тупых интерпретативно оцениваемых предназначенный первоначально строковых выражений , AutoCAD . для обработки макросов меню ) в [16]

TRAC использовался FTP Software в своем продукте для ПК/TCP в качестве языка сценариев модемного дозвона.

TRAC также использовался в качестве внешнего интерфейса в рендерере Digital Productions Cray для фильмов, включая «Последний звездный истребитель» .

Пример программы

[ редактировать ]

Это пример простой программы, которая запрашивает имя пользователя и существует, написанная на TRAC T64: [17]

#(DS,PROG.A,(
#(PS,(WHAT IS YOUR NAME?
))
#(DS,NAME,##(RS))
#(PS,(
GOODBYE))
))'

TRAC T84 использует немного другой синтаксис и другие имена для своих примитивов. Ниже приведен сценарий для вычисления чисел Фибоначчи, написанный на TRAC T84: [18]

:(s,fibo,(
:(ei,<1>, 1, 0,(
:(ei,<1>, 2, 1,(
:(aa, :(ri,fibo,:(as, <1>,1)),:(ri,fibo,:(as, <1>,2)))
))
))
))`
:(mw,fibo)'

См. также

[ редактировать ]
  1. ^ Спецификация языка программирования TRAC T2001 (в архиве)
  2. ^ TRAC T2001 на Sourceforge
  3. ^ Jump up to: а б «TRAC — человеко-машинный язык манипулирования строками» . HOPL: Интернет-историческая энциклопедия языков программирования . Архивировано из оригинала 13 августа 2009 года.
  4. ^ Jump up to: а б «Поставка кода — все, что нужно программисту» . Архивировано из оригинала 8 апреля 2001 г.
  5. ^ Дэвид Уолден. «Макровоспоминания, 1964–2013» . 2014.
  6. ^ Кэрол Леб Мир. «Сравнение обработки строк в четырех языках программирования» . 1972.
  7. ^ Jump up to: а б Мурс, Китай ; Дойч, LP (1965). «TRAC, язык обработки текста». Труды ACM '65 Материалы 20-й национальной конференции 1965 года . стр. 229–246. дои : 10.1145/800197.806048 . S2CID   40013081 .
  8. ^ Кей, Алан (1969). Реактивный двигатель (доктор философии). Университет Юты.
  9. ^ Клаас ван Шелвен. «Не говорите «гомоиконический»» .
  10. ^ Макилрой, доктор медицинских наук , Расширения макроинструкций языков компилятора. CACM 3, № 4 (1960), 214–220.
  11. ^ Иствуд, DE и Макилрой, доктор медицинских наук, Модификация макрокомпилятора SAP. Вычислительный центр Bell Telephone Laboratories, 1959 год.
  12. ^ Макилрой, доктор медицинских наук, Использование макросов SAP для управления символьными выражениями. Вычислительный центр Bell Telephone Laboratories (1960)
  13. ^ Мурс, Кальвин (22 июня 1993 г.). «Устное историческое интервью с Кэлвином Н. Мурсом и Шарлоттой Д. Мурс» . Институт Чарльза Бэббиджа .
  14. ^ «Журнал доктора Добба - Том 1» . 1976.
  15. ^ https://www.fourmilab.ch/diesel/
  16. ^ https://www.fourmilab.ch/nav/topics/comComponents.html#diesel
  17. ^ Руководство для начинающих по языку TRAC (1972) (в архиве) Кэлвина Н. Мурса.
  18. ^ Информационная страница TRAC (в архиве) в The History of Computing Project с небольшим примером кода и фотографией К.М. Мурса.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ef0c3b716ebac32ab3c010602a0462ae__1721913960
URL1:https://arc.ask3.ru/arc/aa/ef/ae/ef0c3b716ebac32ab3c010602a0462ae.html
Заголовок, (Title) документа по адресу, URL1:
TRAC (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)