2. Structure of a Compiler
2.1 Dynamic Structure of a Compiler
2.2 Static Structure of a Compiler
2.3 Grammer
-
terminal symbol
are atomic
它是文法所定义的语言的最基本符号,这意味着一个终结符不可再细分,一般用小写字母表示。 -
nonterminal symbol
are decomposed into smaller units
表示语法成分的符号,有时候也称为“语法变量”。在编程语言中,我们可以说表达式或者赋值语句就是一个非终结符,因为它可以继续细分为多个 token。 -
productions
rules how to decompose nonterminals终结符和非终结符的转换依靠的就是产生式(或者说生成式,推导规则)
-
start symbol
topmost nonterminal
它是最开始的那条产生式的左部,一切的推导都是从它这里开始进行的,可以认为它就是最大的那个成分。所以也注定了 S 必须在 P 中至少作为某一条产生式的左部(不然无从推导)。
2.4 Symbols in Programming Languages
- Pile symbol: |
- Parentheses: ()
- Brackets: []
- Semicolon: ;
- Comma: ,
- Period(dot): .
- Colon: :
- Quotation marks: ""
- Slash: / (foward slash), \ (backslash)