【发布时间】:2015-12-09 19:05:51
【问题描述】:
我已经看过语法和语义区别的解释了,比如这个What is the difference between syntax and semantics? 但是当我们讨论编译器时,“语法”和“语法”有什么区别吗?
【问题讨论】:
-
不,它们是同一事物的两个词。
标签: syntax compiler-construction programming-languages grammar
我已经看过语法和语义区别的解释了,比如这个What is the difference between syntax and semantics? 但是当我们讨论编译器时,“语法”和“语法”有什么区别吗?
【问题讨论】:
标签: syntax compiler-construction programming-languages grammar
语法是一系列产生一种语言的有效“词”的产生式。这是一种指定语言语法的方法。指定语法的另一种方法是使用简单的英语,但如果您希望它足够精确以用作规范,那么对于非平凡的语言来说最终会非常冗长。
例如,考虑以下文本:
程序是一系列零个或多个语句。
语句要么是关键字“var”,后跟一个标识符,然后是一个分号;标识符后跟“++”或“--”,后跟分号;或关键字“while”,后跟一个标识符,然后是关键字“do”,然后是零个或多个语句,然后是关键字“end”。
这描述了一种非常简单的编程语言的语法,但它不是语法。这是描述相同语言的语法:
program ::= statement*
statement ::= "var" ID ";"
| ID "++" ";"
| ID "--" ";"
| "while" ID "do" statement* "end"
【讨论】: