5
是否有任何語言使用任意邏輯編程來執行編譯時優化?使用邏輯編程優化的語言
我在尋找一種語言,使你做這樣的事情的一個例子:
- 定義任意謂詞,例如
is-idempotent?
- 告訴編譯器
f(f(x))
等於f(x)
如果is-idempotent?
功能是用於f
- 真指定
is-idempotent?
各種功能(可能是間接的,例如,由其它的邏輯語句暗示) - 有編譯器執行基於最佳化它知道的謂詞/優化
是否有任何語言使用任意邏輯編程來執行編譯時優化?使用邏輯編程優化的語言
我在尋找一種語言,使你做這樣的事情的一個例子:
is-idempotent?
f(f(x))
等於f(x)
如果is-idempotent?
功能是用於f
is-idempotent?
各種功能(可能是間接的,例如,由其它的邏輯語句暗示)我想你想要的是一個program transformation system。
這些可以讓您定義適用於源代碼的規則,例如,優化代碼的algrebraic法則。
你會發現什麼是有各種各樣的問題。首先是處理範圍規則和語言中的副作用。其次是轉型的順序;它們的應用順序通常會產生截然不同的結果。
我認爲Maxima(和Mathematica)具有這種能力,但它在技術上不是一種編譯語言 –
'MBase'框架正在使用嵌入式Prolog進行一些分析和優化。 –