一、实验目的
通过C语言词法分析程序的实现理解编译程序过程中对单词的分析过程。
二、实验重难点
DFA自动机的数据结构表示,程序流程图,词法分析程序实现
三、实验内容与要求
实验内容:
1. 设计存储DFA自动机的数据结构
2.绘制程序流程图
3. 词法分析程序设计
四、实验学时
2课时
五、实验设备与环境
C语言编译环境
六、根据实验过程填写下列内容
1.DFA自动机的状态转换图和数据结构设计。
a /b
2. 程序流程图
(见附页)
3. 代码
#include<stdio.h>
int f(int x,char e)
{ int df[4][2]={{2,3},{4,3},{2,4},{4,4}};
int i;
if(e=='a')
i=df[x][1];
if(e=='b')
i=df[x][2];
return(i);
}
void main()
{ int S=1,U=2,V=3,Q=4;
int k=S;
char c;
printf("请输入字符,按#结束:\n");
c=getchar();
while(c!='#')
{
k=f(k,c);
c=getchar();
}
if(k==Q) printf("你输入的字符串能被DFA所识别\n");
else printf("你输入的字符串能被DFA所识别\n");
}
4.测试数据及结果分析
(结果见附页)
分析:从实验的结果可以看出上面程序代码基本上可以实现所给DFA的要求,但是有关实验的可读性和功能方面还有待进一步改进。
教师评语: 是否完成实验程序的预备设计? 是: 不是: 程序能否正常运行? 是: 不是: 有无测试数据及结果分析 是: 不是: 是否在本次规定时间完成所有项目? 是: 不是: |
|
实验成绩等级: |
教师签名: |
N0: |
时间: |
程序流程图