计算机科学与工程系

编译原理课程设计实验报告

姓名:__ ******__ 学号_ *******__ 年级专业及班级___08计算机科学与技术 成绩

实验名称

词法分析程序设计与实现

完成日期2011/4/12指导教师*******实验目的:能够采用C编程语言实现简单的词法分析程序;设计、编制并调试一个词法分析程序,加深对词法分析原理的理解

实验要求: 1. 对单词的构词规则有明确的定义;

2. 编写的分析程序能够正确识别源程序中的单词符号;

3. 识别出的单词以的形式保存在符号表中(链表);

4. 词法分析中源程序的输入以.c格式,分析后的符号表,将二元组保存在.txt文件中。实验内容:选择高级语言(C语言),编制它的词法分析程序。词法分析程序的实现可以采用任何一种编程工具

实验原理:1、算法的基本任务是从字符串表示的源程序中识别出具有独立意义的单词符号;

2、其基本思想是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。

实验分析:(1)关键字:if else while do case int break等所有的关键字都是小写。

(2)运算符和界符: = + - * / < <= <> > >= = ; ( ) 等

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

ID = _ | letter (letter | digit)*

NUM = digit digit*

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

(5)注释被忽略

(6)各种单词符号对应的种别码

种别码

单词符号

种别码

auto

1

double

2

int

3

struct

4

break

5

else

6

long

7

switch

8

case

9

enum

10

register

11

typedef

12

char

13

extern

14

return

15

union

16

const

17

float

18

short

19

unsigned

20

continue

21

for

22

signed

23

void

24

default

25

goto

26

sizeof

27

volatile

28

do

29

while

30

static

31

if

32

\a

33

\b

34

\f

35

\n

36

\t

37

\v

38

\\

39

\?

40

\’

41

\”

42

\0

43

\ddd

44

\ xhh

45

数字

46

标识符

47

#

48

(

49

)

50

[

51

]

52

{

53

}

54

55

*

56

:

57

~

58

%

59

^

60

+

61

?

62

=

63

|

64

&

65

!

66

<

67

>

68

>=

69

==

70

>>

71

!=

72

<<

73

&&

74

<=

75

||

76

++

77

?=

78

-

79

--

80

->

81

82

%A(A可为d’s’c)

83

;

84

_

85

/

86

87

88

89

90

91

其他类别

99

实验流程图(由于流程图过大因此各部分分开写):

整体:

扫描注释:

扫描数字:

扫描引号:

扫描单词:

扫描其他字符:

实验环境:需要TC、VC++ 6.0等开发工具作为本次试验的环境。

实验步骤:

1、准备: 用TC、VC++等开发工具;

2、对本实验的任务进行分析,确定实现功能的函数;

3、写好程序,仔细修改函数;

4、上机操作:输入源程序,修改、调试,运行。

5、写好试验报告。实验调试过程及测试结果

/*******************************源代码******************************/

#include

#include

#include

#include

void main()

