Jump to content

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

ТХL
Парадигма Сопоставление с образцом и переписывание терминов
Разработано Чарльз Халперн-Хэм
Джеймс Корди
Разработчик Джеймс Корди
Чарльз Халперн-Хэм
Ян Кармайкл
Эрик Промислоу
Веб-сайт www .txl .что

TXL специального назначения — это язык программирования , первоначально разработанный Чарльзом Халперном-Хаму и Джеймсом Корди в Университете Торонто в 1985 году. Аббревиатура «TXL» первоначально обозначала «Turing eXtender Language» в честь первоначального назначения языка, его спецификации и быстрого прототипирования. вариантов и расширений языка программирования Тьюринга , но больше не имеет какой-либо значимой интерпретации.

Modern TXL специально разработан для создания, управления и быстрого прототипирования языковых описаний, инструментов и приложений с использованием преобразования исходного кода. Это гибридный функциональный / основанный на правилах язык, использующий функциональное программирование первого порядка на более высоком уровне и переписывание терминов на более низком уровне. Формальная семантика и реализация TXL основаны на формальном переписывании терминов , но структуры терминов в значительной степени скрыты от пользователя из-за примерного стиля описания шаблонов.

Каждая программа TXL имеет два компонента: описание исходных структур, подлежащих преобразованию, заданное как (возможно неоднозначная) контекстно-свободная грамматика с использованием расширенной формы Бэкуса-Наура ; и набор правил преобразования дерева, заданных с использованием пар шаблон/замена, объединенных с использованием функционального программирования первого порядка. TXL разработан, чтобы предоставить программисту возможность явного контроля над интерпретацией, применением, порядком и обратным отслеживанием правил синтаксического анализа и перезаписи, позволяя выражать широкий спектр методов, основанных на грамматике, таких как гибкий синтаксический анализ.

Первый компонент анализирует входное выражение в дерево, используя сопоставление с образцом . Второй компонент использует переписывание терминов аналогично Yacc для получения преобразованного вывода.

TXL чаще всего используется в задачах анализа программного обеспечения и реинжиниринга, таких как восстановление проекта , а также при быстром прототипировании новых программирования языков и диалектов .

Пузырьковая сортировка [1]

[ редактировать ]
%Syntax specification
define program
   [repeat number]
end define
%Transformation rules
rule main
   replace $ [repeat number]
       N1 [number] N2 [number] Rest [repeat number]
   where 
       N1 [> N2]
   by
       N2 N1 Rest
end rule

Факториал [2]

[ редактировать ]
%Syntax specification
define program
   [number]
end define
%Transformation rules
function main
   replace [program]
       p [number]
   by
       p [fact][fact0]
end function
function fact
   replace [number]
      n [number]
   construct nMinusOne [number]
      n [- 1]
   where 
      n [> 1]
   construct factMinusOne [number]
      nMinusOne [fact]
   by
      n [* factMinusOne]
end function 
      
function fact0
 replace [number]
      0
 by
      1
end function

См. также

[ редактировать ]
  1. ^ «Архивная копия» . Архивировано из оригинала 21 мая 2005 г. Проверено 19 марта 2008 г. {{cite web}}: CS1 maint: архивная копия в заголовке ( ссылка )
  2. ^ «Архивная копия» . Архивировано из оригинала 26 августа 2005 г. Проверено 19 марта 2008 г. {{cite web}}: CS1 maint: архивная копия в заголовке ( ссылка )
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 04f1070e11ad660714fe29d36573a173__1658614380
URL1:https://arc.ask3.ru/arc/aa/04/73/04f1070e11ad660714fe29d36573a173.html
Заголовок, (Title) документа по адресу, URL1:
TXL (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)