编译原理实验报告
词法分析器
学院:计算机科学与技术
时间:2012/6/9
一、 问题描述
选择计算机高级程序语言之一 —— C语言,运用恰当的词法分析技术线路,设计和实现其对应的词法分析器
提示:技术线路选择如下两种之一:
正则式→NFA→DFA→min DFA→程序设计
或 正则文法→NFA→DFA→min DFA→程序设计。
要求:分析器输出结果存入到磁盘文件中,具有出错处理功能。
二、 系统分析
编译原理涉及词法分析,语法分析,语义分析及优化设计等各方面。词法分析阶段是编译过程的第一个阶段,是编译的基础。这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号)。词法分析程序实现这个任务。从左到右逐个字符对构成源程序的字符串进行扫描,依据词法规则,识别出一个一个的标记(token),把源程序变为等价的标记串序列。执行词法分析的程序称为词法分析器,也称为扫描器。本次实验,我选择用C++来实现这个词法分析器。
程序语言的单词符号一般分为以下六种:关键字、标识符、常量、运算符、界符、字符串
词法分析程序所输出的单词符号常常采用以下二元式表示:(单词 种别,单词自身的值),单词的种别是语法分析所需要的信息,而单 词自身的值是编译其他阶段需要的信息。
单词的种别可以用整数编码表示,比如标识符编码为 1,程序最 后输出的形式应为:
关键字 int (2 , int )
…… …… 余下全文