个人介绍
编译原理

主讲教师:石东昱 华东师范大学

课程介绍
《编译原理》课程介绍编译器构造的一般原理和基本实现方法,主要介绍编译器的各个阶段:词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成。本课程在介绍命令式程序设计语言实现技术的同时,强调一些相关的理论知识,如形式语言和自动机理论、语法制导的定义和属性文法、类型论等。它们是计算机专业理论知识的重要一部分,在本书中结合应用来介绍这些知识,有助于学生较快领会和掌握。本课程强调形式化描述技术,并以语法制导定义作为翻译的主要描述工具。本课程强调对编译原理和技术在宏观上的理解,作为原理性的教学,本课程主要介绍基本的理论和方法,不偏向于某种源语言或目标机器。 
教师介绍

主要研究成果:

1、Dongyu Shi, Partial Dependent Graphical Models for Undirected Relationships Involving Passive States, Journal Of Theoretical And Applied Information Technology, 2013

2、Dongyu Shi, Bidirectional Noisy-Max Model, Journal of Information & Computational Science, 2013

3、Dongyu Shi, etc., Hybrid Correlational Graphical Models for Reasoning in Detecting Systems, in Proc. of 24st IEEE International Conference on Tools with Artificial Intelligence

4、Dongyu Shi, etc., An Intelligent System Based on Adaptive CTBN for Uncertainty Reasoning in Sensor Networks, Intelligent Automation and Soft Computing, 16 (3): 337-351, TSI Press, 2010

5、Dongyu Shi, etc., Dynamic probabilistic networks for distributed uncertainty processing, Journal of Experimental & Theoretical Artificial Intelligence 19 (4): 269-284, Taylor and Francis, Dec 2007

6、Dongyu Shi, etc., Factor Metanetwork: a multilevel probabilistic metamodel based on factor graphs, International Journal of General Systems 36 (4): 465-477, Taylor and Francis, Aug 2007 

学习意义

1、对编程语言的设计和实现有深刻的理解,对和编程语言有关的理论有所了解,对宏观上把握编程语言来说,起一个奠基的作用。

2、从软件工程看,编译器是一个很好的实例(基本设计、模块划分等),所介绍的概念和技术能应用到一般的软件设计之中。

3、大多数程序员同时是简单语言的设计者(如输入输出),学习编译原理有助于提高对这些语言的设计水平。

4、编译技术在软件逆向工程(以另外一种形式创建系统同一层次的表示或者更高层次的抽象。应用:技术仿造、软件维护。)、程序理解(通过分析、抽象和一般化来获取软件知识的演绎过程)和软件安全(满足安全策略)等方面有着广泛的应用。  

课程设计思路
学习目标
掌握编译器设计的基础知识和原理,为学习后继课程打下必要的基础;掌握形式语言和自动机理论、语法制导的定义和属性文法、数据流分析的方法;掌握编译器构成的各个阶段,包括:词法分析、自上而下以及自下而上的语法分析、语义分析和属性翻译、中间代码生成、代码优化和目标代码生成,培养基本的应用能力;了解现代编译器的进展,培养创新意识。 
学习建议

学习编译原理会对编程语言的设计和实现有深刻的理解,对和编程语言有关的理论有所了解,对宏观上把握编程语言来说,起一个奠基的作用。从软件工程看,编译器是一个很好的实例(基本设计、模块划分等),所介绍的概念和技术能应用到一般的软件设计之中。大多数程序员同时是简单语言的设计者,学习编译原理有助于提高对这些语言的设计水平。

编译技术在软件逆向工程(以另外一种形式创建系统同一层次的表示或者更高层次的抽象。应用:技术仿造、软件维护。)、程序理解(通过分析、抽象和一般化来获取软件知识的演绎过程)和软件安全(满足安全策略)等方面有着广泛的应用。

对大多数学生而言,要学好编译原理有一定的难度,主要在于许多概念和原理比较抽象,不易理解和领会,特别是形式化方法;不会结合所学的知识予以应用。因此需要多思考,彻底理解基本原理和方法,教材、讲义等等学习资料需仔细研究,反复认真阅读;需要做一定量的习题,加深对基本原理和方法的领会,培养分析和解决问题的能力。包括:

•认真听取讲座、阅读讲义和教材;

•及时完成相关的作业;

•主动投入,参与交流讨论;

•积极进行实践,在具体的编译程序分解、构造中掌握其原理。

课程大纲

参考教材

教材:


《编译原理和技术》

作者:陈意云

出版社:中国科学技术大学出版社

内容介绍:

本书介绍了编译器构造的一般原理和基本实现方法,反映了直至90年代的一些重要成果,其内容包括词法分析、语法分析、中间代码生成、代码优化和目标代码生成等除了介绍传统程序设计语言的编译技术外,本书还介绍了面向对象语言和函数式程序设计语言的实现技术作为原理性的教材,本书旨在介绍基本的理论和方法,而不偏向于某种源语言或目标机器.全书内容充实,图文并茂,各章节之间循序渐进,并在各章之后附有司题,供读者学习时练习和参考。

本书可作为高等院校计算机科学专业的教材,也可作为软件工程技术人员的参考书。


参考书目:


《编译原理和技术》

作者:陈意云

出版社:中国科学技术大学出版社

内容介绍:

本书介绍了编译器构造的一般原理和基本实现方法,反映了直至90年代的一些重要成果,其内容包括词法分析、语法分析、中间代码生成、代码优化和目标代码生成等除了介绍传统程序设计语言的编译技术外,本书还介绍了面向对象语言和函数式程序设计语言的实现技术作为原理性的教材,本书旨在介绍基本的理论和方法,而不偏向于某种源语言或目标机器.全书内容充实,图文并茂,各章节之间循序渐进,并在各章之后附有司题,供读者学习时练习和参考。

本书可作为高等院校计算机科学专业的教材,也可作为软件工程技术人员的参考书。


《Compilers: Principles, Techniques, and Tools》

作者:A. Aho, R. Sethi, and J. D. Ullman

出版社:Pearson Education出版社

内容介绍:

《编译原理(第2版)》全面、深入地探讨了编译器设计方面的重要主题,包括词法分析、语法分析、语法制导定义和语法制导翻译、运行时刻环境、目标代码生成、代码优化技术、并行性检测以及过程间分析技术,并在相关章节中给出大量的实例。与上一版相比,《编译原理(第2版)》进行了全面的修订,涵盖了编译器开发方面的最新进展。每章中都提供了大量的系统及参考文献。《编译原理(第2版)》是编译原理课程方面的经典教材,内容丰富,适合作为高等院校计算机及相关专业本科生及研究生的编译原理课程的教材,也是广大技术人员的极佳参考读物。

课程评价

课程章节
提示框
提示框
确定要报名此课程吗?
确定取消

京ICP备10040544号-2

京公网安备 11010802021885号