完整版系统软件开发实践报告.docx
- 文档编号:29455892
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:26
- 大小:983.48KB
完整版系统软件开发实践报告.docx
《完整版系统软件开发实践报告.docx》由会员分享,可在线阅读,更多相关《完整版系统软件开发实践报告.docx(26页珍藏版)》请在冰豆网上搜索。
完整版系统软件开发实践报告
计算机科学与技术学院
系统软件开发实践报告
姓名:
王冬升
学号:
08123228
专业:
计算机科学与技术
班级:
计科12-1班
指导教师:
张博
2015年4月
摘要
操作系统和编译原理是大学计算机专业的必修课程。
在这些课程的教学教程中,容易偏重于理论的介绍,而忽视了实践环节。
本课程设计是在完成C++程序设计、数据结构、操作系统、编译技术教学后所进行的,全面综合训练学生的系统软件开发能力
关键字:
编译系统、Flex、Bison、操作系统、启动、内存管理
1借助Flex进行词法分析…………………………………………………2
1.1实验内容………………………………………………………………2
1.2实验要求………………………………………………………………2
1.3程序代码………………………………………………………………2
1.4实验结果………………………………………………………………4
2借助Flex/Bison进行语法分析…………………………………………5
2.1实验内容………………………………………………………………5
2.2实验要求………………………………………………………………5
2.3程序代码………………………………………………………………5
2.4实验步骤………………………………………………………………5
2.5实验结果………………………………………………………………7
3Flex/Bison综合实验……………………………………………………7
3.1实验内容………………………………………………………………7
3.2计算器具体需要实现的功能…………………………………………7
3.3实验要求………………………………………………………………7
3,4程序代码………………………………………………………………8
3.5实验结果………………………………………………………………11
4(操作系统实验)lib0:
熟悉实验环境…………………………………11
4.1实验目的………………………………………………………………11
4.2实验环境搭建…………………………………………………………11
4.3GCC编译练习…………………………………………………………12
4.4GDB调试练习…………………………………………………………12
5(操作系统实验)lib1:
启动操作系统…………………………………13
5.1实验目的………………………………………………………………13
5.2实验内容………………………………………………………………14
5.3实验步骤………………………………………………………………14
5.4操作系统启动过程……………………………………………………15
5.5实模式与保护模式……………………………………………………16
6(操作系统实验)lib2:
物理内存管理…………………………………16
6.1实验目的………………………………………………………………16
6.2实验内容………………………………………………………………16
6.3………………………………………………………………
7实验体会……………………………………………………………………
8参考文献……………………………………………………………………
1借助Flex进行词法分析
1.1实验内容
给定C语言的一个子集,具体内容如下:
1.下面是语言的关键字:
elseifswitchforintfloatreturnvoidwhile所有的关键字都是保留字,并且必须是小写。
2.下面是专用符号:
+-*/<<=>>===!
==;,()[]{}/**/
3.其他标记是标识符(ID)和数字(NU),通过下列正则表达式定义:
ID=letterletter*
NUM=digitdigit*
letter=a|..|z|A|..|Z
digit=0|..|9
注:
小写和大写字母是有区别的。
4.空格由空白、换行符和制表符组成。
空格通常被忽略,除了它必须分开ID、NUM关键字。
5.注释用通常的C语言符号/*...*/围起来。
注释可以放在任何空白出现的位置(即注释不能放在标记内)上,且可以超过一行。
注释不能嵌套
1.2实验要求
编写LEX源文件,实现C语言子集的词法分析功能,最后上机调试。
要求编写一个测试程序,以给定的测试文件作为输入,输出运行结果到输出文件中
1.3程序代码
Lex.l源码:
%{
#include
#include
#include
intyywrap();
intlineno=1;
%}
delim[\t]
ws{delim}+
letter[A-Za-z]
digit[0-9]
id{letter}+
number{digit}+
enter[\n]
spchar("{"|"}"|"["|"]"|"("|")"|";"|"="|","|"+"|"-"|"*"|"/"|"<"|"<="|">"|">="|"=="|"!
=")
comment\/\*(\*[^/]|[^*])*\*\/
kwd(else|if|switch|for|int|float|return|void|while)
%%
{ws}{}
{comment}{}
{enter}{lineno++;}
{kwd}{fprintf(yyout,"%d行\tkeywod\t%s\n",lineno,yytext);}
{spchar}{fprintf(yyout,"%d行\tspchar\t%s\n",lineno,yytext);}
{id}{fprintf(yyout,"%d行\tidenti\t%s\n",lineno,yytext);}
{number}{fprintf(yyout,"%d行\tnumber\t%s\n",lineno,yytext);}.
%%
intyywrap(){return1;}
intmain(void)
{
charinfilename[100];
printf("输入文件名:
");
scanf("%s",infilename);
yyin=fopen(infilename,"r");
yyout=fopen("out","w");
yylex();
return0;
}
测试程序:
1-1.cpp
#include
usingnamespacestd;
intmain(){
inta;
intd=123456;
floatb=123.45;
inte=9;
a=(1+2-1)*4/2;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 系统软件 开发 实践 报告