Парадигма | Мультипарадигма : объектно-ориентированный, императивный, функциональный, мета |
---|---|
Семейство | Lisp |
Разработано | Джонатаном А. Рисом. Норман И. Адамс |
Разработчики | Джонатан А. Рис. Норман И. Адамс |
Впервые появилось | 1982; 38 лет назад (1982 г.) |
Окончательная версия | 3.0 / 1 августа 1984 г.; 36 лет назад (1984-08-01) |
Печатная дисциплина | динамический, сильный |
Платформа | Кросс-платформенный |
OS | Кросс-платформенный |
Веб-сайт | mumble.net / ~ jar / tproject |
Под влиянием | |
Схема | |
Под влиянием | |
EuLisp, Джоуль |
Программирование language T- это диалект языка Scheme, разработанный в начале 1980-х Джонатаном А. Рисом, Кентом М. Питманом и Норманом И. Адамсом. Йельского университета в качестве эксперимента по разработке и реализации языка.
Целью T является проверка тезиса, разработанного Гаем Л. Стилом-младшим и Джеральдом Джей Сассманом в их серии статей о Схеме: Scheme может использоваться в качестве основы для практического языка программирования исключительной выразительной мощности, и что реализации Scheme могут работать лучше, чем другие системы Lisp, и могут конкурировать с реализациями. языков программирования, таких как C и BLISS, которые обычно считаются более эффективными, чем Lisp на традиционных архитектурах машин. Большая часть этого происходит с помощью оптимизирующего компилятора с именем Orbit.
T содержит некоторые функции, которых не хватает современной схеме. Например, T является объектно-ориентированным и имеет первоклассные среды, называемые локали, которые можно изменять нелокально и использовать в качестве модульной системы. У T есть несколько дополнительных специальных форм для отложенного вычисления и управления потоком, а также эквивалент Common Lisp setf. T, как и Scheme, поддерживает call-with-current-continue (call / cc), но также имеет более ограниченную форму, называемую catch
. Из руководства T гипотетическая реализация cons
может быть такой:
(пара определения-предиката?) (Define-settable-operation (car pair)) (define-settable -операция (пара cdr)) (define (cons the-car the-cdr) (object nil ((pair? self) t) ((car self) the-car) ((cdr self) the-cdr) ((( setter car) self new-car) (set the-car new-car)) (((setter cdr) self new-cdr) (set the-cdr new-cdr))))
Этот пример показывает, что объекты в T тесно связаны с закрытием и передачей сообщений. Примитив с именем join
объединяет два объекта, обеспечивая нечто похожее на наследование.
T был перенесен на многие аппаратные платформы и операционные системы, в том числе: