- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理 什么是编译 编译的过程 词法分析 语法分析 语义分析 中间代码生成 代码优化 目标代码生成 词法分析 从左到右以字符为单位扫描源程序,从而识别出每个单词符号 单词是指逻辑上机密相连的一组字符,具有集体的含义,比如标识符。 词法分析 词法分析 语法分析 在词法分析的基础上,按照源语言的规则将单词序列组合成语法短语 依据是语言的语法规则,即描述程序结构的规则,通常采用递归结构 【如何描述语法规则呢?一般形式化,使用如语法树等工具;根据应用不同,可以有不同工具】 词法分析与语法分析:分析源程序的结构;词法分析采用线性扫描,但是线性扫描不适合递归语法 语法分析 语义分析 进行语义审查以判断是否有语义错误。 例如:上下文相关性,类型匹配,类型转换 中间代码生成 源程序的内部(中间)表示结构简单、含义明确的记号系统, 介于高级语言与低级语言之间, 与目标机无关,便于优化、移植并容易生成目标代码。 通常的中间代码有三元式、四元式、树结构或适合相应语言的中间代码。 代码优化 对中间代码进行变换或进行改造,目的使生成目标代码更为高效,即省时间/省空间 如删除公共子表达式、合并已知量、删除无用赋值、循环优化、算符规约等等 目标代码生成 把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。 是编译的最后阶段,与硬件系统结构、指令含义等有关 表格管理 记录源程序中使用的名字 收集每个名字的各种属性信息 — 类型、作用域、分配存储信息 出错处理(error handling) 检查错误、报告出错信息、排错、恢复编译工作 检查词法、语法和语义中的错误(静态)。 编译程序的处理能力,如存储空间越界(动态) 报告出错信息和位置 处理和恢复 编译阶段的组合 编译的前端(front end):主要依赖源语言、与目标机器无关;包括词法分析、语法分析、语义分析、中间代码生成以及代码优化(部分) 编译的后端(back end):依赖目标机、不依赖于源语言,只与中间代码有关的那些阶段 Compiler与interpreter 解释程序:不生成可执行文件,不能独立执行;接受某个语言的程序并立即运行的过程。一个个地获取、分析并执行源程序的语句。 编译程序:生成可执行文件,可以独立执行;编译和运行是两个独立分开的阶段。 著名的解释程序Basic、Lisp、Unix命令、SQL、JAVA 处理源程序的软件工具 语言结构化编辑器 语言程序调试工具 程序格式化工具 语言程序测试工具 高级语言之间的转换工具 程序设计语言范型 1.强制(命令)式语言——过程语言 C、Pascal:面向动作,一个计算过程看作一系列动作 2. 函数式语言 ML、Lisp:注重程序表示的功能 3.基于规则(逻辑)的语言 Prolog:检查一定的使能条件,满足时执行动作 4. 面向对象语言 Ada、C++、Java 编译技术在计算机学科中的地位 编译技术的复杂性 直接使用离散数学关于集合论、图论、形式语言自动机等理论知识,编写编译程序时必然要使用到多种算法和数据结构 编译技术与计算机其他学科的交叉性 系统结构、人工智能、离散数学、高级语言、数据结构、汇编语言等课程 编译技术的成熟性 编译技术是计算机科学中发展最迅速、最成熟的分枝之一 学习编译原理的意义 编译器可能有一万行,也可能有一百万行,大部分专业人员从来也不曾编写过一个完整的编译器 几乎所有形式的计算均要用到编译器 计算机应用程序中的命令解释程序和界面交互程序的开发,使用到与编译相同的技术 课后作业 教材练习第1、2、3题,P11,12 体现软件设计思想的重要步骤 (inttofloat 60 – t1) (+ x t1 t2) 最后是目标代码 最后是目标代码 * * 湖南师范大学数学与计算机科学学院 把一种语言等价翻译成另外一种语言 源语言 Source language 目标语言 Object language 编译就是翻译 编译 编译程序 compiler 面向人的语言 Human-oriented language 面向机器的语言 Computer-oriented language 单词种类: 一类是特殊的单词,如保留字、运算符、分界符等,这些都是源语言所提供的; 另一类是普通单词,如用户在源程序中定义的标识符、常数等。 例如:程序段 ???? int x,a,b; ???? x=a+b*50;
您可能关注的文档
- 空调制冷制热原理讲解课件.ppt
- 稻草人员工进行心态培训.pptx
- 空调器制冷原理-四通阀.ppt
- 空调安装及原理.ppt
- 空调系统和空调冷热源演讲稿.ppt
- 空调通风制冷系统循环基本示意图..ppt
- 空调零部件四通阀.ppt
- 空间分析的基本方法.ppt
- 站在发展对象的起跑线上.ppt
- 窗边的小豆豆学习体会.ppt
- Unit 6 Get Close to Nauture Lesson 22 -课件-2025-2026学年度北京版英语四年级上册.pptx
- Unit 7 Be Together Lesson 23 -课件-2025-2026学年度北京版英语四年级上册.pptx
- 2025食品饮料行业AI转型白皮书-2025食品饮料行业数智化转型领先实践.pdf
- Unit 7 Be Together Lesson 24 -课件-2025-2026学年度北京版英语四年级上册.pptx
- Unit 7 Be Together Lesson 25 -课件-2025-2026学年度北京版英语四年级上册.pptx
- Unit 7 Be Together Lesson 26 -课件-2025-2026学年度北京版英语四年级上册.pptx
- 2025年广州体育职业技术学院单招职业倾向性考试题库完美版.docx
- 软件公司员工考勤异常处理.doc
- 2025年土地登记代理人之土地登记相关法律知识题库500道及完整答案【有一套】.docx
- 2025年四平职业大学单招职业适应性考试题库含答案.docx
最近下载
- IPC-2221C-EN TOC2023印制版设计通用标准 Generic Standard on Printed Board Design.pdf VIP
- 2022-2023新版人教版初中九年级化学上册(全册)课件.ppt
- 人教版物理九年级全册分层作业设计.doc
- 九上语文必背内容.docx VIP
- 标准图集-20S515-钢筋混凝土及砖砌排水检查井.pdf VIP
- 人教版初中九年级化学下册全册完整课件.ppt VIP
- 新高考语文64篇古诗文理解性默写汇编(含答案).docx VIP
- 物流工作流程及出入庫管理流程图.doc VIP
- 危化品安全数据表.doc VIP
- 丰田沟通技巧报联商培训讲义.pptx VIP
文档评论(0)