编译原理 田凤占 计算机与信息技术学院 tiz@computernjtu.edu.cn
1 编译原理 田凤占 计算机与信息技术学院 tfz@computer.njtu.edu.cn
本课程的学习目的 ·编译程序是计算机系统中最重要的系统程序之 掌握设计和构造编译程序的基本原理和基本方法,其 中许多方法也适用于构造解释程序或汇编程序 上述理论(如 Chomsky文法和自动机理论)可以直接 用于特定领域的应用,如机器翻译,自然语言处理等 人工智能领域。 有利于深入掌握不同的程序设计语言,甚至开发新的 语 ·某些院校的考研课程之 ·先修课:数据结构、汇编语言、C语言等
2 本课程的学习目的 • 编译程序是计算机系统中最重要的系统程序之一。 • 掌握设计和构造编译程序的基本原理和基本方法,其 中许多方法也适用于构造解释程序或汇编程序。 • 上述理论(如Chomsky文法和自动机理论)可以直接 用于特定领域的应用,如机器翻译,自然语言处理等 人工智能领域。 • 有利于深入掌握不同的程序设计语言,甚至开发新的 语言。 • 某些院校的考研课程之一 • 先修课:数据结构、汇编语言、C语言等
教材和参考书 教材: 编译原理。蒋立源,康慕宁主编,西北工业大学出版社, 1999年,第二版。(95国家级重点教材) 参考书: 编译原理与技术。陈意云,中国科大出版社,2002,第二版 (中科院指定考研参考书、科技大教材) 编译原理。吕英芝、张素琴编著,清华大学岀版社,2003年 8月。(清华教材) 《程序设计语言编译原理(第3版)》。陈火旺、刘春林等 著,国防工业出版社,2001年2月。(南大教材) 编译程序设计原理。杜淑敏等编著,北京大学出版社。(北 大教材)
3 教材和参考书 • 教材: – 编译原理。蒋立源,康慕宁主编,西北工业大学出版社, 1999年,第二版。(95国家级重点教材) • 参考书: – 编译原理与技术。陈意云,中国科大出版社,2002,第二版。 (中科院指定考研参考书、科技大教材) – 编译原理。吕英芝、张素琴编著,清华大学出版社,2003年 8月。(清华教材) – 《程序设计语言编译原理(第3版)》。陈火旺、刘春林等 著,国防工业出版社,2001年2月。(南大教材) – 编译程序设计原理。杜淑敏等编著,北京大学出版社。(北 大教材)
课程安排(共48课时) ·第一章绪论 2课时 ·第二章前后文无关文法和语言 6课时 ·第三章词法分析 8课时 ●·第四章语法分析 12课时 复习和习题课 2课时 第五章语法制导翻译及中间代码生成10课时
4 课程安排(共48课时) • 第一章 绪论 2课时 • 第二章 前后文无关文法和语言 6课时 • 第三章 词法分析 8课时 • 第四章 语法分析 12课时 • 复习和习题课 2课时 • 第五章 语法制导翻译及中间代码生成 10课时
课程安排(续) 一·第六章符号表及出错处理 自学 ·第七章存储组织与管理 2课时 第八章代码优化 略 亠。第九章目标代码生成 4课时 第十章查错与改错 自学 总复习 2课时
5 课程安排(续) • 第六章 符号表及出错处理 自学 • 第七章 存储组织与管理 2课时 • 第八章 代码优化 略 • 第九章 目标代码生成 4课时 • 第十章 查错与改错 自学 • 总复习 2课时
考核方式 课后作业 30分 期末考试 70分 认真听倮能使你事功 独完咸作业对取得赂犢至巽重要
6 考核方式 • 课后作业 30分 • 期末考试 70分 • 认真听课能使你事半功倍! • 独立完成作业对取得好成绩至关重要!
第一章绪论 计算机的软硬件组成 中央处理机 输入输出处理机等 硬件部分 存储器 通信设备 编序解序、汇編席 数据库管理程序(DBMs) 系统软件操作系统(0S) 装入、链接、编辑程序 软件部分 数据通信系统 应用软件
7 第一章 绪论 计算机的软硬件组成 中央处理机 输入/输出处理机等 硬件部分 存储器 通信设备 编译程序、解释程序、汇编程序 数据库管理程序(DBMS) 系统软件 操作系统(OS) 装入、链接、编辑程序 软件部分 数据通信系统 应用软件
程序设计语言 低级语言:机器语言(二进制代码)、汇编语言(直 接操作寄存器、多种寻址方式)及其它面向机器的程 序设计语言;其特点对计算机的依赖性强、直观性差、 编写程序的工作量大,对程序设计人员要求较高。 机器语言—符号汇编语言宏汇编语言 高级语言:具有很强的算法描述能力,其编写和调试 效率也比低级语言优越得多。现有上百种高级语言, 常用的有 BASIC、 FORTRAN、 PASCAL、C、C++、 JAVA等
8 程序设计语言 • 低级语言:机器语言(二进制代码)、汇编语言(直 接操作寄存器、多种寻址方式)及其它面向机器的程 序设计语言;其特点对计算机的依赖性强、直观性差、 编写程序的工作量大,对程序设计人员要求较高。 ▪ 机器语言 符号汇编语言 宏汇编语言 • 高级语言:具有很强的算法描述能力,其编写和调试 效率也比低级语言优越得多。现有上百种高级语言, 常用的有BASIC、FORTRAN、PASCAL、C、C++、 JAVA等
编译技术的产生 FORTRAN、 ALGOL和 COBOL FORTRAN(FORmulaTRANslation)2 式翻译语言是五十年代初期产生第一个实 用的高级语言 1954-1959年 FORTRAN语言及编译 系统产生标志着编译技术开始形成
9 编译技术的产生 ▪ FORTRAN、ALGOL 和 COBOL ▪ FORTRAN(FORmulaTRANslation) 公 式翻译语言是五十年代初期产生第一个实 用的高级语言 1954-1959年 FORTRAN语言及编译 系统产生标志着编译技术开始形成
ALGOL和 COBOL ALGOL(ALGOkithmic Language) 国际代数语言 ALGOL58 ALGOL60 采用BNF范式形式化的语言描述体系 促进了语法分析及理论的研究 语言格式影响程序设计语言的发展 COBOL 引入了独立于机器的数据描述概念 导致了数据库管理系统的产生 10
10 ALGOL和COBOL ➢ ALGOL(ALGOkithmic Language) 国际代数语言 ALGOL58 ALGOL60 采用BNF范式形式化的语言描述体系 促进了语法分析及理论的研究 语言格式影响程序设计语言的发展 ➢ COBOL 引入了独立于机器的数据描述概念 导致了数据库管理系统的产生