- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理实验题目与要求-20113
编译原理实验题目与要求
实验一:用C语言编写一个只包含部分保留字和单词符号(见语言子集L)的PASCAL语言的扫描器(词法分析器)。
1、该词法分析器的任务:
(1)滤掉源程序中的无用成分,如空格;
(2)输出分类记号供语法分析器使用,并产生两个表格:常数表和标识符表,表的数据结构和包含内容可参看书中第八章符号表;
(3)识别非法输入,并将其标记为“出错记号”。
2、该词法分析器的功能:
以在下面段落中定义的PASCAL语言子集的源程序作为词法分析程序的输入数据。词法分析器打开该文件后,自文件头开始扫描源程序字符,发现符合“单词”定义的源程序字符串时,将它翻译成固定长度的单词内部表示,并查填适当的信息表,一旦发现不符合“单词”定义的源程序字符串时,给出错误提示。经过词法分析后,源程序字符串(源程序的外部表示)被翻译成具有等长信息的单词串(源程序的内部表示),并产生两个表格:常数表和标识符表,它们分别包含了源程序中的所有常数和所有标识符。
3、PASCAL语言子集L----保留字不区分大小写
L={ VAR,BEGIN,ELSE,END,IF,THEN,REAL,INTEGER,=,:=,-,+,*,; ,. }∪{常数}∪{标识符}
4、实验要求:
(1)词法分析器构造:正规式设计、DFA设计、代码编写;?(2)进行词法分析器的测试:测试例程(一小段程序)、测试结果与测试结果分析。
(3)实验报告格式自拟;实验报告中要对实验要求中正规式设计、DFA设计、代码编写、测试例程(3中定义的PASCAL语言子集的源程序段)、测试结果与测试结果分析逐项给予说明。
例子:
本例中单词符号(记号)的种类:
1、保留字;
2、分隔符;
3、运算符;
4、等符
5、常数;
6、标识符
(单词符号的分类可以自己规定,只是要在实验报告中给出说明)
测试例程PASCAL程序清单如下:
BEGIN
IF I=1 THEN ^
A:=I+1
ELSE *
IF I=2 THEN
A:=I+11;
END. #
运行词法分析程序后,显示如下结果如下:
BEGIN (1,1)
IF (1,4)
I (6,0)
= (4,2)
1 (5,0)
THEN (1,5)
^ error, not a word
A (6,1)
:= (2,2)
I (6,0)
+ (3,0)
1 (5,0)
ELSE (1,2)
* (3,2)
error, not a word
IF (1,4)
I (6,0)
= (4,2)
2 (5,1)
THEN (1,5)
A (6,1)
:= (2,2)
I (6,0)
+ (3,0)
11 (5,2)
; (2,1)
END (1,3)
. (2,3)
# error, not a word
over
常数表CT:1,2
标识符表LT:I,A
实验二:编写一个人机对弈五子棋游戏,语言自选。
1、程序的功能:
运行该程序可进行人与机器玩五子棋游戏。
2、实验要求:
给出程序的数据结构、评分规则、胜负判断方法和有哪些信誉好的足球投注网站算法。 时数 实验地点 周次 节次 实验1 2 1班102,2班104,
111也可上机 6 14 实验1 or 实验2 2 同上 10 14 程序检查验收 2 同上 12 14
实验报告上交时间:
最后一次上机后1周内,实验一报告内容见实验一;实验二可不写报告。
文档评论(0)