北京工业大学廖湖声编.ppt

上传人:sh****n 文档编号:12816941 上传时间:2020-05-26 格式:PPT 页数:33 大小:410.50KB
返回 下载 相关 举报
北京工业大学廖湖声编.ppt_第1页
第1页 / 共33页
北京工业大学廖湖声编.ppt_第2页
第2页 / 共33页
北京工业大学廖湖声编.ppt_第3页
第3页 / 共33页
点击查看更多>>
资源描述
,北京工业大学廖湖声编学时:56小时(含上机:12小时)主页:172.21.14.209/网上教学参考教材:程序设计语言编译原理(第3版)国防工业出版社,引言,什么叫编译程序将高级程序设计语言翻译成逻辑上等价的低级语言(汇编语言,机器语言)的翻译程序目的:提高执行效率,编译程序,源程序,目标程序,(*.C/*.PAS),(*.OBJ/*.EXE),编译与语言,编译程序设计原理:高级程序设计语言的实现原理编译技术:最具有代表性的计算机语言处理技术计算机语言人与计算机、计算机软件之间的交流工具广义理解:软件之间传输的信息,各种用途的计算机语言,程序设计语言描述程序执行的算法数据库语言数据定义、数据操作机器语言控制计算机的工作命令语言控制系统的工作都是编译技术的处理对象,高级程序设计语言的一般特征,程序结构子程序、函数程序包语句条件、循环、赋值表达式逻辑、关系、算术变量、常数、运算符、函数调用数据结构标量整数、浮点数、字符、字符串数组、结构(记录)抽象数据类型类编译实现的任务程序结构与数据结构的具体处理,高级语言的分类,过程式语言ImperativeFORTRAN、BASIC、Pascal、C函数式语言FunctionalLISP、ML逻辑式语言LogicalProlog面向对象语言Object-OrientedSmalltalk、C+、Java、Ada、C#语言的实现都需要编译系统的支持,学习内容,语言结构的描述与分析语义的描述与实现框架程序设计语言的工作原理用途:计算机语言的实现与设计复杂数据处理(广义)特征:十分复杂的数据处理比较成熟的理论基础指导软件设计实践,第一章计算机语言的实现,程序的解释执行如:BASIC、DOS命令,问题:效率低下,解释程序,源程序,输入数据,计算结果,程序的编译执行,目标程序:机器语言汇编语言,编译程序,运行系统,目标程序,输入数据,计算结果,源程序,1.1编译系统的需求分析,源程序的分析词法、语法、语义目标程序的综合语句的翻译、代码生成标识符的绑定(binding)变量:存储单元函数:目标代码序列,1.2编译过程,自然语言的翻译过程:Iwishyousuccess主语谓语间接宾语直接宾语识别单词(拼写正确)、语法检查(顺序格式)、语义理解(合理)、组织译文(符合原文、通顺),一个C程序的编译过程,源程序:main()printf(“hello”);1.词法分析分析字符序列;识别单词(种别、属性)查词法错误;标识符登记;,结果IDNmain()IDNprintf(STRhello);,2.语法分析,分析单词序列;识别语法结构;查语法错误;构造分析树;,3.语义分析,确认标识符的属性类型、作用域等语义检查运算的合法性、取值范围等子程序的静态绑定代码存储的相对地址变量的静态绑定数据存储的相对地址,程序使用的内存空间,字符串常数hello临时变量t目标代码main编译程序负责为各变量、常数和函数计算并分配必要的内存空间,4.生成中间代码,中间语言简单规范机器无关易于优化与转换按照语法分析树生成中间语言代码,翻译例Z=(X+0.48)*Y/W;结果(三地址代码)T1=X+0.48T2=T1*YZ=T2/W,5.中间代码优化中间代码的优化处理,以求提高执行效率6.目标代码生成将中间代码转换成目标机上的机器指令代码或汇编代码,MOVR0,#12,ADDR0,#4MULR0,R2汇编指令代码,100000010001110010000010000101001100010000010010机器指令代码,编译程序的结构,源程序,目标程序,其他模块,表格管理辅助语法检查、语义检查完成静态绑定、管理编译过程错误处理词法:拼写.语法:语句结构、表达式结构.语义:类型不匹配.,编译程序的软件结构,编译前端目标机无关部分词法分析、语法分析、中间代码生成语义分析、中间代码优化编译后端目标机相关部分目标代码优化目标代码生成多遍扫描常见:前段1.2.和后端1.2.,程序设计环境,集成化的程序设计环境编辑程序编译程序连接程序-将目标程序连接成可执行程序调试工具-跟踪、分析常见:TurboC/C+VisualStudioforC/C+,Basic等JBuilder,BlueJ,1.3编译技术的通用性,把复杂数据看作一条语句数据格式的分析利用词法分析、语法分析方法数据处理的框架基于语法制导的语义处理框架编译技术可以用于各种复杂数据的分析处理,例1-1(1/2),DOS命令date的输出格式例:9-2-1993、09-03-1993、9-03-93语法datemonth-day-year词法monthDIGDIG|DIGdayDIGDIG|DIGyearDIGDIG|DIGDIGDIGDIG,例1-1(2/2),语义year(年)、month(月)、day(日)语义约束条件0month.value130day.value32,31,300year.value10000,1.4编译程序的生成方法,设计目标目标程序小,执行速度快。编译程序小,执行速度快。诊断能力强,可靠性强。可移植性,可扩充性。,表示翻译程序的T型图,S,T,I,源语言,目标语言,翻译用语言,1)交叉编译,条件:机有语言的编译程序目的:实现机的语言的编译,1.用语言编制编译程序(CP1.C)机器上编译该程序,得到(CP1.EXE)在A机器上,运行CP1.EXE编译CP1.C,得到B机的C编译程序(CP2.EXE)。,用语言编制编译程序(CP1.C)机器上编译该程序,得到(CP1.EXE),手写,可执行,3.在A机器上,运行CP1.EXE编译CP1.C,得到B机的C编译程序(CP2.EXE)。,A机可执行,B机可执行,2)编译程序的自展技术,1.用汇编语言实现一个子集的编译程序2.用汇编程序处理该程序,得到CP1.EXE3.用子集编制语言的编译程序4.用CP1.EXE处理该程序,得到CP2.EXE,3)利用编译程序自动生成器,词法分析器的自动生成程序,词法规则说明,词法分析程序,(C程序),输入:词法(正规表达式)识别动作(程序段)输出:yylex()函数,语法分析器的自动生成程序,语法规则说明,语法分析程序,(C程序),输入:语法规则(产生式)语义动作(程序段)输出:yyparse()函数,思考题,1.试分析一个简短的C程序,任意找出几个属于语法、词法、语义的语言现象。2.试分析例1-1的date输出数据的处理中,应该做哪些词法分析、语法分析、语义处理。,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!