实验一 词法分析程序的设计与实现(C语言)

一、实验目的

通过C语言词法分析程序的实现理解编译程序过程中对单词的分析过程

二、实验重难点

DFA自动机的数据结构表示,程序流程图,词法分析程序实现

三、实验内容与要求

实验内容:

1. 设计存储DFA自动机的数据结构

2.绘制程序流程图

3. 词法分析程序设计

四、实验学时

2课时

五、实验设备与环境

 C语言编译环境

六、根据实验过程填写下列内容

1DFA自动机的状态转换图和数据结构设计。

                                a /b

2. 程序流程图

(见附页)

3. 代码

#include

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:       

时间:

程序流程图