语法语言和 s 表达式语言之间的主要区别是什么?使用 s 表达式会影响编译时间(在解析过程中)还是会给语言带来任何好处?
问问题
274 次
2 回答
1
将语言中的源代码表示为 S 表达式确实使解析变得容易,但这不是重点。Lisp 的各种方言具有程序在其他程序的结构上运行的机制,这要求程序具有透明的、规范的表示。该表示是 S 表达式。它们是 Lisp 提供的东西,例如宏,在编译时运行在程序上的代码,这在不将程序编码为语言中的数据结构的语言中实际上是不可能的。
于 2009-10-05T03:23:35.353 回答
1
在诸如 Lisp 或 Scheme 这样的语言中,使用 S 表达式来表示程序文本可能会减少解析器的工作量。与 C++ 编译器解析 C++ 代码相比,Lisp 编译器解析 Lisp 源代码所花费的时间更少(C++ 以解析最复杂的语言之一而闻名)。
但是,除了一些例外(可能是 C++?),解析不是编译器中花费最多时间的部分。Java、Python、C#、Delphi 都有相当简单的语法。
于 2009-10-04T22:23:50.280 回答