编译实习报告_原实习报告

2020-02-28 实习报告 下载本文

编译实习报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“原实习报告”。

篇1:编译原理实习报告

实习报告

【实习目的】

1.了解编译器的工作原理

2.掌握并加深本学期所学的编译原理的理论知识 3.加强自己的动手能力 【实习内容】

1.编译并运行老师所给的编译器参考代码

2.在第一步的基础上进一步改进编译器,增加输入输出功能 【开发平台】

window系统,free pascal编译器 【实习过程】

本次实习过程根据实习内容共分两大部分,第一部分,编译运行参考代码;第二部分,进一步改进编译器。本人在上面的基础上又增加了第三部分的额外修改。下面便总结这三部 分的实习过程:

一、增加读写语句前pl0编译程序

由于最原始的pl0编译程序所用的pascal版本较老,有些和当前使用版本不兼容,必须作相应修改,具体是:“object”和“procedure”为pascal的保留字,现分别改成“obj” 和“proc”。此外,原始程序中的“≠”、“≤”和“≥”,不能用ascii码表示出来,现将其 替换成“”、“=”。

作为一个编译程序,支持批量处理和永久保存是其应具备的基本功能。为此,本程序加 入了文件读写功能,即从文件读入pl0源程序,在将中间代码和运行结果写入文件。由于源程序和原始差别很小,为节省篇幅,不将其打印出来。

二、增加读写语句前pl0调试程序

下面是增加读写语句前的pl0程序,包含了乘、除法和寻找两个自然数的最大公因数 的过程和主过程,很好的说明了增加读写语句前的pl0语言的使用方法。const var x,y,z,q,r;procedure multiply;var a,b;a:=x;begin m=7,n=85;procedure divide;var end;b:=y;z:=0;while b>0 do begin end if odd b then z:=z+a;a:=2*a;b:=b/2;w;begin r:=x;q:=0;w:=y;while wy do begin q:=2*q;w:=w/2;if wg do begin if f

三、增加读写语句前pl0编译程序生成的中间代码

下面所给清单是用

(一)中增加读写语句前pl0编译程序对

