语法语言和s-expression语言的主要区别是什么?使用s-expression会影响编译时间(在解析过程中)还是会给语言带来任何好处?
发布于 2009-10-04 22:23:50
在Lisp或Scheme等语言中,使用S表达式表示程序文本可能会减少解析器的工作量。与C++编译器解析C++代码相比,Lisp编译器解析Lisp源代码所花费的时间更少(C++是公认的最复杂的解析语言之一)。
但是,除了某些例外(可能是C++?),解析并不是编译器中占用时间最多的部分。C#和Delphi都有非常简单的语法。
发布于 2009-10-05 03:23:35
将一种语言中的源代码表示为S-expressions确实使得解析它变得很容易,但这不是重点。Lisp的各种方言都有让程序在其他程序的结构上操作的机制,这就要求程序具有透明的、规范的表示。这种表示就是S-表达式。它们是Lisp提供的东西,比如宏,在编译时在程序上运行的代码,这在不将程序编码为数据结构的语言中几乎是不可能的。
https://stackoverflow.com/questions/1517497
复制相似问题