孙孝哲严庄:编译原理问题

来源:百度文库 编辑:中科新闻网 时间:2024/04/26 06:11:22
程序输入/输出示例:
如源程序为C语言。输入如下一段:
main()
{
int a,b;
a = 10;
b = a + 20;
}
要求输出如右图。
要求:
识别保留字:if、int、for、while、do、return、break、continue
其他的都识别为标识符;
常数为无符号整形数;
运算符包括:+、-、*、/、=、>、<、>=、<=、!=
分隔符包括:,、;、{、}、(、)
以上为参考,具体可自行增删。

程序思路(仅供参考):
0.定义部分:定义常量、变量、数据结构。
1.初始化:从文件将源程序全部输入到字符缓冲区中。
2.取单词前:去掉多余空白。
3.取单词后:去掉多余空白(可选,看着办)。
4.取单词:利用实验一的成果读出单词的每一个字符,组成单词,分析类型。(关键是如何判断取单词结束?取到的单词是什么类型的单词?)
5.显示结果。
(四)练习该实验的目的和思路:
程序开始变得复杂起来,可能是大家以前编过的程序中最复杂的,但相对于以后的程序来说还是简单的。因此要认真把握这个过渡期的练习。程序规模大概为200行。本实验和以后的实验相关。通过练习,掌握对字符进行灵活处理的方法。
(五)为了能设计好程序,主意以下事情:
1.模块设计:将程序分成合理的多个模块(函数),每个模块做具体的同一事情。
2.写出(画出)设计方案:模块关系简图、流程图、全局变量、函数接口等。
3.编程时注意编程风格:空行的使用、注释的使用、缩进的使用等。
四、上交:
1.程序源代码(交实验报告时一起提交);
2.实验报告:
(1)功能描述:该程序具有什么功能?
(2)程序结构描述:函数调用格式、参数含义、返回值描述、函数功能;函数之间的调用关系图、程序总体执行流程图(参考课本第二章)。
(3)实验过程记录:出错次数、出错严重程度、解决办法摘要。
(4)实验总结:你在编程过程中花时多少?多少时间在纸上设计?多少时间上机输入和调试?多少时间在思考问题?遇到了哪些难题?你是怎么克服的?你对你的程序的评价?你的收获有哪些?
附参考流程图:

俺在写实验报告不知道怎么写,谁能帮助下俺,^_^

你是长春理工大学的吧?
前几天我们刚写完,一样的.