词法分析编译原理论文

词法分析编译原理论文

ID:32700831

大小:332.50 KB

页数:14页

时间:2019-02-14

词法分析编译原理论文_第1页
词法分析编译原理论文_第2页
词法分析编译原理论文_第3页
词法分析编译原理论文_第4页
词法分析编译原理论文_第5页
资源描述:

《词法分析编译原理论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、词法分析摘要:词法分析(lexicalanalysis)是计算机科学中将字符序列转换为单词(Token)序列的过程。进行词法分析的程序或者函数叫作词法分析器(Lexicalanalyzer,简称Lexer),也叫扫描器(Scanner)。词法分析器一般以函数的形式存在,供语法分析器调用。关键词:词法分析  标识符计算机系统与人信息交换界面多数是应用高级语言来实现。一个高级语言程序的实现,必须依赖于相应的编译系统。所谓编译程序就是指能够把某一种语言程序转换成另一种与之等价的语言程序。它通常包括五个阶段:词法分析,语法分析,语义分析与中间代码的产生、优化,目标代码的生成

2、。完成计算机翻译过程的关键阶段,它为后面的语法分析、语义分析做好准备,打好基础,以便快速地、高质量地生成目标语言程序。因此词法分析是编译的基础。词法分析器所处理的对象即词法分析程序的输入数据,实际上是源程序经过编译预处理,去掉多余的符号后而形成的代码,这样给词法分析带来方便。词法分析的过程是线性的从头至尾扫描一遍,复杂度较低,易实现。一、实验目的设计、编制并调试一个词法分析程序,加深对词法分析原理的理解。二、实验要求2.1待分析的简单词法(1).关键字:  begin  if  then  while  do  end lishumanlishuman2015041

3、886所有的关键字都是小写。(2).运算符和界符 : =+-*/()[]{},:;><>=<===!(3).其他单词是标识符(ID)和整型常数(SUM),通过以下正规式定义:ID = letter (letter 

4、 digit)* NUM = digit digit* (4).空格有空白、制表符和换行符组成。空格一般用来分隔ID、SUM、运算符、界符和关键字,词法分析阶段通常被忽略。2.2各种单词符号对应的种别码表2-2种别码单词符号种别码单词符号种别码begin1(26if2)27then3[28while4]29do5{30end6}31lishuman7,3

5、2lishuman20150418868:33letter (letter 

6、 digit)* 10;34digit digit* 11>35=21<36+22>=37-23<=38*24==39/25!402.3词法分析程序的功能输入:所给文法的源程序字符串。输出:二元组(syn,token或sum)构成的序列。 其中:syn为单词种别码;token为存放的单词自身字符串;sum为整型常数。 例如:对源程序begin x:=9: if x>9 then x:=2*x+1/3; end #的源文件,经过词法分析后输出如下序列: (1,begin)(10,x)(18,

7、:=)(11,9)(26,;)(2,if)……2.4识别语言单词的状态转换图识别语言单词的状态转换图如下图2-4所示:状态0为初态,凡带双圈者为终态。图2-4识别语言单词的状态转换图三、词法分析程序的算法思想算法的基本任务是从字符串表示的源程序中识别出具有独立意义的单词符号,其基本思想是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。3.1主程序示意图:图3-1主程序示意图其中初始包括以下两个方面:(1). 关键字表的初值。关键字作为特殊标识符处理,把它们预先安排在一张表格中(称为关键字表),当扫描程序识别出标识符时,查关键字表。如能查到匹配的单词,则该单

8、词为关键字,否则为一般标识符。关键字表为一个字符串数组,其描述如下:Char *nrwtab[6]= {“begin”,“if',"then”,"while”,“do","end",};(2).程序中需要用到的主要变量为syn,token和sum   3.2 扫描子程序的算法思想: 首先设置3个变量:①token用来存放构成单词符号的字符串;②sum用来整型单词;③syn用来存放单词符号的种别码。图3-2扫描子程序主要部分流程图四、运行结果4.1.安装Linux虚拟机(已经配置好虚拟机的可以跳过此步骤)1.安装VMware-player2.解压Ubuntu16.04

9、_64-bit.rar3.在VMware-player中设置虚拟机:点击“打开已经存在的虚拟机”,然后选择“Ubuntu16.04_64-bit.vmx”。4.启动虚拟机,查看是否安装成功。4.2.创建工作目录在用户家目录下建立lishuman文件夹,建立scaner.c文件编写代码,建立testin.txt输入程序。4.3.词法分析1.打开命令行。cdlishuman/回车,进入lishuman目录2.编译程序。编译scaner.c文件。图4-3编译scaner.c文件4.4.编译运行程序testin.txt是词法分析器的输入程序(即输入的源程序,此程序由学生

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。