编译原理实验指导. 下载本文

内容发布更新时间 : 2024/5/29 9:17:22星期一 下面是文章的全部内容请认真阅读。

编译原理 实验指导书

主编:徐静 李娜

信息与电气工程学院

2010年3月

编译原理实验指导书

概 述

一、本课程实验的目的和任务

编译原理是一门实践性很强的课程,只有通过实践,才能真正掌握。实际的编译程序是十分复杂的,有时由多达十几万条指令组成。为此,编译原理的实践教学,采用简化编译过程的办法,选择最关键的3个环节──词法分析、语法分析(包括语义处理、产生无优化的目标指令)、连接调试,进行编程和调试训练。每个环节作为一个实践课题。先分别编程调试,再连接在一起总调。

二、实验方法

任何一个实用的高级语言,其语法都比较复杂,如选其作为源语言,很难实践全过程。故本实验将定义一个简化的语言── C语言的一个子集作为源语言,设计调试出它的编译程序。前后贯穿这一条主线进行实践。每次都可利用课余时间编程,利用上机时间进行输入和调试。

三、实验报告的规范和要求

每个实验完成后写出实验报告。实验报告的内容包括如下内容: 一、 实验目的

二、 程序设计时采用的算法和方法 三、 输入的源程序

四、 词法分析程序清单和输出结果。 五、 心得体会

1

编译原理实验指导书

实验一 词法分析

一、实验目的:

(1)通过设计编制调试一个具体的词法分析程序,理解词法分析在编译程序中的作用。

(2)加深对有穷自动机模型的理解。 (3)掌握词法分析程序的实现方法和技术。

(4)用C语言对一个简单语言的子集编制一个一遍扫描的程序,以加深对编译原理的理解,掌握编译程序的实现方法和技术。

编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。(遇到错误时可显示“Error”,然后跳过错误部分继续显示) 。

二、实验预习提示

1. 词法分析器的功能和输出格式

词法分析器的功能是输入源程序,输出单词符号。词法分析器的单词符号常常表示成以下的二元式(单词种别码,单词符号的属性值)。本实验中,采用的是一类符号一种别码的方式。 2. 单词的BNF表示

<标识符>→ <字母><字母数字串>

<字母数字串>→<字母><字母数字串>|<数字> <字母数字串>|

<下划线><字母数字串>|ε

<无符号整数>→ <数字> <数字串> <数字串>→ <数字><数字串> |ε <加法运算符>→ + <减法运算符>→ - <大于关系运算符>→ > <大于等于关系运算符>→ >=

3. “超前搜索”方法

2