是否存在无法编译或未编译的解释代理语言



关于面向代理编程范式的三个标准:

  • 支持用于定义代理心理状态的逻辑系统
  • 用于编程代理的解释编程语言
  • 代理化过程,用于将代理程序编译为低级可执行系统(绑定到第二点(

是否存在未编译的解释编程语言据我所知,解释语言的全部目的是实现一种具有某些功能、语法等的新语言……但底层实现最终需要编译成低级别的东西,以便实际执行。

面向代理编程范式的第3点是否只是简单地说,仅仅从理论上定义一种语言,而不以可以编译成实际运行的低级代码的方式实现该语言是不够的?

是的,Jason被完全解释了。这是一个BDI代理平台。它还支持动态(动态(编程。您可以在运行时添加和组织计划,还可以保存代理的心理状态,并在整个系统运行的情况下加载新内容。

实际上,编译语言和解释语言之间存在一个连续体。编译或解释是语言实现的一个属性(编程语言是规范,这是像R5RS这样的文档;它是而不是软件(

我强烈建议阅读Quiennec的《小片段的Lisp》一书,这本书详细解释了这一点(另请参阅本文(。我还建议阅读Scott的《编程语言语用学》一书。

顺便说一句,Minsky的《心灵社会》和Pitrat的《人造人:有意识机器的良心》也应该引起你的兴趣。J.Pitrat的博客也是相关的。

许多"编译"语言都有"解释"部分。例如,在C中,大多数printf实现都在"解释"控制格式字符串(这是在C标准库的printf函数中完成的(,即使规范允许某种形式的"编译"。(有时,GCC或Clang可能足够聪明…(

是否存在未编译的解释编程语言?

阅读部分评估和Futamara预测

研究Common Lisp并深入了解它的SBCL实现,它在每次REPL交互时都会编译成机器代码。也可以看看LuaJit。

还要注意JIT编译库,如libgccjit、GNU闪电、asmjit或LLVM。

最新更新