完整版系统软件开发实践报告.docx
- 文档编号:12694057
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:25
- 大小:66.74KB
完整版系统软件开发实践报告.docx
《完整版系统软件开发实践报告.docx》由会员分享,可在线阅读,更多相关《完整版系统软件开发实践报告.docx(25页珍藏版)》请在冰点文库上搜索。
完整版系统软件开发实践报告
计算机科学与技术学院
系统软件开发实践报告
王冬升姓名:
08123228号:
学业:
专计算机科学与技术
级:
班计科12-1班博指导教师:
张
月20154年
摘要
操作系统和编译原理是大学计算机专业的必修课程。
在这些课程的教学教程中,容易偏重于理论的介绍,而忽视了实践环节。
本课程设计是在完成C++程序设计、数据结构、操作系统、编译技术教学后所进行的,全面综合训练学生的系统软件开发能力
关键字:
编译系统、Flex、Bison、操作系统、启动、内存管理
计算机科学与技术学院系统软件开发实践报告第1页
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
13…………………………………:
启动操作系统5(操作系统实验)lib113………………………………………………………………5.1实验目的14………………………………………………………………5.2实验内容14………………………………………………………………5.3实验步骤15……………………………………………………5.4操作系统启动过程
16……………………………………………………5.5实模式与保护模式
16…………………………………:
物理内存管理6(操作系统实验)lib216………………………………………………………………6.1实验目的16………………………………………………………………6.2实验内容………………………………………………………………6.3
实验体会……………………………………………………………………7……………………………………………………………………参考文献8
计算机科学与技术学院系统软件开发实践报告第2页
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]
计算机科学与技术学院系统软件开发实践报告第3页
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];
牰湩晴尨输入文件名:
);
scanf(%s,infilename);
yyin=fopen(infilename,
);
yyout=fopen(out,w);
yylex();
return0;
}
1-1.cpp
测试程序:
#include
usingnamespacestd;
计算机科学与技术学院系统软件开发实践报告第4页
intmain(){
inta;
intd=123456;
floatb=123.45;
inte=9;
a=(1+2-1)*4/2;
if(a>b)cout<b<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 系统软件 开发 实践 报告