编译原理实验报告(一)----词法分析程序
编译原理实验报告(一)
----词法分析程序
【目的要求】
通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的理解。
并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析
方法。
【题目分析】
本实验以用户指定的想编译的以C语言编写的文件作为词法分析程序的输入数据。
在进行词法分析中,先自文件头开始以行为单位扫描程序,将该行的字符读入预先设定的一个数组缓冲区中,然后对该数组的字符逐词分割,进行词法分析,将每个词分割成关键字、标识符、常量和运算符四种词种,最终产生四个相对应的表,即关键字表、标识符表、常量表和运算符表,它们以文件的形式进行存储。除此之外,还产生一个编译后的文件,它指定了每个词在四个表中的位置。
【实验过程】
下面就词法分析程序中的文件和主要变量进行说明:
文件:
cpile.c 主程序文件
key.txt 关键字文件
operation.txt 运算符文件
id.txt 标识符文件
const.txt 常量文件
after_com.txt 编译后产生的文件
主要变量:
FILE *sfp,*nfp,*ifp,*kfp,*cfp,*pfp;
char ib[50][20] 标识符表(动态生成)
char cb[50][10] 常量表(动态生成)
char kb[44][10] 关键字表(预先定义好的)
char pb[36][5] 运算符表(预先定义好的)
主要的子函数名:
int number(char s[],int i); 数字处理函数
int letter(char s[],int i); 字符处理函数
int operation(char s[],int i); 运算符处理函数
void seti (char s[]); 标识符建立函数
void setc (char s[]); 常量建立函数
void cfile(char s1[], char s2[],int m); 将词和词所在表中位置写入编译后文件 void error1(char s[]); 字符处理出错报告
void error2(char s[]); 标识符处理出错报告
void error3(char s[]); 运算符处理出错报告
void openall(); 打开所有文件
void writeall(); 将四个表写入文件
void closeall(); 关闭所有文件
下面简要分析一下词法分析程序的运行流程:

编译原理词法分析实验报告1_工学_高等教育_教育专区。词法分析实验报告 完整版 编译原理实验1 词法分析实验报告一、 实验目的调试并完成一个词法分析程序,加深对...
编译原理实验报告 实验名称: 实验类型: 指导教师: 专业班级: 姓学名: 号: 编写词法分析程序 验证型实验 何中胜 09 软件 Y 徐裕 09123132 564747336@qq.com ...
关键词:编译原理词法分析器词法分析程序实验报告 1/2 相关文档推荐...如果下一位字符是' * ',则一直往后读,直到遇到一个连续的*/,其中间内容作为...
一、实验目的:掌握编译原理中词法分析的工作原理和实现方法 二、实验仪器: 三、实验原理:设有 C 语言单词子集如下表,用 C 语言设计自身语言子集的词法分析程序。...
编译原理词法分析实验报告_物理_自然科学_专业资料。词法分析器实验报告按<<>编译原理>课程的要求,根据词法分析器的基本原理,设计、编制并调试一个词 法分析程序,...
编译原理实验报告 实验一 一、实验名称:词法分析器的设计 实验名称: 实验目的: 二、实验目的:1,词法分析器能够识别简单语言的单词符号 2, 识别出并输出简单语言...
编译原理实验报告一 简单样本语言的词法分析器_工学_高等教育_教育专区。昆明...同时这次试验让我了解到如何设计、编制并调试词法分析程序,加深对词 法分析原理...
编译原理实验报告 实验名称: 实验类型: 指导教师: 专业班级: 姓名: 学号: ...一、 实验目的通过设计、调试词法分析程序,实现从源程序中分出各种单词的方法; ...
编译原理实验报告(词法分析)_IT/计算机_专业资料。编译原理实验报告(词法分析)... 递归子程序法:对应每个非终结符语法单元,编一个独立的处理过程(或子 程序)。...
编译原理词法分析程序设计实验报 告【实验目的】 1.了解词法分析的主要任务。 2. 熟悉编译程序的编制。 【实验内容】 根据某文法,构造一基本词法分析程序。找出该...
热门文档