




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上院(系) 计算机学院 专业 计算机科学与技术 班级 姓名 学号 同组人 无 实验室 S4305 组号 日期 课程 编译原理 指导教师 成绩 实验项目编号 实验项目名 词法分析 1、 实验目的1、 通过设计、开发一个高级语言的词法分析程序,加深对课堂教学内容(包括正规文法、正规表达式、有限自动机、NFA到DFA的转换、DFA的最小化)的理解,提高词法分析方法的实践能力。2、编译原理涉及词法分析,语法分析,语义分析及优化设计等各方面。词法分析阶段是编译过程的第一个阶段,是编译的基础。这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根
2、据构词规则识别单词(也称单词符号或符号)。词法分析程序实现这个任务。从左到右逐个字符对构成源程序的字符串进行扫描,依据词法规则,识别出一个一个的标记(token),把源程序变为等价的标记串序列。执行词法分析的程序称为词法分析器,也称为扫描器。2、 实验环境(仪器设备、软件等) 电脑一台 VC 三、实验原理(或要求)1、深入理解、掌握有限自动机及其应用;2、掌握根据语言的词法规则构造识别其单词的有限自动机的方法;3、掌握NFA到DFA的等价变换方法、DFA最小化的方法;4、掌握设计、编码、调试词法分析程序的技术与方法,具体实现S语言的词法分析程序。四、实验步骤待分析的简单的词法(1)关键字:
3、160; begin if then while do end 所有的关键字都是小写。(2)运算符和界符: : = + - * / < <= <> > >= =
4、0; ( ) #(3)其他单词是标识符(ID)和整型常数(SUM),通过以下正规式定义:ID = letter (letter | digit)*NUM = digit digit*(4)空格有空白、制表符和换行符组成。空格一般用来分隔ID、SUM、运算符、界符和关键字,词法分析阶段通常被忽略。 2.2 各种单词符号对应的种别码表2.1 各种单词符号对应的种别码单词符号种别码单词符号种别码begin1:17if2: =18then3< 20while4<>
5、160;21do5<=22end6> 23letter (letter | digit)*10>=24digit digit*11=25+13;26-14(27*15)28/16#0词法分析程序的C语言程序源代码#include <stdio.h>#include <stdlib.h>#include <string.h>char prog100,ch,token8;int p=0,syn,n,i;char *keyword6="begin","then","if",&q
6、uot;while","do","end"void scaner();void Irparse();void statement();void expression_r();void term();void factor(); void main() int select=-1; p=0; &
7、#160;printf("please input sentence, end of '#' !n"); do ch=getchar();
8、; progp+=ch; while(ch!='#'); p=0; printf("请输入1 或 2 n 1.词法分析n
9、2.语法分析n"); scanf("%d",&select); if(select=1)
10、; do scaner();
11、switch(syn) &
12、#160; case -1:printf("词法分析 出错n");break; default :printf("<%d,%s>n",syn,token);break; &
13、#160; while(syn!=0);
14、; printf("词法分析 成功n"); else if(select=2) scaner();
15、; if(syn=1) Irparse();/begin else printf("语法分析出错!
16、0;请检查begin关键字n");return; if(syn=6)/end scaner();
17、60; if(syn=0)
18、 printf("恭喜 语法分析 成功n");
19、 else printf("语法分析出错! 请检查是否缺少'#'n");
20、60; elseprintf("语法分析出错! 请检查是否缺少'end'n");
21、0; getchar(); void scaner() for(n=0;n<8;n+) tokenn='0'
22、; n=0; ch=progp+; while(ch=' ')ch=progp+;
23、160; if(ch>='a'&&ch<='z')|(ch>='A'&&ch<='Z')
24、; do tokenn+=ch;
25、0; ch=progp+; while(ch>='a'&&ch<='z&
26、#39;)|(ch>='a'&&ch<='z')|(ch>='0'&&ch<='9'); syn=10;
27、60; for(n=0;n<6;n+)
28、60; if(strcmp(token,keywordn)=0)
29、; syn=n+1;
30、60; p-;
31、 /return;
32、0;else if(ch>='0'&&ch<='9') p-;
33、 do
34、0; tokenn+=progp+; ch=progp;
35、0; while(ch>='0'&&ch<='9'); syn=11;
36、60;
37、60; return; else
38、0; /ch=progp+;
39、; switch(ch) &
40、#160; case '+':syn=13;token0=ch;break; case '-':syn=14;token0=ch;break;
41、; case '*':syn=15;token0=ch;break; case '/':syn=16;token0=
42、ch;break; case ':':syn=17;token0=ch;
43、; ch=progp+; i
44、f(ch='=')token1=ch;syn+; else p-;
45、160; break; case
46、9;<':syn=20;token0=ch; ch=progp+;
47、60; if(ch='>')token1=ch;syn+;
48、60; else if(ch='=')token1=ch;syn=syn+2;
49、160; else p-; break;
50、 case '>':syn=23;token0=ch;
51、; ch=progp+; if(ch='=')token1=ch;syn+;
52、0; else p-;
53、160; break; case '=':syn=25;token0=ch;break;
54、0; case '':syn=26;token0=ch;break; case '(':syn=27;token0=ch;bre
55、ak; case ')':syn=28;token0=ch;break; case
56、'#':syn=0;token0=ch;break; default: printf(&quo
57、t;词法分析出错! 请检查是否输入非法字符n");syn=-1;break;
58、 /return;
59、0; void Irparse() scaner(); statement(); while(syn=26)/;
60、160; scaner(); statement();
61、; void statement() if(syn=10) scaner();
62、 if(syn=18) scaner();
63、; expression_r(); else
64、0; printf("语法分析出错! 请检查表达式是否正确n");return;
65、 else printf("语法分析出错! 请检查语句是否正确n");
66、return; void expression_r() term(); while(syn=13|syn=14)/+ - scaner(); term(); void term() factor(); while(s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年同等学力申硕《工商管理》考前点题卷二
- 2025年嵌入式行业发展目标的试题及答案
- 2025年VFP考试集萃试题及答案
- 考生必看2025年汉语考试试题及答案
- 高效备考VFP考试的试题及答案资源
- 全面了解计算机二级ACCESS考试试题及答案
- 软件生命周期管理知识试题及答案
- 土地房屋置换合同协议书
- 计算机二级VFP学习内容拓展试题及答案
- 2024-2025学年高中化学第2章化学反应与能量章末整合提升学案新人教版必修2
- 多彩的非洲文化 - 人教版课件
- 医院检验科实验室生物安全程序文件SOP
- 《病理检验技术》课程标准
- 服务中心及办公室装修设计方案
- 阀门系数Cv和KV值计算表格(带公式)
- 体质测量与评价期末考试试题及答案
- 行业标准:GB∕T 9254.2-2021 信息技术设备、多媒体设备和接收机 电磁兼容 第2部分:抗扰度要求
- 氢能无人机项目可研报告范文参考
- 簧片落料弯曲级进模设计毕业设计(论文)
- MSA测量系统分析软件(第三版A级实例)
- 工业硅技术安全操作规程
评论
0/150
提交评论