3.2语言和文法 3.2.1正规式和上下文无关文法的比较 正规式 (ab)"ab 开始 。文法 A0→aAo|bA0laA1 A1→bA2 A2→ε
3.2 语言和文法 3.2.1 正规式和上下文无关文法的比较 • 正规式 (a|b) *ab • 文法 A0 → a A0 | b A0 | a A1 A1 → b A2 A2 → 1 2 开始 a 0 a b b
3.2语言和文法 3.2.2分离词法分析器理由 为什么要用正规式定义词法 -词法规则非常简单,不必用上下文无关文法 -对于词法记号,正规式描述简洁且易于理解 从正规式构造出的词法分析器效率高
3.2 语言和文法 3.2.2 分离词法分析器理由 • 为什么要用正规式定义词法 –词法规则非常简单,不必用上下文无关文法 –对于词法记号,正规式描述简洁且易于理解 –从正规式构造出的词法分析器效率高
3.2语言和文法 ·从软件工程角度看,词法分析和语法分析的 分离有如下好处 -简化设计 -编译器的效率会改进 编译器的可移植性加强 -便于编译器前端的模块划分
3.2 语言和文法 • 从软件工程角度看,词法分析和语法分析的 分离有如下好处 –简化设计 –编译器的效率会改进 –编译器的可移植性加强 –便于编译器前端的模块划分
3.2语言和文法 能否把词法分析并入到语法分析中,直接从 字符流进行语法分析 若把词法分析和语法分析合在一起,则必须将语 言的注解和空白的规则反映在文法中,文法将大 大复杂 注解和空白由自己来处理的分析器,比注解和空 格已由词法分析器删除的分析器要复杂得多
3.2 语言和文法 • 能否把词法分析并入到语法分析中,直接从 字符流进行语法分析 – 若把词法分析和语法分析合在一起,则必须将语 言的注解和空白的规则反映在文法中,文法将大 大复杂 – 注解和空白由自己来处理的分析器,比注解和空 格已由词法分析器删除的分析器要复杂得多
3.2语言和文法 3.2.3验证文法产生的语言 G:S→(SS|εL(G)=配对的括号串的集合
3.2 语言和文法 3.2.3 验证文法产生的语言 G : S → (S) S | L(G) = 配对的括号串的集合