2009-10-04 134 views
4

語法語言和s表達式語言之間的主要區別是什麼?使用s表達式會影響編譯時間(在解析過程中),還是會給語言帶來任何好處?語法和s表達式之間的區別是什麼

+0

您提到S表達式,它通常是一個Lisp相關術語。你在談論一種特定的編程語言嗎?也許Lisp或Scheme? – 2009-10-04 22:10:03

+0

我正在討論在lisp中使用s表達式的原理,這是否會讓編譯器獲得更高的效率? – Ayoub 2009-10-04 22:19:26

回答

1

在諸如Lisp或Scheme之類的語言中,使用S表達式來表示程序文本可能會減少解析器的工作量。 Lisp編譯器將花費更少的時間解析Lisp源代碼,而不是C++編譯器花費的時間來分析C++代碼(C++作爲解析最複雜的語言之一而享有聲譽)。

但是,除了一些例外(可能是C++?),解析不是編譯器中花費時間最多的部分。 Java,Python,C#,Delphi都有相當簡單的語法。

1

用S語言表達語言中的源代碼使解析起來很容易,但這不是重點。 Lisp的各種方言都有程序運行其他程序結構的機制,這就要求程序具有透明的規範表示。該表示是S表達式。它們是Lisp提供的東西,例如宏,編譯時運行在程序上的代碼,在不將語言編碼爲數據結構的語言中實際上是不可能的。

相關問題