1 / 15
文档名称:

编译原理词法分析器论文.doc

格式:doc   大小:169KB   页数:15页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

编译原理词法分析器论文.doc

上传人:260933426 2017/7/29 文件大小:169 KB

下载得到文件列表

编译原理词法分析器论文.doc

文档介绍

文档介绍:XX大学学生课程设计(论文)
题目:
词法分析器分析
学号:
姓名:
专业年级:
2012级计算机科学与技术
教师姓名:
2015年 6 月 15日
摘要
词法分析的主要任务是对源程序进行扫描,词法分析是编译的第一个阶段,词法分析器工作时从左向右逐个字符地对源程序进行扫描,是语法分析的基础。词法分析器的分析过程调用GETSYM时,它通过GETCH过程从源程序中获得一个字符。
如果这个字符是字母,则继续获取字符或数字,最终可以拼成一个单词,查保留字表,如果查到为保留字,SYM变量赋成相应的保留字类型值;如果没有查到,则这个单词应是一个用户自定义的标识符。
关键词:词法分析标识符
Abstract
Lexical analysis is the main task of the source program for scanning, piler lexical analysis is the first stage, the lexical analyzer to work each character from left to right to scan the source program, and is the basis of the syntax analysis. The analysis of the lexical analyzer procedure call GETSYM, it through the GETCH process from source program one character at a time.
If the character is a letter, continues to get characters or Numbers, finally can spell a word, check the reserved word table, if find as reserved words, SYM variable into corresponding reserved word type value; If not checked, this word should be a user-defined identifier.
【Key words】 lexical analysis Identifier
目录
引言 5
6
6
7
词法分析器的任务 7
7
7
7
7
11
12
参考文献 13
引言
在网络世界中,我们往往对功能强大的程序叹为观止。而这些强大程序的背后是编译这些程序的编译软件,是这些编译软件承托起了这些功能强大的运行程序。我们有不少的同志致其自身于无尽的运行程序上。而只有很少的人搞编译程序。这就是为什么中国的可运行程序满天飞,而编译程序却很少。本课程设计就是在这方面的探索,为你解读编译程序的奥秘。其中最基本的编译程序就是词法分析器,词法分析是编译过程的基础,这个过程模拟了一台可以运行类PCODE指令的栈式计算机。下面就让我们一起走进编译程序的世界,去领悟它的奥秘吧。

词法分析是编译的第一个阶段,它的主要任务是从左向右逐个字符地对源程序进行扫描,产生一个个单词序列用于语法分析。PL/0词法分析程序GETSYM的功能是为语法分析提供单词用的,是语法分析的基础,把输入的字符串形式的源程序分割成一个个单词符号。经过词法分析程序分析出来的单词,对语言固有的单词只给出类别存放在全程变量SYM中,而对用户定义的单词(标识符或常数)既给出类别又给值,其类别放在SYM中,值放在全程变量ID或全程变量NUM中,全部单词种类由编译程序定义的纯量类型。SYMBOL给出,称为语法词汇表。词法分析器的分析过程:调用GETSYM时,它通过GETCH过程从源程序中获得一个字符。如果这个字符是字母,则继续获取字符或数字,最终可以拼成一个单词,查保留字表,如果查到为保留字,则把SYM变量赋成相应的保留字类型值;如果没有查到,则这个单词应是一个用户自定义的标识符(可能是变量名、常量名或是过程的名字),把SYM置为IDENT,把这个单词存入ID变量。查保留字表时使用了二分法查找以提高效率。如果Getch获得的字符是数字,则继续用Getch获取数字,并把它们拼成一个整数或实数,然后把SYM置为INTEGER,并把拼成的数值放入NUM变量。如果识别出其它合法的符号(比如:赋值号、大于号、小于等于号等),则把SYM则成相应的类型。如果遇到不合法的字符,把SYM置成N