Рефлексивный язык для символьных вычислений

Я ищу язык, который работает с программами, написанными на этом языке. Это язык, программы которого являются первичными (возможно, единственными) объектами этого языка.

Что-то вроде языка преобразования самопрограммы, сделанного исключительно с этой точки зрения.

Мотивация следующая:

Имея программу P1, предназначенную для вычисления Real -> Real, я хочу иметь программу P2, которая брала бы P1 и преобразовывала его в символическую производную (или первообразную) от P1. Очевидно, что P2 может не справиться должным образом с большинством входных данных.

Можно рассматривать это как сопоставление шаблонов с лямбда-выражениями. Зато очень удобное сопоставление с образцом.


person Yrogirg    schedule 09.04.2012    source источник
comment
Какие языки предлагает ваше исследование? Какие языки вы нашли, которые не совсем соответствуют всем требованиям, и почему?   -  person Marcin    schedule 09.04.2012
comment
@Marcin Я пробовал чистый, но его представление для отражения неуклюже. Например, if-then-else и охранники представлены отдельно.   -  person Yrogirg    schedule 09.04.2012
comment
Итак, обновите свой ответ соответственно.   -  person Marcin    schedule 09.04.2012


Ответы (2)


сюсюканье/схема/рэкет. или вы ищете что-то еще?

person alvin    schedule 09.04.2012

Я думаю, что деревья выражений C# (или кавычки F#). Они далеко не основные (или единственные) объекты этих языков, но они должны позволить вам сделать это хорошо.

person svick    schedule 09.04.2012