{

FILE *fp,*fp1;

int hanjsq=1;//行计数器,保存行号

int guanjz(char ch1[]);//关键字和标识符判断

char ch,infile[15],outfile[15];//定义输入和输出文件名

printf("*****************Enter the infile name*******************\n");

scanf("%s",infile);//输入需要扫描

c语言标识符的词法形式,C语言词法器实验.doc相关推荐

  1. 语言怎么表示词谱_跨语言词表示方法(一)

    词表示方法相信大家都很熟悉了,word2vec, glove, ELMo等等,这些词向量都是在大规模的文本语料上训练得到的.预训练模型出来之前,NLP的范式都是词向量加上各种"花里胡哨&qu ...

  2. C语言基础 C语言标识符

    标识符在程序中用来标识各种程序成分,命名程序中的一些实体,如变量.常量.函数.类型和符号等对象. C语言规定,合法的标识符必须由英文字母或下划线开头,是字母.数字和下划线的序列.     在C语言中, ...

  3. 表达式ya是不合法的c语言标识符,《C语言程序设计》试题3及答案

    <<C语言程序设计>试题3及答案>由会员分享,可在线阅读,更多相关<<C语言程序设计>试题3及答案(14页珍藏版)>请在人人文库网上搜索. 1.C 语言 ...

  4. c语言高函数正确形式,计算机二级C语言考点解析:函数

    小编所收集到的相关计算机二级C语言考点解析:函数的资料 大家要认真阅读哦! 一.库函数的正确调用 1.C语言提供了丰富的库函数,包括常用数学函数.对字符和字符串处理函数.输入输出处理函数等.在调用库函 ...

  5. 后期维特根斯坦的语境观“:语言游戏”与“生活形式”

    [作者单位:福建师范大学] 摘 要:后期维特根斯坦批判了自己前期的意义图象论,提出了语言的意义在于对其的使用这一观点.将意义与语言使用联系在一起必然牵扯到语境这一要素,而维氏将语言游戏看作是语言与活动 ...

  6. c语言的标识符可分为哪3种字符,c语言标识符有哪三类?

    在计算机编程语言中,标识符是用户编程时使用的名字,用于给变量.常量.函数.语句块等命名,以建立起名称与使用之间的关系.标识符通常由字母和数字以及其它字符构成. c语言标识符的分类 C语言中标识符有三类 ...

  7. 计算机网络符号意思,浅析网络语言中的符号网语_计算机网络论文.doc

    浅析网络语言中的符号网语_计算机网络论文.doc 浅析网络语言中的符号网语_计算机网络论文 浅析网络语言中的符号网语_计算机网络论文 论文关键词:符号网语特征成因规范 论文摘要:随着网络的普及,网络语 ...

  8. c语言关键字不做标识符,C语言标识符、关键字、注释、表达式和语句

    这一节主要讲解C语言中的几个基本概念. 标识符 定义变量时,我们使用了诸如 a.abc.mn123 这样的名字,它们都是标识符(Identifier). 标识符就是程序员自己起的名字,除了变量名,后面 ...

  9. [工具]-C语言中字符串的形式打印16进制数据

    C语言中字符串的形式打印16进制数据. 这样写,输出更直观些 #define PRINT_BUF_MAX (32) #define TAG_STRING_MAX (32) static void pr ...

最新文章

  1. python打开一个文件-python下几种打开文件的方式
  2. 理解 Python 面向对象
  3. ServletContextListener
  4. python自增_关于 python 的自增运算
  5. 浅谈CC攻击原理与防范
  6. 吴恩达深度学习4.2练习_Convolutional Neural Networks_Residual Networks
  7. 【自爆系列】浅谈我前端开发的那些糗事
  8. ArrayBlockingQueue源码分析
  9. webstorm 去点右边白线
  10. 简单将xml数据转换为txt数据
  11. 中继器、集线器、网桥、交换机、路由器、网关的超全总结
  12. SmokePing安装手册
  13. 新加坡百吉生物获5亿元投资;武田中国总部/亚洲开发中心落户上海浦东 | 医药健闻...
  14. 【17】C语言 | 函数递归题
  15. Leetcode刷题笔记 714. 买卖股票的最佳时机含手续费
  16. CSS层叠性(重要)
  17. 基岩版刷铁傀儡机制和Java_我的世界:Java版1.14获得铁傀儡的四种方式,第三种千万别忘记...
  18. python海龟漂亮图案代码大全_带有海龟图案的Python花
  19. Linux信号(signal)
  20. CSDN是中国软件开发联盟

热门文章

  1. 什么是 Immutable Web Apps
  2. 具备自动刷新功能的 SAP ABAP ALV 报表
  3. 如何通过代码获得当前SAP Spartacus Component渲染所基于的slot名称
  4. Spring AOP的一个具体例子
  5. SAP Analytics Cloud里的Smart Insight功能介绍
  6. CL_BSP_WD_VIEW_MANAGER-MANIPULATE_RESPONSE
  7. 一些SAP S4CRM On-Premises开发的代码审查,2017-02-16
  8. how is configuration data loaded for framework preloadLibCss
  9. why in GM0 the extAddTo Controller is not loaded
  10. 使用SAP Cloud Platform Leonardo机器学习提取图片的特征向量