文档介绍:计算机科学与技术学院
系统软件开发实践报告
姓名: 王冬升
学号: 08123228
专业: 计算机科学与技术
班级: 计科12-1班
指导教师: 张博
2015年 4月
摘要
操作系统和编译原理是大学计算机专业的必修课程。在这些课程的教学教程中,容易偏重于理论的介绍,而忽视了实践环节。
本课程设计是在完成C++程序设计、数据结构、操作系统、编译技术教学后所进行的,全面综合训练学生的系统软件开发能力
关键字:编译系统、Flex、Bison、操作系统、启动、内存管理
目录
1 借助Flex进行词法分析…………………………………………………2
………………………………………………………………2
实验要求………………………………………………………………2
程序代码………………………………………………………………2
实验结果………………………………………………………………4
2 借助Flex/Bison进行语法分析…………………………………………5
实验内容………………………………………………………………5
实验要求………………………………………………………………5
程序代码………………………………………………………………5
实验步骤………………………………………………………………5
实验结果………………………………………………………………7
3 Flex/Bison综合实验……………………………………………………7
实验内容………………………………………………………………7
计算器具体需要实现的功能…………………………………………7
实验要求………………………………………………………………7
3,4 程序代码………………………………………………………………8
实验结果………………………………………………………………11
4(操作系统实验)lib0:熟悉实验环境…………………………………11
实验目的………………………………………………………………11
实验环境搭建…………………………………………………………11
GCC编译练习…………………………………………………………12
GDB调试练习…………………………………………………………12
5(操作系统实验)lib1:启动操作系统…………………………………13
实验目的………………………………………………………………13
实验内容………………………………………………………………14
实验步骤………………………………………………………………14
操作系统启动过程……………………………………………………15
实模式与保护模式……………………………………………………16
6(操作系统实验)lib2:物理内存管理…………………………………16
实验目的………………………………………………………………16
实验内容………………………………………………………………16
………………………………………………………………
7实验体会……………………………………………………………………
8参考文献……………………………………………………………………
1借助Flex进行词法分析
给定C语言的一个子集,具体内容如下:
1. 下面是语言的关键字:
else if switch for int float return void while 所有的关键字都是保留字,并且必须是小写。
2. 下面是专用符号:
+ - * / < <= > >= == != = ; , ( ) [ ] { } /* */
3. 其他标记是标识符(ID) 和数字(NU ),通过下列正则表达式定义:
ID = letter letter*
NUM = digit digit*
letter = a|..|z|A|..|Z
digit = 0|..|9
注:小写和大写字母是有区别的。
4. 空格由空白、换行符和制表符组成。空格通常被忽略,除了它必须分开ID、NUM 关键字。
5. 注释用通常的C语言符号/* . . . */围起来。注释可以放在任何空白出现的位置(即注释不能放在标记内)上,且可以超过一行。注释不能嵌套
编写 LEX 源文件,实现C 语言子集的词法分析功能,最后上机调试。
要求编写一个测试程序,以给定的测试文件作为输入,输出运