(二)中的pl0程序编译 生成的中间代码。其中,第一部分是pl0程序和对应的中间代码,第二部分(“start pl/0” 到“end pl/0”之间编译程序对生成中间代码的模拟解释执行结果,打印出来的是sto(存 数)指令产生的。

0 const 1 m=7,n=85;1 var1 x,y,z,q,r;1 procedure multiply;1 var2a,b;2 begin 3a:=x;5b:=y;7z:=0;9while b>0 do 13begin 13 if odd b then z:=z+a;20 a:=2*a;24 b:=b/2;28end 28 end;2 int 0 5 3 lod 1 3 4 sto 0 3 5 lod 1 4 6 sto 0 4 7 lit 0 0 8 sto 1 5 9 lod 0 410 lit 0 0 11 opr 012 12 jpc 029 13 lod 0 4 14 opr 0 6 15 jpc 020 16 lod 1 5 17 lod 0 3 18 opr 0 2 19 sto 1 5 20 lit 0 2 21 lod 0 3 22 opr 0 4 23 sto 0 3 24 lod 0 4 25 lit 0 2 26 opr 0 5 27 sto 0 4 28 jmp 0 9 29 opr 0 0 30 30 procedure divide;30 var 31w;31 begin 32r:=x;34q:=0;36w:=y;38while wy do 51begin q:=2*q;w:=w/2;59 if w

1.1实习单位简介 1 2、实习目的 2.1实习内容简要提纲??2 3、操作具体过程 3.1学习安装altium designer 9运行环境? ??3 3.2学习运用altium designer 9,设计并绘制avr单片机系统的pcb电路板 ???4 3.3实现pcb电路板的生成及手工布线 ???5 3.4熟悉tq2440开发板的硬件和基本用法 ??7 3.5编译mp3播放器及移植?8 4、实习总结 4.1实习收获?? 16 4.2个人小结?? 16

一、前言

本次昆山实习作为我们电子信息工程专业的毕业设计意义很大。这次实习的主要内容是在linux操作系统环境下实现mp3播放器的嵌入式设计。围绕此项内容我们实习开展设计环境的搭建,再到嵌入式系统的熟悉、移植和mp3播放器的实现,进行了一系列学习和实践。我们的团队达到了预期的目的,并较好的完成了这次实习的任务。这次实习于我于我们的团队都是受益匪浅的。1.1实习单位简介

杰普软件科技有限公司(briup technology,inc.)是一家专注于高端it培训、软件外包、研发咨询的高新技术企业。公司在电信、金融、电子商务等方面有着丰富的专业开发、管理和培训经验。公司核心成员由海外留学人员和来自sybase、亚信、sun等国际大公司的资深技术人员组成。在电信、金融、电子商务等方面有着丰富的专业开发、管理和培训经验。是上海市人事局许可的高级人才培训中心。同时也是上海是紧缺人才办公室培训基地。

杰普软件着重解决软件企业用人难的问题,在高校毕业生及企业之间搭建一个供需桥梁。公司依托拥有丰富开发及培训经验的师资团队,培养企业紧缺的中高端开发人才。推出的解决大学生就业问题的dsp方案,已成功向各大软件企业输送了数千名人才,也确保了杰普软件外包业务的高效性和扩展性。公司与高校深度合作,为解决大学生的就业问题,提出多种合作方案。

杰普公司的培训师均来自各大it公司一线研发团队,平均具有7年的项目研发经验,是中国内地最优秀的培训讲师。他们不仅承担着杰普公司的学员培养工作,同时带领杰普公司的工程师及学员团队实施由政府及相关事业单位资助和委托的、杰普公司所承担的新产品研发和项目开发工作。他们随时把杰普公司最新的研发成果转化到对学员的培养中,确保了杰普每一位学员的技术研发能力以及优秀学员的创新能力、团队管理能力,保证了杰普学员在人才市场上竞争力及未来职业发展的广阔空间。

昆山校区位于有着“镶嵌在苏州与上海之间的一颗明珠之称”历史文化名城昆山市巴城镇,风景优美,环境典雅,教室与宿舍设置更是位于阳澄湖畔,凭窗而望,斜阳染湖,登高展臂,山水怀中,春夏有巴城鱼美,秋冬有阳澄蟹肥,是学习生活的好地方。昆山浦东软件园是国家级软件产业基地出口基地,上海浦东软件园和昆山市政府合作共建的项目,园区位于昆山巴城阳澄湖畔,拥有70万平方米工作生活环境,是一个与自然生态协调,符合高科技研发产业从业人员工作生活习惯的生态产业园区,2011年,杰普软件受昆山浦东软件园的邀请,入驻园区,作为软件园产业链重要的人才供应点。

二、实习目的本次赴昆山实习,主要是通过杰普集团给我们提供的实习和实训,学习嵌入式系统熟悉嵌入式系统的一些基本的理论概念和实践操作。一方面,通过学习专业知识,增强实践观念和能力;另一方面,通过杰普的实训进一步的对项目进行一次深度的了解,为未来就业提供必要的经验。

本次实习目标是对嵌入式系统有一定的了解,这次实习的主要内容是在linux操作系统环境下实现mp3播放器的嵌入式设计。从熟悉linux到shell命令,再到嵌入式系统的搭建、移植和mp3播放器的实现,进行了一系列学习和实践。杰普为我们提供了以下进程: 2.1实习内容简要提纲:

①学习安装altium designer 9运行环境。

②学习运用altium designer 9,设计并绘制avr单片机系统的pcb电路板。

③实现pcb电路板的生成及手工布线。

④熟悉tq2440开发板的硬件和基本用法。

⑤编译mp3播放器及移植。

三、操作具体过程

3.1学习安装altium designer 9运行环境

安装步骤如下:软件激活:在原文件altium.designer.v6.9.0.12759下找到文件夹ad_6.9_cr,将altium.alf和dxp.exe可执行文件拷贝到安装文件下,替换即可,然后重新打开就可以自动生成)若要想每次使用的话可以使用快捷方式,发送到桌面上即可。3.2学习运用altium designer 9,设计并绘制avr单片机系统的pcb电路板

