关于面向代理的编程范例的三个标准:
是否存在未编译的解释型编程语言?据我所知,解释型语言的全部目的是实现具有某些功能,语法等的新语言,但是要实现底层的实现最终需要编译为低级内容,以便可以实际执行。
面向代理的编程范式的第3点只是说,仅在理论上定义一种语言而不用一种可以编译为实际可运行的低级代码的方式实现该语言就不够了吗?
>答案 0 :(得分:3)
是的,Jason被完全解释。它是一个BDI代理平台。它还支持动态(动态)编程。您可以在运行时添加和组织计划,还可以保存代理的心理状态并在整个系统运行时加载新内容。
答案 1 :(得分:0)
实际上,编译语言和解释语言之间是连续的。编译或解释是语言 implementation 的一种属性(编程语言是 specification ,即R5RS之类的文档;它是不是软件)
我强烈建议您阅读Quiennec的Lisp In Small Pieces书,其中详细介绍了该书(另请参见this)。我还建议阅读Scott的Programming Language Pragmatics书。
BTW,Minsky的Society of Mind书和Pitrat的Artificial Beings: The Conscience of a Conscious Machine书也应该引起您的兴趣。 J.Pitrat's blog也很重要。
许多“编译”语言都有“解释”部分。例如,在C语言中,即使规范允许某种形式的“编译”,大多数printf
实现都是“解释”控制格式字符串(这是在C标准库的printf
函数中完成的) ”。 (有时,GCC或Clang可能足够聪明...)
是否存在未编译的解释型编程语言?
还请阅读有关partial evaluation和Futamara投影的信息
研究Common Lisp,并查看其SBCL实现内部,该实现将每个REPL交互都编译为机器代码。另请参阅LuaJit。
还要注意JIT-compiling库,例如libgccjit,GNU lightning,asmjit或LLVM。