Добрый день всем!
Французы (INRIA) уже около 20 лет разрабатывают язык программирования Tom,
основанный на сопоставлении с образцом. И не просто на сопоставлении, а
практически на рефальском отождествлении - в нём допустимо то, что мы
называем открытыми e-переменными и повторными e-переменными.
Язык статически типизированный, позволяет описывать алгебраические типы
данных. Является чем-то вроде препроцессора для ряда языков
программирования, вот как они это описывают:
<A Tom program is a host language program (namely C, Java, or Caml) extended
by several new constructs such as %match, %strategy, %include, %gom, or
backquote. Tom is a multi-language compiler, and therefore its syntax
depends on the host language syntax.>
Т.е. синтаксически что-то вроде Bison'а: в программе на Tom присутствуют
вставки кода целевого языка, внутри которого можно использовать тоже
некоторые специальные знаки.
Внимательно я этот язык не изучал, просто полистал руководства.
Собственно, главная страница проекта:
http://tom.loria.fr/wiki/index.php/Main_Page
Примеры <рефальского отождествления>:
http://tom.loria.fr/wiki/index.php/Tom-2.10:Language_Basics_
<http://tom.loria.fr/wiki/index.php/Tom-2.10:Language_Basics_-_Level_2>
-_Level_2
Нативная поддержка XML:
http <http://tom.loria.fr/wiki/index.php/Tom-2.10:XML>
://tom.loria.fr/wiki/index.php/Tom-2.10:XML
Скупое описание на Википедии:
https://en.wikipedia.org/wiki/Tom_(pattern_matching_language)
С уважением,
Александр Коновалов
 

Ответить