好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

系统软件开发实践报告.docx

25页
  • 卖家[上传人]:工****
  • 文档编号:402185867
  • 上传时间:2023-11-11
  • 文档格式:DOCX
  • 文档大小:1,008.73KB
  • / 25 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 计算机科学与技术学院系统软件开发实践报告姓 名: 王冬升 学 号: 08123228 专 业: 计算机科学与技术 班 级: 计科12-1班  指引教师: 张 博 4月 摘 要操作系统和编译原理是大学计算机专业的必修课程。

      在这些课程的教学教程中,容易偏重于理论的简介,而忽视了实践环节本课程设计是在完毕C++程序设计、数据构造、操作系统、编译技术教学后所进行的,全面综合训练学生的系统软件开发能力核心字:编译系统、Flex、Bison、操作系统、启动、内存管理目 录1 借助Flex进行词法分析 …………………………………………………2 1.1实验内容 ………………………………………………………………2 1.2 实验规定 ………………………………………………………………2 1.3 程序代码 ………………………………………………………………2 1.4 实验成果 ………………………………………………………………42 借助Flex/Bison进行语法分析 …………………………………………5 2.1 实验内容 ………………………………………………………………5 2.2 实验规定 ………………………………………………………………52.3 程序代码 ………………………………………………………………52.4 实验环节 ………………………………………………………………52.5 实验成果 ………………………………………………………………73 Flex/Bison综合实验 ……………………………………………………7 3.1 实验内容 ………………………………………………………………7 3.2 计算器具体需要实现的功能 …………………………………………7 3.3 实验规定 ………………………………………………………………7 3,4 程序代码 ………………………………………………………………8 3.5 实验成果 ………………………………………………………………114(操作系统实验)lib0:熟悉实验环境 …………………………………114.1 实验目的 ………………………………………………………………114.2 实验环境搭建 …………………………………………………………114.3 GCC编译练习 …………………………………………………………124.4 GDB调试练习 …………………………………………………………12 5(操作系统实验)lib1:启动操作系统 …………………………………135.1 实验目的 ………………………………………………………………135.2 实验内容 ………………………………………………………………145.3 实验环节 ………………………………………………………………145.4 操作系统启动过程 ……………………………………………………155.5 实模式与保护模式 ……………………………………………………166(操作系统实验)lib2:物理内存管理 …………………………………166.1 实验目的 ………………………………………………………………166.2 实验内容 ………………………………………………………………166.3 ………………………………………………………………7实验体会 ……………………………………………………………………8参照文献 ……………………………………………………………………1借助Flex进行词法分析1.1实验内容给定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|..|Zdigit = 0|..|9 注:小写和大写字母是有区别的4. 空格由空白、换行符和制表符构成空格一般被忽视,除了它必须分开ID、NUM 核心字5. 注释用一般的C语言符号/* . . . */围起来注释可以放在任何空白浮现的位置(即注释不能放在标记内)上,且可以超过一行注释不能嵌套1.2实验规定编写 LEX 源文献,实现C 语言子集的词法分析功能,最后上机调试规定编写一种测试程序,以给定的测试文献作为输入,输出运营成果到输出文献中1.3程序代码Lex.l源码:%{#include #include #include int yywrap();int lineno=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);}.%%int yywrap() {return 1;}int main(void){ char infilename[100]; printf("输入文献名:"); scanf("%s",infilename); yyin = fopen(infilename,"r"); yyout = fopen("out","w"); yylex(); return 0;}测试程序:1-1.cpp#includeusing namespace std;int main() {int a;int d=123456;float b=123.45;int e=9;a=(1+2-1)*4/2;if(a>b)cout<<"a>b"<

      具体内容:1) 运用语法分析器生成工具Bison编写一种语法分析程序,与词法分析器结合可以根据语言的上下文无关文法,辨认输入的单词序列与否文法的句子2) 运用附录提供的C语言文法的有关参照资料,运用Yacc/Bison编写一种C语言分析器 2.2 实验规定1) 编写 Bison源文献,实现C 语言的语法分析功能,最后上机调试2) 规定编写一种测试程序,以给定的测试文献作为输入,输出运营成果到输出文献中2.3程序代码由于本实验的lex源文献和yacc源文献代码较长并且在“实验附录:C语言有关文。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.