电路板的设计是指一个电子产品从功能分析、设计思路、可行性验证到电路原理图设计、印制电路板制作、调试测试一直到最后产品成形的全过程。整个电路板设计过程可以分为以下几个主要步骤,如下所示:

atmega16 单片机最小系统的硬件电路图如下: 篇3:编译实习-语法分析 编号:

《编译原理》课程 实习报告

编 号: 3 实习题目: 语法分析器 专业(班): 计科六班

学生学号: 2011301500204 学生姓名:何子龙 任课教师:

1.问题定义与分析 1.1 实习目的构造一个小语言的语法分析程序。1.2 实习要求((1)输入属性字文件,输出源程序是否符合语法要求的结果: 正确——该程序符合语法要求。错误——指出错误位置。(2)运行实例: 例 1: 输入 i:=1+;输出表达式错误。

例2: 输入 program ex1;begin i:=1 end.输出该程序是正确的。1.3 要求分析 1.3.1 输入部分

输入为文法源程序,定义cstring 类型变量 m_enterstring,用于获取

编辑框1的输入,将其转换为char类型的数组,用s 保存,即char *s=m_enterstring.getbuffer()。1.3.2 输出部分

对于错误的程序,输出相应错误类型;对于正确的程序,输出该程序是正确的。定义cstring 类型变量m_outputstring,用于输出词法分析结果到编辑框2,用如下函数给m_outputstring 添加输出内容,如程序正确时代码:m_outputstring.insert(m_outputstring.getlength(),该程序是正确的);如图所示:

1.3.3 待分析的简单语言的语法 用扩充的bnf表示如下: ⑴::=program beginend|beginend ⑵::={;} ⑶::= ⑷::=id:= ⑸::={+ |-} ⑹::={* | / ⑺::=id | num |()1.3.4 语法中的各种单词符号对应的类别码其中对应于在词法分析程序中,变化的是将关键字do改为program,和begin两者至少出现一个作为程序的开始标志。2.设计 2.1 数据结构

定义了以下字符串类型数据:

cstringm_enterstring :用于接受编辑框1输入的源程序 cstringm_outputstring;:用于保存输出到编辑框2的内容,即输出源程序是正确的还是错误的,对于错误的程序还需要说明错误类型 char *s=m_enterstring.getbuffer():用于将输入的cstring类型转换为字符数组类型界面数据结构:(仅在词法分析程序的基础上改变了以下组件的位置与大小)

idc_static1(group-box control)放输入框的框 idc_static2(group-box control)放输出框的框 idc_edit1(edit control)输入编辑框 idc_edit2(edit control)输出编辑框 idok(button control)确定按钮 idcancel(button control)取消按钮 idd_cifa_dialog(dialog)整个界面框 界面如下图所示:

2.2.算法及程序流程图 2.2.1算法设计:

算法的基本任务是在已完成的词法分析程序的基础上,对源程序的语法的正确性进行判断,编制一个递归下降分析程序,实现对词法分析程序所提供的单词序列的语法检查和结构分析,对于输入的程序无语法错误的源程序,则输出该程序是正确的,若输入的源程序有语法错误,则输出相应的错误类型,具体见流程图。2.2.1程序流程图如下:

a.主程序示意图如下图所示:

《编译实习报告.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
编译实习报告
点击下载文档
相关专题 原实习报告 实习报告 原实习报告 实习报告
[实习报告]相关推荐
    [实习报告]热门文章
      下载全文