5

是否有任何語言使用任意邏輯編程來執行編譯時優化?使用邏輯編程優化的語言

我在尋找一種語言,使你做這樣的事情的一個例子:

  • 定義任意謂詞,例如is-idempotent?
  • 告訴編譯器f(f(x))等於f(x)如果is-idempotent?功能是用於f
  • 真指定is-idempotent?各種功能(可能是間接的,例如,由其它的邏輯語句暗示)
  • 有編譯器執行基於最佳化它知道的謂詞/優化
+0

我認爲Maxima(和Mathematica)具有這種能力,但它在技術上不是一種編譯語言 –

+0

'MBase'框架正在使用嵌入式Prolog進行一些分析和優化。 –

回答

2

我想你想要的是一個program transformation system

這些可以讓您定義適用於源代碼的規則,例如,優化代碼的algrebraic法則。

你會發現什麼是有各種各樣的問題。首先是處理範圍規則和語言中的副作用。其次是轉型的順序;它們的應用順序通常會產生截然不同的結果。