




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2017编译原理 课程上机报告专 业:软件工程班 级:14级1班学 号:1402120204姓 名: 陈晨指导老师:杨全报告日期: 目录一、课程设计的目的3二、课程设计的要求 4三、课程设计的内容5四、总体设计方案及详细设计6五、词法分析器的构造步骤:7六、测试实例:8七、测试结果:9八、源程序代码10一、课程设计的目的编译原理课程兼有很强的理论性和实践性,是计算机专业的一门非常重要的专业基础课程,它在系统软件中占有十分重要的地位,是计算机专业学生的一门主修课。为了让学生能够更好地掌握编译原理的基本理论和编译程序构造的基本方法和技巧,融会贯通本课程所学专业理论知识,提高他们的软件设计
2、能力,特设定该课程的课程设计,通过设计一个简单的C语言的编译程序,提高学生设计程序的能力,加深对编译理论知识二、课程设计的要求 1、 明确课程设计任务,复习编译理论知识,查阅复印相关的编译资料。 2、 按要求完成课程设计内容,课程设计报告要求文字和图表工整、思路清晰、算法正确。 3、 写出完整的算法框架。 4、 编写完整的编译程序三、课程设计的内容 课程设计是一项综合性实践环节,是对平时实验的一个补充,课程设计内容包括课程的主要理论知识,但由于编译的知识量较复杂而且综合性较强,因而对一个完整的编译程序不适合平时实验
3、。通过课程设计可以达到综合设计编译程序的目的。本课程的课程设计要求学生编写一个完整的编译程序,包括词法分析器、语法分析器以及实现对简单程序设计语言中的逻辑运算表达式、算术运算表达式、赋值语句、IF语句、While语句以及dowhile语句进行编译,并生成中间代码和直接生汇编指令的代码生成器。 四、总体设计方案及详细设计总体设计方案: 1.总体模块 五、词法分析器的构造步骤:正规式NFADFA最小DFA编写程序测试词法分析器的三个任务: 1 滤掉原程序中的无用成分; 2输出记号供语法分析器使用; 3识别非法输入,并将其标记为“出错记号”。六、测试实例:七、测试结果
4、:八、源程序代码#include "semantics.h"#include <stdio.h>#define MAX_CHARS 200extern void Parser(char *SrcFilePtr);HDC hDC;char SrcFilePathMAX_CHARS;static char Name = "Compiler"/-初始化窗口函数声明static bool PrepareWindow(HINSTANCE, HINSTANCE, int);/-检查源程序文件是否合法函数声明static bool CheckSrcFile
5、(LPSTR);/-窗口消息处理函数声明static LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);/-Window 程序主函数int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)/保存源文件路径strcpy(SrcFilePath, lpCmdLine);/初始化窗口if(PrepareWindow(hInstance, hPrevInstance, nCmdShow)!=true) Mess
6、ageBox(NULL, "窗口初始化失败 !", "错误", MB_OK);return 1;/检查要分析的源程序文件if(!CheckSrcFile(lpCmdLine)return 1;/-/ 调用绘图语言解释器Parser(SrcFilePath);/-/进入窗口消息循环MSG Msg;while(GetMessage(&Msg, NULL,0, 0) TranslateMessage(&Msg);DispatchMessage(&Msg);return Msg.wParam;/-初始化窗口函数实现bool Prepare
7、Window(HINSTANCE hInst, HINSTANCE hPrevInstance, int nCmdShow) HWND hWnd;WNDCLASS W;memset(&W, 0, sizeof(WNDCLASS);W.style = CS_HREDRAW | CS_VREDRAW;W.lpfnWndProc = WndProc;W.hInstance = hInst;W.hCursor = LoadCursor(NULL, IDC_ARROW);W.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);W.lpszClassName =
8、Name;RegisterClass(&W);hWnd = CreateWindow(Name, Name,WS_OVERLAPPEDWINDOW,225, 225, 740, 490, NULL, NULL,hInst,NULL);if(hWnd = NULL) return false;ShowWindow(hWnd, nCmdShow);UpdateWindow(hWnd);SetCursor(LoadCursor(hInst, IDC_ARROW);hDC = GetDC(hWnd);return true;/-检查源程序文件是否合法函数实现bool CheckSrcFile(
9、LPSTR lpszCmdParam) FILE *file = NULL;if(strlen(lpszCmdParam) = 0) MessageBox(NULL,"未指定源程序文件!", "Error", MB_OK);return false;if(file=fopen(lpszCmdParam, "r")=NULL) MessageBox(NULL, "打开源程序文件出错!", "错误", MB_OK);MessageBox(NULL, lpszCmdParam, "文件名", MB_OK);return false;else fclose(file);return true;/-窗口消息处理函数实现LRESULT CALLBACK WndProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam) switch(Message) case WM_DESTROY :ReleaseDC(hWnd, hDC);PostQuitMessage(0);return 0;case
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年水利水电工程选择题试题及答案
- 公共关系学的公关活动策划综合研究及试题及答案
- 城市智能停靠系统的建设分析试题及答案
- 市政工程与经济发展试题及答案
- 公共关系学品牌传播试题及答案名词
- 工程经济关键环节试题及答案
- 公共关系中的定制传播试题及答案
- 公共关系与人际沟通的联系试题及答案
- 工程项目绩效管理与评价试题及答案
- 关键知识点的市政工程试题及答案
- 2025年河北省秦皇岛市海港区中考一模数学试卷(原卷版+解析版)
- 2025年注册测绘师考试测绘地理信息数据处理与应用试题
- 二手车货车合同协议书
- 2024-2025部编版小学道德与法治二年级下册期末考试卷及答案
- 测井试题及答案完整版
- 外贸英语词汇
- 中级出版专业技术人员职业资格2025年笔试题库附答案
- 江苏南通2025年公开招聘农村(村务)工作者笔试题带答案分析
- 东南地区周代冶金考古研究新进展
- 中南大学毕业答辩学术论文模板
- 专利代缴年费合同协议
评论
0/150
提交评论