全球旧事资料 分类
计算机科学与工程系编译原理课程设计实验报告
姓名:____学号___年级专业及班级___08计算机科学与技术成绩
实验名称
词法分析程序设计与实现
完成日期
2011412
指导教师
实验目的:能够采用C编程语言实现简单的词法分析程序;设计、编制并调试一个词法分析程序,加深对词法分析原理的理解
实验要求:1对单词的构词规则有明确的定义;2编写的分析程序能够正确识别源程序中的单词符号;3识别出的单词以单词符号,种别码的形式保存在符号表中(链表);4词法分析中源程序的输入以c格式,分析后的符号表,将二元组保存在txt文件中。
实验内容:选择高级语言C语言,编制它的词法分析程序。词法分析程序的实现可以采用任何一种编程工具
实验原理:1、算法的基本任务是从字符串表示的源程序中识别出具有独立意义的单词符号;
2、其基本思想是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。
实验分析:(1)关键字:ifelsewhiledocasei
tbreak等所有的关键字都是小写。
(2)运算符和界符:等
(3)其他单词是标识符(ID)和整型常数(SUM),通过以下正规式定义:
ID_letterletterdigit
NUMdigitdigit
(4)空格有空白、制表符和换行符组成。空格一般用来分隔ID、SUM、运算符、界符和关键字,词法分析阶段通常被忽略。
(5)注释被忽略
(6)各种单词符号对应的种别码(如下):
单词符号
种别码
单词符号
种别码
auto
1
double
2
i
t
3
struct
4
break
5
else
6
1
flo
g
7
case
9
register
11
char
13
retur

15
co
st
17
short
19
co
ti
ue
21
sig
ed
23
default
25
sizeof
27
do
29
static
31
a
33
f
35
t
37

39

41
0
43
xhh
45
标识符
47

49
switch
8
e
um
10
typedef
12
exter

14
u
io

16
float
18
u
sig
ed
20
for
22
void
24
goto
26
volatile
28
while
30
if
32
b
34


36
v
38

40

42
ddd
44
数字
46

48

50
2
f
51

53

55

57

59

61

63

65

67

69

71

73

75

77

79

81
A(A可为d’s’c)83
_
85
87
89
91

52

54

56

58

60

62

64

66

68

70

72

74

76

78

80

82

84

86
88
90
其他类别
99
3
f实验流程图(由于流程图过大因此各部分分开写):整体:
输入扫描结果另存为的文件名
输入需要扫描的文件名
返回,结束程序
判断文件是否为空

预读一位Ch
行计数器自加1

Ch是否为空格

Ch是否为字母或下划线
扫描注释:
p处
跳转到扫描头是文件单词r
好听全球资料 返回顶部