"中山大学《编译原理》期末复习资料"
本资源是中山大学软件学院2007、2008级软件工程专业《编译原理》期末考试试卷,共3页,涵盖了编译原理的多个方面,包括编译器的阶段、解析方法、属性、正则表达式、自动机、文法、语法分析等知识点。
1. 编译器的阶段:编译器通常有多个阶段,包括词法分析、语法分析、语义分析、 intermediate code generation、 optimization、 code generation等。每个阶段都有其特定的功能和任务。
2. 解析方法:常见的解析方法有 Top-Down Parsing、Bottom-Up Parsing、Recursive Descent Parsing、LL(1) Parsing等。每种方法都有其优缺点和应用场景。
3. 属性:在编译原理中,属性可以分为两类:继承属性和合성属性。继承属性是指在语法分析过程中,从父节点继承下来的属性,而合成属性是指在语法分析过程中,通过计算得到的属性。
4. 正则表达式:正则表达式是一种用于描述字符串模式的表示方法。它可以用来描述语言的语法结构。正则表达式可以被转换为非确定性有限自动机(NFA),然后再转换为确定性有限自动机(DFA)。
5. 自动机:有限自动机(Finite Automaton)是一种数学模型,用于描述字符串的识别过程。它可以用来实现正则表达式的匹配。
6. 文法:文法是一种用于描述语言的语法结构的规则集。它可以用来生成语言的所有可能的句子。文法可以分为正规文法、上下文有关文法和上下文无关文法等。
7. 语法分析:语法分析是编译器的重要组件之一,负责将源代码解析为抽象语法树(AST)。语法分析可以使用Top-Down Parsing、Bottom-Up Parsing、Recursive Descent Parsing等方法。
8. LL(1) parsing:LL(1) parsing是一种Top-Down Parsing方法,它使用一个预测分析表来guide parsing过程。预测分析表可以根据文法的FIRST和FOLLOW集合来构建。
9. LR(0) automaton:LR(0) automaton是一种Bottom-Up Parsing方法,它使用一个自动机来guide parsing过程。LR(0) automaton可以用来实现SLR(1)文法的解析。
10. SLR(1)文法:SLR(1)文法是一种上下文无关文法,它可以使用LR(0) automaton来实现解析。SLR(1)文法可以用来描述编程语言的语法结构。
本资源涵盖了编译原理的多个方面,包括编译器的阶段、解析方法、属性、正则表达式、自动机、文法、语法分析等知识点,为学习编译原理提供了有价值的参考资源。