篇一 :编译原理实验报告词法分析

编译原理实验报告

词法分析器

学院:计算机科学与技术

时间:2012/6/9

一、    问题描述

选择计算机高级程序语言之一 —— C语言,运用恰当的词法分析技术线路,设计和实现其对应的词法分析器

提示:技术线路选择如下两种之一:

正则式→NFA→DFA→min DFA→程序设计

或 正则文法→NFA→DFA→min DFA→程序设计。

要求:分析器输出结果存入到磁盘文件中,具有出错处理功能。

二、    系统分析

编译原理涉及词法分析,语法分析,语义分析及优化设计等各方面。词法分析阶段是编译过程的第一个阶段,是编译的基础。这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号)。词法分析程序实现这个任务。从左到右逐个字符对构成源程序的字符串进行扫描,依据词法规则,识别出一个一个的标记(token),把源程序变为等价的标记串序列。执行词法分析的程序称为词法分析器,也称为扫描器。本次实验,我选择用C++来实现这个词法分析器。

程序语言的单词符号一般分为以下六种:关键字、标识符、常量、运算符、界符、字符串

词法分析程序所输出的单词符号常常采用以下二元式表示:(单词 种别,单词自身的值),单词的种别是语法分析所需要的信息,而单 词自身的值是编译其他阶段需要的信息。 

    单词的种别可以用整数编码表示,比如标识符编码为 1,程序最 后输出的形式应为: 

            关键字 int         (2      ,  int ) 

…… …… 余下全文

篇二 :编译原理词法分析器实验报告

曲阜师范大学实验报告

No.              

 


             2008      年级    软件工程 一                    组         日期  2010年10月17日星期日             

姓名     陈金金                         同组者姓名                                                               

…… …… 余下全文

篇三 :编译原理词法分析实验报告1

实验1  词法分析实验报告

一、      实验目的

调试并完成一个词法分析程序,加深对词法分析原理的理解。

。。。。。

二、      实验要求

1、             待分析的简单语言的词法

(1)    关键字:

begin  if   then   while   do   end

所有关键字都是小写。

(2)    运算符和界符:

:=   +      *   /   <   <=   <>   >   >=   =   ;   (   )   #

(3)    其他单词是标识符(ID)和整型常数(NUM),通过以下正规式定义:

ID=letter(letter| digit)*

NUM=digit digit *

(4)    空格由空白、制表符和换行符组成。空格一般用来分隔ID、NUM,运算符、界符和关键字,词法分析阶段通常被忽略。

。。。。

2、             各种单词符号对应的种别码

…… …… 余下全文

篇四 :编译原理_词法分析器_实验报告

词法分析器实验报告

实验目的:

设计、编制、调试一个词法分析子程序-识别单词,加深对词法分析原理的理解。

功能描述

该程序要实现的是一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。(遇到错误时可显示“Error!”,然后跳过错误部分继续进行)

设计思想:

设计该词法分析器的过程中虽然没有实际将所有的状态转移表建立出来,但是所用的思想是根据状态转移表实现对单词的识别。首先构造一个保留字表,然后,每输入一个字符就检测应该进入什么状态,并将该字符连接到d串后继续输入,如此循环,最后根据所在的接受状态以及保留字表识别单词。

符号表:

状态转换图:

标识符及保留字:

number:

关系操作符:

分隔符:

算术运算符:

使用环境:

Windows xp下的visual c++6.0

程序测试:

input1 :

int a,b;

a=b+2;

input2:

while(a>=0)

do

7x=x+6.7E+23;

end;

input3:

begin:

x:=9

if x>0 then x:=x+1;

while a:=0 do

b:=2*x/3,c:=a;

end;


output1:

3,int

3,a

5,,

3,b

5,;

3,a

2,=

3,b

2,+

4,2

5,;


output2:

1,while

5,(

3,a

2,>=

4,0

5,)

1,do

error line 3

2,=

3,x

2,+

4,6.7E+23

5,;

1,end

5,;


output3:

1,begin

…… …… 余下全文

篇五 :编译原理实验-词法分析器的设计

集美大学计算机工程学院实验报告

一、实验目的

通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。

二、实验内容

编写一个词法分析器,从输入的源程序(编写的语言为C语言的一个子集)中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。(遇到错误时可显示“Error”,然后跳过错误部分继续显示)

三、实验要求

1、  词法分析器的功能和输出格式

词法分析器的功能是输入源程序,输出单词符号。词法分析器的单词符号常常表示成以下的二元式(单词种别码,单词符号的属性值)。

2、上述要求仅为基本要求,可以在此基础上扩充,例如删除注释,增加识别单词的类型,将标识符和常量分别插入到相应的符号表中,增加错误处理等。

3、编程语言不限。

四、实验设计方案

1、数据字典

本实验用到的数据字典如下表所示:

本实验所使用的开发语言是C语言,在Test2类中定义了以下几个函数:

   

2.程序流程图:

编译原理实验-词法分析器的设计

3、实验程序

#include

#include

#include

#include

//判断读入的字符是否为字母

bool isLetter(char c){

       if((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')){

…… …… 余下全文

篇六 :编译原理词法分析器实验报告

塔里木大学-信息工程学院 编译原理实验

编译原理结课论文

题目: 词法分析器

学号:

作者:

班级:

电话:

Email:

教师:

递交日期: 年 月 日

塔里木大学-信息工程学院 编译原理实验

目录

摘要 .................................................................................................................................................. 3

涉及知识点 ...................................................................................................................................... 3

1. 输入、预处理..................................................................................................................... 3

2.单词符号的识别—状态转换图........................................................................................... 3

3.利用状态转换图识别单词(Token)的步骤..................................................................... 3

…… …… 余下全文

篇七 :编译原理词法分析器实验报告

《编理》

实验报告

                            ——词法分析器

                                           

                          

院系:

                                班级:

                                姓名:

…… …… 余下全文

篇八 :词法分析器语法分析器实验报告(编译原理超实用)

山东大学

编译技术课程设计

班    级   软件一班

学    号   2008008000XX

姓    名   软件一班万岁

指导老师   贺老师

二零一一年 三 月


一、目的

<<编译技术>>是理论与实践并重的课程,而其实验课要综合运用一、二年级所学的多门课程的内容,用来完成一个小型编译程序。从而巩固和加强对词法分析、语法分析、语义分析、代码生成和报错处理等理论的认识和理解;培养学生对完整系统的独立分析和设计的能力,进一步培养学生的独立编程能力。

二、任务及要求

基本要求:

1.词法分析器  产生下述小语言的单词序列

这个小语言的所有的单词符号,以及它们的种别编码和内部值如下表:

    

对于这个小语言,有几点重要的限制:

首先,所有的关键字(如IF﹑WHILE等)都是“保留字”。所谓的保留字的意思是,用户不得使用它们作为自己定义的标示符。例如,下面的写法是绝对禁止的:

                      IF(5)=x                     

…… …… 余下全文