资源描述:
《词法分析系统实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划词法分析系统实验报告 编译原理实验一 姓名:朱彦荣 学号:XX2184 专业:软件工程2 实验题目:词法分析 完成语言:C/C++ 上级系统:VC++ 日期:XX/11/7 词法分析 设计题目:手工设计c语言的词法分析器 设计内容: 处理c语言源程序,过滤掉无用符号,判断源程序中单词的合法性,并分解出正确的单词,以二元组形式存放在文件中。 设计目的: 了解高级语言单词的分类,了解状态图以及如何表示并识
2、别单词规则,掌握状态图到识别程序的编程。 结果要求:课程设计报告。 完成日期:第十五周提交报告 一.分析目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 要想手工设计词法分析器,实现C语言子集的识别,就要明白什么是词法分析器,它的功能是什么。词法分析是编译程序进行编译时第一个要进行的任务,主要是对源程序进行编译预处理之后,对整个源程序进行分解,
3、分解成一个个单词,这些单词有且只有五类,分别是标识符、保留字、常数、运算符、界符。以便为下面的语法分析和语义分析做准备。可以说词法分析面向的对象是单个的字符,目的是把它们组成有效的单词;而语法的分析则是利用词法分析的结果作为输入来分析是否符合语法规则并且进行语法制导下的语义分析,最后产生四元组(中间代码),进行优化之后最终生成目标代码。可见词法分析是所有后续工作的基础,如果这一步出错,比如明明是‘穷集 第二类:常数(digit)+无穷集 第三类:保留字(32) autobreakcasecharconstcontinuedefaul
4、tdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile 第四类:界符‘/*’、‘//’、(){}[]""'等 第五类:运算符、>=、=、+、-、*、/、^、等目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正
5、常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 对所有可数符号进行编码: ... ,39> =,40> 目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 左移 >,59>右移 "[","
6、]","{","}" 目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 上述二元组中左边是单词的符号,右边为其种别码,其中常数和标识符有点特别,因为是无穷集合,因此常数用自身来表示,种别码为99,标识符用标识符符号表的指针表示,种别码100。根据上述约定,一旦见到了种别码syn=63,就唯一确定了‘}’这个单词。 下面是一些变量的约定: /
7、/全局变量,保留字表 staticcharreserveWord[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","u
8、nion","unsigned","void", "volatile","while" }; //界符运算符表,根据需要可以自行增加 staticcharoperatorOrDelim