赞
踩
《编译原理上机实习》指导书
一、上机实习目的
理解编译程序的构造原理,掌握编译程序的构造方法与技术。通过实习,使学生既加深对
编译原理基础理论的理解,又提高动手能力,特别是提高软件设计能力。
二、上机实习要求
在理解编译原理基本思想的基础上,选择一个自己熟悉的程序设计语言,完成编译程序的
设计和实现过程。
编译程序的设计可以采用自顶向下和自底向上两种不同的方法。由于许多高级语言(如
PASCAL,C)中的语法成分都是递归定义的,所以 本实验要求学生采用递归下降分析技术 ,这是
一种自顶向下的的编译方法, 其基本思想是对语言的每个 (或若干个)语法成分编制一个处理子
程序, 从处理 这个语法成分的子程序开始, 在分析过程中调用一系列过程或函数, 对源程
序进行语法和语义分析,直到整个源程序处理完毕为止。
本上机实习是为 C 语言 ( 子集 ) 设计一个编译程序,完成词法分析、语法分析、语义分析等
功能,并生成某种机器上的目标代码 ( 汇编语言 ) 或中间代码 ( 四元式 ) 。
三 、上机实习步骤
1.阅读《上机实习指导书》 。
2 .根据设计要求写算法, 画程序框图
3 .根据框图编写编译程序
4 .输入编译程序并上机调试
5 .撰写上机实习报告
四、上机实习内容
1、题目 :C语言小子集编译程序的实现
2 、C 语言小子集的文法规则:
:: =main (){< 分程序 >}
< 分程序 >::=< 变量说明部分 >;
< 变量说明部分 >::=< 变量说明 >
::=int
::=< 标识符表 >,
::=< 标识符 >
< 标识符 >::=< 字母 >
::=< 标识符 >
::=< 标识符 >
< 语句部分 >::=< 语句部分 >; |< 语句 >
:: =|< 条件语句 >|< 循环语句 >|
::=< 标识符 >=
< 条件 >::=< 表达式 >
< 表达式 >::=< 项 >|< 表达式 >
::=< 因子 >|< 项 >
:: =|< 常量 >|(< 表达式 >)
:: =
::=< 数字序列 >
::=< 数字序列 >
::=< 数字 >
:: =+|-
::=*| /
:: =|!=|>=|<=|==
::={< 语句部分 >}
:: =|< 复合语句 >
::=if ()else< 语句 1>
::=while ()do
::=a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z
::=0|1|2|3|4|5|6|7|8|9
3、实现功能 :
(1)词法分析
扫描源程序,根据词法规则,识别单词,填写相应的表。
(2)语法分析
对源程序作语法分析,确定是否属于 C 语言小子集,同时揭示出程序的内在结
构。
(3)语法错误检查
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。