编译原理课程设计指南 西北工业大学计算机学院 林奕 2013年10月
林 奕 2013年10月 编译原理课程设计指南 西北工业大学 计算机学院
主要内容 →1、MiniPasca语言概述 →2、四元式和符号表的说明 →3、词法和语法分析技术回顾 →4、Lex词法分析工具 →5、Yacc词法分析工具 →6、设计方法与思想
22 主要内容 ➔1、MiniPascal语言概述 ➔2、四元式和符号表的说明 ➔3、词法和语法分析技术回顾 ➔4、Lex词法分析工具 ➔5、Yacc词法分析工具 ➔6、设计方法与思想
1、MiniPascali语言概述 →语言的基本组成要素 ·1)程序定义 ·2)变量说明 ■3)程序体 ■4)控制流语句 →文法参见课本第4章上机实习题(p.178-180) 3
33 1、MiniPascal语言概述 ➔语言的基本组成要素 ▪ 1)程序定义 ▪ 2)变量说明 ▪ 3)程序体 ▪ 4)控制流语句 ➔文法参见课本第4章上机实习题(p.178-180)
程序的基本结构 Program程序名; 程序定义 Var变量名,.:类型; 变量类型只能 是整数或实数 变量名,.:类型; 复合语句 程序体定义 程序结束
4 程序的基本结构 Program 程序名; Var 变量名, … : 类型 ; … … 变量名, … : 类型; 复合语句 . 变量类型只能 是整数或实数 程序定义 程序体定义 程序结束
程序的基本结构(续1) 语句类型: (1)赋值语句 (2)f-Then语句 (3)If-Then-EIse语句 (4)Vhile语句 (5)复合语句 5
5 程序的基本结构(续1) 语句类型: (1)赋值语句 (2)If-Then语句 (3)If-Then-Else语句 (4)While语句 (5)复合语句
程序的基本结构(续2) (1)赋值语句 变量:=表达式 (2)f-Then语句 If布尔表达式Then语句 (3)If-Then-Else语句 If布尔表达式Then语句Else语句 6
6 程序的基本结构(续2) (1)赋值语句 变量 := 表达式 (2)If-Then语句 If 布尔表达式 Then 语句 (3)If-Then-Else语句 If 布尔表达式 Then 语句 Else 语句
程序的基本结构(续3) (4)While语句 While布尔表达式Do语句 (5)复合语句 Begin语句;..语句;End 语句:上述语句均可构成语句
7 程序的基本结构(续3) (4)While语句 While 布尔表达式 Do 语句 (5)复合语句 Begin 语句; … 语句; End 语句:上述语句均可构成语句
程序的基本结构(续4) 布尔表达式 (1)关系运算结果是布尔表式 (2)布尔表达式的And/Or/Not结果 (3)布尔表达式允许使用括号(0
8 程序的基本结构(续4) 布尔表达式 (1)关系运算结果是布尔表式 (2)布尔表达式的And/Or/Not结果 (3)布尔表达式允许使用括号()
程序的基本结构(续5) 关系运算符: ,=, GE(大于等于),NE(不等于) LE(小于等于) 常量可以是整 表达式及其运算: 数或实数 变量,常量,表达式运算结果 +,,*,1,0,-负号
9 程序的基本结构(续5) 关系运算符: ,=,GE(大于等于),NE(不等于) ,LE(小于等于) 表达式及其运算: 变量,常量,表达式运算结果 +,-, * ,/,(),-负号 常量可以是整 数或实数
2、MiniPascal分析器的总体设计要求 (1)基本功能 →识别程序是否符合MiniPascal的语法要求 →输出程序中的各种符号定义(符号表的形式) →输出程序的四元式表示 10
10 2、MiniPascal分析器的总体设计要求 (1)基本功能 ➔识别程序是否符合MiniPascal的语法要求 ➔输出程序中的各种符号定义(符号表的形式) ➔输出程序的四元式表示