编译原理_实验报告(2)

2021-01-28 20:40

编译原理实验

实验一:词法分析

一、实验目的

给出PL/0文法规范,要求编写PL/0语言的词法分析程序。

二、实验准备

微机CPU主频1.3G以上,128M内存,安装好C语言,PASCAL语言,或C++。

三、实验时间

6学时

四、实验内容

已给PL/0语言文法,输出单词(关键字、专用符号以及其它标记)。

二.实验内容

1、格式

输入:源程序文件。输出:关键字、专用符号以及其它标记。

2、编译对象:

包含如下基本内容 1)变量说其它标记: 明语句 2)赋值语句 3)条件转移语句 4)表达式(算术表达式和逻辑表达式) 5)循环语句 6)过程调用语句

3、实现过程

本次实验所用的语言为标准C,以下同。本功能实现的主函数为getToken函数。通过从文件中读取字符到缓冲区中并由C语言字符的状态转换图流程判断返回一个字符(Token)。分析出来的Token主要分为关键字,专用符号,标记符号。

本实验实现的C语言的基本词法如下:

关键字: els if int return void while

专用符号: + - * / < >= == != = ; , ( ) [ ] { } /* */

其它标记: id num

ID = letter letter*

NUM = digit digit*

letter = a|b|...|z|A|B|...|Z|

ditit= 0|1|...|9

通过在C语言中定义一个枚举类型来识别这些符号:

PL/0语言的EBNF表示

<常量定义>::=<标识符>=<无符号整数>;

<标识符>::=<字母>={<字母>|<数字>};

<加法运算符>::=+|-

<乘法运算符>::=*|/

<关系运算符>::==|#|<|<=|>|>=

<字母>::=a|b|…|X|Y|Z

<数字>::=0|1|2|…|8|9

4、主体结构的说明

在这里说明部分告诉我们使用的LETTER,DIGIT, IDENT(标识符,通常定义为字母开头的字母数字串)和STR(字符串常量,通常定义为双引号括起来的一串字符)是什么意思.这部分也可以包含一些初始化代码.例如用#include来使用标准的头文件和前向说明(forward ,references).这些代码应该再标记"%{"和"%}"之间;规则部分&gt;可以包括任何你想用来分析的代码;我们这里包括了忽略所有注释中字符的功能,传送ID名称和字符串常量内容到主调函数和main函数的功能.

5、实现原理

程序中先判断这个句语句中每个单元为关键字、常数、运算符、界符,对与不同的单词符号给出不同编码形式的编码,用以区分之。

三:设计过程

2


编译原理_实验报告(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:肉牛饲养管理技术

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: