Языки, которые оптимизируют логическое программирование использования

Есть ли какие-либо языки, которые выполняют оптимизацию времени компиляции, используя произвольное логическое программирование?

Я ищу пример языка, который позволит вам сделать что-то как:

  • Define an arbitrary predicate, e.g. is-idempotent?
  • Tell the compiler that f(f(x)) is equal to f(x) if the is-idempotent? function is true for f
  • Specify is-idempotent? for various functions (possibly indirectly, e.g. implied by other logic statements)
  • Have the compiler perform optimisations based on the predicates/optimisations that it is aware of
5
nl ja de
MBase структура использует вложенный Пролог к некоторому анализу и оптимизационным проходам.
добавлено автор SK-logic, источник
Я думаю, что у Максимумов (и Mathematica) есть эта способность, но it' s технически не собранный язык
добавлено автор John Dvorak, источник

1 ответы

Я думаю, что вы хотите, a система преобразования программы.

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

То, что вы обнаружите, - то, что есть множество проблем. Первое обращается с правилами обзора и побочными эффектами на языках. Второе упорядочивает преобразований; заказ, в котором они применяются часто, приводит к радикально различным результатам.

2
добавлено