- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
词法分析实验报告
编译原理实验一 姓 名:朱彦荣学 号专 业:软件工程2 实验题目:词法分析 完成语言:C/C++ 上级系统:VC++6.0 日 期:2015/11/7 词法分析设计题目:手工设计c语言的词法分析器 (可以是c语言的子集)设计内容:处理c语言源程序,过滤掉无用符号,判断源程序中单词的合法性,并分解出正确的单词,以二元组形式存放在文件中。设计目的:了解高级语言单词的分类,了解状态图以及如何表示并识别单词规则,掌握状态图到识别程序的编程。结果要求:课程设计报告。完成日期:第十五周提交报告分析要想手工设计词法分析器,实现C语言子集的识别,就要明白什么是词法分析器,它的功能是什么。词法分析是编译程序进行编译时第一个要进行的任务,主要是对源程序进行编译预处理(去除注释、无用的回车换行找到包含的文件等)之后,对整个源程序进行分解,分解成一个个单词,这些单词有且只有五类,分别是标识符、保留字、常数、运算符、界符。以便为下面的语法分析和语义分析做准备。可以说词法分析面向的对象是单个的字符,目的是把它们组成有效的单词(字符串);而语法的分析则是利用词法分析的结果作为输入来分析是否符合语法规则并且进行语法制导下的语义分析,最后产生四元组(中间代码),进行优化(可有可无)之后最终生成目标代码。可见词法分析是所有后续工作的基础,如果这一步出错,比如明明是‘=’却被拆分成‘’和‘=’就会对下文造成不可挽回的影响。因此,在进行词法分析的时候一定要定义好这五种符号的集合。下面是我构造的一个C语言子集。第一类:标识符 letter(letter | digit)* 无穷集第二类:常数 (digit)+ 无穷集第三类:保留字(32)auto break case charconst continuedefault do double elseenum externfloat forgoto ifint longregister return short signedsizeof staticstruct switchtypedef union unsigned voidvolatile while第四类:界符 ‘/*’、‘//’、 () { } [ ] 等第五类:运算符 、=、、=、=、+、-、*、/、^、等对所有可数符号进行编码:$,0auto,1...while,32+,33-,34*,35/,36,37=,38,39=,40=,41==,42!=,43;,44(,45),46^,47,,48,49,50#,51,52,53|,54||,55%,56~,57,58左移,59右移[,60],61{,62},63\,64.,65?,66:,67!,68[,],{,}常数99 ,数值标识符100 ,标识符指针上述二元组中左边是单词的符号,右边为其种别码,其中常数和标识符有点特别,因为是无穷集合,因此常数用自身来表示,种别码为99,标识符用标识符符号表的指针表示(当然也可用自身显示,比较容易观察),种别码100。根据上述约定,一旦见到了种别码syn=63,就唯一确定了‘}’这个单词。下面是一些变量的约定://全局变量,保留字表static char reserveWord[32][20] = {auto, break, case, char, const, continue,default, do, double, else, enum, extern,float, for, goto, if, int, long,register, return, short, signed, sizeof, static,struct, switch, typedef, union, unsigned, void,volatile, while};//界符运算符表,根据需要可以自行增加static char operatorOrDelimiter[36][10]={ +,-,*,/,,=,,=,=,==, !=,;,(,),^,,,\,\,#,, ,|,||,%,~,,,[,],{, },\\,.,\?,:,!};static char IDentifierTbl[1000][50]={};//标识符表char resourceProject[10000];//输入的源程序存放处,最大可以存放10000个字符。char token[20]={0};//每次扫描的时候存储已经扫描的结果。int syn=-1;//syn即为种别码,约定‘$’的种别码为0,为整个源程序的结束符号一旦扫描到这个字符代表扫描结束int pProject = 0;//源程序指针,始终指向当前源程序待扫描位置。
您可能关注的文档
- 齿轮泵测量建模.doc
- 齿轮泵课程设计.doc
- 齿轮泵维护检修规程.doc
- 齿轮泵设计.docx
- 齿轮传动教案.doc
- 齿轮参数计算.docx
- 齿轮泵设计课程设计.doc
- 齿轮传动系统的故障诊断方法研究.doc
- 齿轮的检测.doc
- 诚信库申报操作手册.doc
- 2025年贵州工业职业技术学院高职单招高职单招英语2016-2024历年频考点试题含答案解析.docx
- 2025年西昌民族幼儿师范高等专科学校高职单招职业适应性测试近5年常考版参考题库含答案解析.docx
- 2025年西藏警官高等专科学校高职单招语文2018-2024历年参考题库频考点含答案解析.docx
- 2025年贵州工商职业学院高职单招职业技能测试近5年常考版参考题库含答案解析.docx
- 2025年贵州工商职业学院高职单招职业适应性测试近5年常考版参考题库含答案解析.docx
- 2025年贵州农业职业学院高职单招数学历年(2016-2024)频考点试题含答案解析.docx
- 2025年贵州工商职业学院高职单招高职单招英语2016-2024历年频考点试题含答案解析.docx
- 2025年贵州工商职业学院高职单招语文2018-2024历年参考题库频考点含答案解析.docx
- 2025年许昌职业技术学院高职单招数学历年(2016-2024)频考点试题含答案解析.docx
- 2025年许昌职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析.docx
最近下载
- 桥梁箱梁吊装专项施工方案汇报材料.ppt
- 2023中航集团(国航股份)信息管理部社会招聘笔试备考题库及答案解析.docx
- 数字化与绿色技术促进可持续发展专题政策研究报告(2024).pdf
- 102word格式支持编辑修改也支持打印使用小学生儿童成长档案幼儿园模板个人电子版a4记录纪念手册.docx VIP
- 赡养协议书范文6篇.docx VIP
- 高中地理培训心得5篇 .pdf
- “双减”政策背景下小学课后服务现状及优化策略研究--以S小学为例.pdf
- 047word格式支持编辑修改也支持打印使用小学生儿童成长档案幼儿园模板个人电子版a4记录纪念手册.docx VIP
- 部编版六年级语文下册《北京的春节》教学设计.doc VIP
- 2019年国航股份管理部IT人才招聘模拟试题及答案解析.docx VIP
文档评论(0)