- 1、本文档共48页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中南大学软件学院 编译原理 中南大学软件学院 陈志刚 《编译原理》课程简介 地位 计算机专业的一门核心课程 编译程序是计算机的重要系统软件,是高级程序设计语言的支撑基础 课程主要介绍设计和构造编译程序的基本原理和方法 本门课程的要求 了解计算机高级语言流程序被计算机接受、扫描、词法分析、语法分析、语义解释执行的原理与过程; 掌握编译的原理和基本算法、各种概念和语言描述。 用途与作用 这是本专业应具备的基本知识,就像其他原理一样,是基础。 三大系统软件: OS、DBMS、Compiling System 开发大型系统软件、工具软件的需要。 看资料、写论文的需要 《编译原理》前导课程 前导课程及涉及内容 组成原理——计算机组成及结构 微机原理——汇编语言与机器语言 离散数学——推理知识及其完备性 数据结构——树、表等的表示与实现 操作系统——提供虚拟机和系统调用 高级程序设计语言——语言定义和编程 教学目的 掌握编译的基本理论、常用的编译技术,了解编译过程及编译系统的构造 编译程序一般由词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、目标代码生成程序、代码优化程序、表格管理和出错处理程序等成分构成。通过课程的学习应掌握各个成分的功能和设计原则,以及在编译阶段的逻辑关系。理解他们怎样作为一个整体完成编译任务。 能运用所学技术解决实际问题,能独立编写一个小型编译系统 意义: 学习编译程序构造原理,技术 更好地理解高级语言 编译的原理和方法有助于构造一些实用的工具 课程特点: 理解性 技术性 考核: 作业及上机实习:30% 笔试:70% 第一章 引 论 1.1 基本概念 1.2 编译过程 1.3 编译程序与程序设计环境 1.4 高级语言程序简介 1.1 基本概念 一、发展 机器语言→汇编语言→高级语言→工具语言 第1代1GL 2GL 3GL 4GL 机器识别:0|1 代码 相去甚远 1.1 基本概念 1.1 基本概念 1.1 基本概念 编译程序 vs. 解释程序 1.1 基本概念 五、执行高级语言程序的步骤 把高级语言程序编译成低级语言目标程序 执行目标程序 1.2 编译过程 把英文翻译为中文 识别出句子中的一个个单词; 分析句子的语法结构; 根据句子的含义进行初步翻译; 对译文进行修饰; 写出最后的译文。 1.2 编译过程 一、高级语言程序的编译过程 词法分析 语法分析 中间代码产生 优化 目标代码生成 1. 词法分析 任务: 输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个单词符号。 依循的原则:构词规则 描述工具:正规式和有限自动机 FOR I := 1 TO 100 DO 保留字 标识符 等符 整常数 保留字 整常数 保留字 2. 语法分析 任务:在词法分析的基础上,根据语言的语法规则把单词符号串分解成各类语法单位。 依循的原则:语法规则 描述工具:上下文无关文法 Z := X + 0.618 * Y 算术表达式,赋值语句(层次结构分析) 3. 中间代码产生 任务:对各类不同语法范畴按语言的语义进行初步翻译。 依循的原则:语义规则 中间代码:三元式,四元式,树形结构等 Z:=X + 0.618 * Y 翻译成四元式为 (1) * 0.618 Y T1 (2) + X T1 T2 (3) := T2 _ Z 4. 优化 任务:对于前阶段产生的中间代码进行加工变换,以期在最后阶段产生更高效的目标代码。 依循的原则:程序的等价变换规则 FOR K:=1 TO 100 DO BEGIN X:=I+1; M := I + 10 * K; N := J + 10 * K; END 中间代码(一) 序号 OPR OPN1 OPN2 RESULT 注释 (1) := 1 K K:=1 (2) j 100 K (10) if (100K) goto (10) (3) + I 1 X X:=I+1 (4) * 10 K T1 T1:=10*K (5) + I T1 M M:=I+T1 (6) * 10 K T2 T2:=10*K (7) + J T2 N N:=J+T2 (8) + K 1 K K:=K+1 (9) j (2) goto (2) (10)
您可能关注的文档
- 严重低钾血症的治疗及其相关问题的探讨.ppt
- 个人与集体 名人名言.ppt
- 个人发展与目标规划.ppt
- 个人发展课程-复习内容简历面试.ppt
- 个人学习-贾俊平《统计学》(第四版)第1章统计和统计数据.ppt
- 个人客户星级评价与服务体系.ppt
- 个人所得税法第一部分.ppt
- 个人教学问题专项课题.ppt
- 个人电脑安全防护培训.ppt
- 个人职业生涯规划十件事.ppt
- 五年级数学上册5简易方程2解简易方程第8课时实际问题与方程3教学设计新人教版.doc
- 2024_2025学年新教材高中生物第2章细胞的结构和生命活动第3节第1课时细胞质膜具有选择透过性教案苏教版必修1.doc
- 江苏专用2025版高考地理一轮复习第十二章人类与地理环境的协调发展1人类与地理环境的协调练习含解析新人教版.doc
- 2024_2025学年高中化学第一章物质结构元素周期律第三节化学键练习含解析新人教版必修2.docx
- 2024_2025学年高中政治专题二君主立宪制和民主共和制:以英国和法国为例综合训练含解析新人教版选修3.docx
- 2024_2025学年高中生物课时分层作业18捕获光能的色素和结构含解析新人教版必修1.doc
- 2024_2025学年高中政治专题一古典政治经济学巨匠的理论遗产第3框李嘉图的理论贡献学案新人教版选修2.doc
- 2024_2025学年新教材高中生物第6章细胞的生命历程3细胞的衰老和死亡学案2新人教版必修1.doc
- 2024_2025学年新教材高中生物第6章生物的进化1生物有共同祖先的证据学案新人教版必修2.doc
- 司机保证书15篇 .pdf
文档评论(0)