实验一词法分析器的设计

时间:2026-01-17

实验一 词法分析器的设计

一、实验目的

(1)学会针对转换图实现相应的高级语言源程序。

(2)深刻领会状态转换图的含义,逐步理解有限自动机。

二、实验内容

(1)某计算机语言的编译程序的词法分析部分实现。

(2)从左到右扫描每行该语言源程序的符号,拼成单词,换成统一的内部表示(token),送给语法分析程序。

三、实现原理

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

PL/0语言的EBNF表示

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

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

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

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

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

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

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

四、设计过程

1. 关键字:void,main,if,then,break,int,Char,float,include,for,while,printfscanf 并为小写。

2."+”;”-”;”*”;”/”;”:=“;”:”;”<“;”<=“;”>“;”>=“;”<>“;”=“;”(“;”)”;”;”;”#”为运算符。

3. 其他标记 如字符串,表示以字母开头的标识符。

4. 空格符跳过。

5. 各符号对应种别码

关键字分别对应1-13

运算符分别对应401-418,501-513。

字符串对应100

常量对应200

结束符#

五、心得体会

其实匹配并不困难,主要是C++知识要求相对较高,只要把握住指针就好了。

附源程序:

#include<iostream.h>

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

int i,j,k,flag,number,status;

/*status which is use to judge the string is keywords or not!*/

实验一词法分析器的设计.doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:4.9 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:19元/月

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