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

Compiler construction 使用逻辑编程进行优化的语言,compiler-construction,language-agnostic,programming-languages,logic-programming,Compiler Construction,Language Agnostic,Programming Languages,Logic Programming,是否有使用任意逻辑编程执行编译时优化的语言 我正在寻找一种语言的示例,它将使您能够执行以下操作: 定义任意谓词,例如,是幂等的? 如果是幂等的,告诉编译器f(f(x))等于f(x) 为各种函数指定是幂等的?(可能是间接的,例如由其他逻辑语句暗示) 让编译器根据其知道的谓词/优化执行优化 我想你想要的是一份工作 这些可以让您定义应用于源代码的规则,例如用于优化代码的algrebraic法则 你会发现有各种各样的问题。第一个是在langauges中处理范围规则和副作用。第二个是转换的顺序;它们的应

是否有使用任意逻辑编程执行编译时优化的语言

我正在寻找一种语言的示例,它将使您能够执行以下操作:

  • 定义任意谓词,例如,
    是幂等的?
  • 如果
    是幂等的,告诉编译器
    f(f(x))
    等于
    f(x)
  • 为各种函数指定
    是幂等的?
    (可能是间接的,例如由其他逻辑语句暗示)
  • 让编译器根据其知道的谓词/优化执行优化

我想你想要的是一份工作

这些可以让您定义应用于源代码的规则,例如用于优化代码的algrebraic法则


你会发现有各种各样的问题。第一个是在langauges中处理范围规则和副作用。第二个是转换的顺序;它们的应用顺序通常会产生完全不同的结果。

我认为Maxima(和Mathematica)有这种能力,但从技术上讲,它不是一种编译语言
MBase
框架使用嵌入式Prolog进行一些分析和优化过程。