语法和s表达式之间有什么区别

时间:2009-10-04 22:02:41

标签: parsing programming-languages syntax s-expression

语法语言和s表达式语言之间的主要区别是什么?使用s表达式会影响编译时间(在解析过程中)还是会给语言带来任何好处?

2 个答案:

答案 0 :(得分:1)

在诸如Lisp或Scheme之类的语言中,使用S表达式来表示程序文本可能会减少解析器的工作量。 Lisp编译器将花费更少的时间来解析Lisp源代码,而不是C ++编译器用于解析C ++代码(C ++是最难解析的语言之一)。

但是,有一些例外(可能是C ++?),解析不是编译器中花费最多时间的部分。 Java,Python,C#,Delphi都有相当简单的语法。

答案 1 :(得分:1)

将语言中的源代码表示为S表达式确实使解析变得容易,但这不是重点。 Lisp的各种方言都有程序对其他程序的结构进行操作的机制,并且要求程序具有透明的规范表示。该表示是S表达式。它们是Lisp提供的东西,比如宏,在编译器时运行在程序上的代码,在不将程序编码为语言中的数据结构的语言中几乎是不可能的。