使用逻辑编程进行优化的语言

5
有没有任何一种语言可以使用任意逻辑编程执行编译时优化?
我正在寻找一个示例语言,该语言将使您能够执行以下操作:
- 定义任意谓词,例如 `is-idempotent?` - 告诉编译器如果 `is-idempotent?` 函数对于 `f` 是真的,则 `f(f(x))` 等于 `f(x)` - 为各种函数指定 `is-idempotent?`(可能是间接的,例如由其他逻辑语句暗示) - 根据编译器所了解的谓词/优化来执行优化

我认为Maxima(和Mathematica)具有这种能力,但它在技术上不是一种编译语言。 - John Dvorak
MBase框架在某些分析和优化过程中使用了嵌入式Prolog。 - SK-logic
1个回答

2
我认为你想要的是一个程序转换系统
这些系统可以让你定义规则来应用于源代码,例如代数法则来优化代码。
你会发现有各种各样的问题。第一个问题是处理语言中的作用域规则和副作用。第二个问题是转换的顺序;它们被应用的顺序通常会产生截然不同的结果。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接