全球旧事资料 分类
编译原理课程设计
CourseDesig
ofCompili
g
(课程代码)3273526半期题目:词法和语法分析器实验学期:大三第二学期学生班级:2014级软件四班学生学号:2014112218学生姓名:何华均
任课教师:丁光耀信息科学与技术学院
20176
课程设计1C语言词法分析器
1题目
fC语言词法分析
2内容
选一个能正常运行的c语言程序,以该程序出现的字符作为单词符号集,不
用处理c语言的所有单词符号。
将解析到的单词符号对应的二元组输出到文件中保存
可以将扫描缓冲区与输入缓冲区合成一个缓冲区,一次性输入源程序后就可以
进行预处理了
3设计目的
掌握词法分析算法,设计、编制并调试一个词法分析程序,加深对词法分析
原理的理解
4设计环境(电脑语言环境)
语言环境C语言
CPUi7HQ6700
内存:8G
5概要设计(单词符号表,状态转换图)
51词法分析器的结构
词法分析程序的功能:
输入:所给文法的源程序字符串。
输出:二元组(sy
toke
或sum)构成的序列。
词法分析程序可以单独为一个程序;也可以作为整个编译程序的一个子程
序,当需要一个单词时,就调用此法分析子程序返回一个单词
为便于程序实现假设每个单词间都有界符或运算符或空格隔开并引入下面
的全局变量及子程序
1ch
存放最新读进的源程序字符
2strToke

存放构成单词符号的字符串
3Buffer
字符缓冲区
4)structkeyType存放保留字的符号和种别
源程序
输入缓冲区
调用
词法分析子程序
52待分析的简单词法预处理子程序
(1)保留字
数据
break、case、char、co
st、i
t、do、while…
(2)运算符和界符
返回一个单词
、、、扫描缓、冲、区、1,、;、(扫、)描、缓?冲、区2
53各种单词符号对应的种别码
单词符号
种别码
单词符号
种别码
ID
0
sizeof
24
INT
1
static
25
auto
2
struct
26
break
3
switch
27
fcase
4
char
5
co
st
6
co
ti
ue
7
default
8
do
9
double
10
else
11
e
um
12
exter

13
float
14
for
15
goto
16
if
17
i
t
18
lo
g
19
register
20
retur

21
short
22
sig
ed
23
53状态转换图
typedef
28
u
io

29
u
sig
ed
30
void
31
volatile
32
while
33

34

35

36

37

38

39

40

41

42

43

44
clear
45

46
lettet
47
(letterdigit)

dightdight48
f6详细设计(数据结构,子程序)算法思想:首先设置3个变量:①strToke
用来存放构成单词符号的字符串;②ch用来字符;③structkeyType用来存放单词符号的种别码。扫描子程序主要部分流程如下图所示。
f子程序结构:子程序名
GETCHARGETBCCONCATLETTERDIGITRESERVE
RETRACTr
好听全球资料 返回顶部