当前位置:   article > 正文

编译原理上机实习c语言小子集编译程序的实现报告,编译原理上机实习指导书(2015-11修改).pdf...

用c语言对--个简单语言的子集编制一个一遍扫描的编译 程序词法分析

编译原理上机实习》指导书

一、上机实习目的

理解编译程序的构造原理,掌握编译程序的构造方法与技术。通过实习,使学生既加深对

编译原理基础理论的理解,又提高动手能力,特别是提高软件设计能力。

二、上机实习要求

在理解编译原理基本思想的基础上,选择一个自己熟悉的程序设计语言,完成编译程序的

设计和实现过程。

编译程序的设计可以采用自顶向下和自底向上两种不同的方法。由于许多高级语言(如

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)语法错误检查

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/599389
推荐阅读
相关标签
  

闽ICP备14008679号