各位同学,大家好:
感谢大家选择《编译技术》慕课课程,希望这门课程能够对大家有所帮助。
编译技术是计算机的核心技术之一。“编译技术”作为软件工程专业的核心课程,旨在对介绍编译器构造的一般原理和基本实现方法。本课程强调对编译原理和技术的宏观理解。通过课程讲解,使学生掌握文法与语言、词法分析、语法分析、语义分析、优化与目标代码的生成等基础理论知识。
编译技术是计算机科学与技术、软件工程专业一门重要的专业课。在计算机众多的原理性学习课程中,编译原理主要介绍程序语言实现原理、方法和技术。因此该课程内容有一定深度和难度,且综合性比较强,涉及的先修课程比较多,包括数据结构、离散数学、程序设计、汇编语言、操作系统等,编译技术课程涉及到的原理比较多且复杂;对学生专业知识掌握情况也要求比较高,学生在学习过程中容易感到内容抽象、算法复杂,需要学生动手实践,是一门公认比较难学、比较难教的课程。同时,计算机学科是一门对实践性要求比较高的学科,在考虑如何使学生学好《编译技术》课程理论知识时,如何把理论和实践结合起来,促进和激发学生的学习兴趣,锻炼学生用计算机解决问题的能力和逻辑思维能力,是编译原理教学的一个主要而且极其重要的问题。
取消免费证书,证书需付费。
60分以上合格,85分以上优秀
已经修完程序设计、离散数学、数据结构、操作系统、等计算机基础课程。
最低知识:至少学过一门程序语言,并能够实现hello world程序的编写和运行。
如果学过Python、Java、CPP、C等任何一门语言,都对于本课程有更多帮助。
本课程的学习者,应具备以下先导知识
1. 程序语言设计:学习过相关课程,能独立编写200行以上代码的程序。本课程是支撑课程学习目标1-5的先导知识。
2. 计算机组织与结构:学习过计算机组织与结构课程,了解计算机内部5大部件的工作原理。本课程是支撑课程学习目标4的先导知识。
3. 操作系统原理:学习过操作系统原理课程,了解文件、目录、IPC等机制的基本原理;本课程是支撑课程学习目标5和6的先导知识。
4. 数据结构与算法:学习过数据结构与算法课程,能熟练使用理解简单数据结构及算法解决问题;本课程是支撑课程学习目标5的先导知识。
本课程推荐教材及与课程学习目标对应关系如下:
1. 授课教材:《编译原理》 陈意云 张昱编著 高教育出版社 2016年第三版 ISBN:9787040404913。
(1)教材特点:该教材为陈意云和张昱老师编著,是该书第三版。是目前国内编译技术课程使用的主流教材。
(2)使用方法:本教材对应课程学习目标1-5,可以做到对课程内容的全覆盖,请同学们学习完视频之后,一定要详细阅读教材中的对应部分,并针对课后习题进行联系,能够有效提高学习质量;
2. 参考教材1:《编译原理》Alfred V.Aho等编著 机械工业出版社 2018年第二版 ISBN:9787111251217。
(1)教材特点:相比于授课教材受篇幅限制的问题,本教材内容更加详尽。《编译原理》抛弃诸如算符优先分析等过时技术,增加面向对象编译、类型检查等新技术。
*注:为方便国内本科学生学习,本书还有一本精简版的《编译原理》(本科教学版),推荐大家学习。
(2)使用方法:本教材对应课程学习目标5。建议将来有志于进行完整编译器软件设计和开发的同学通读本教材,并动手完成教材中的编译器开发案例;
3. 参考教材2:《现代编译原理 C语言描述》修订版(图灵出品) 人民邮电出版社 2018年第二版 ISBN:9787115476883。
(1)教材特点:按照编译器处理过程组织章节顺序,并精心设计了一个“学生项目编译器”,全面讲述现代编译器的结构、编译算法和实现方法。前端增加了面向对象的程序语言设计、函数式程序设计语言等现代语言的编译实现方法,后端增加了针对现代计算机体系结构特征的一些比较成熟的优化方法。
(2)使用方法:本教材对应课程学习目标5,建议对编译器设计更有兴趣的同学动手实现教材中的全部代码。
Q : 本课程的教材是哪本呢?
A : 本课程选用高等教育出版社的教材。《编译原理》高教出版社,张煜 陈意云 主编。第四版。
Q : 本课程的课件可以提供吗?
A : 可以,在每个视频对应章节均提供了对应的课件pdf版本,供大家学习。
Q : 学完本课程是否能自己写一个编译器呢?
A : 是的,如果都学完本课程,能够写一个小型语言的编译器。
Q : 哇,真的呀?
A : 嗯嗯,是真的,在本课程中将配备一个学生写的小型语言编译器,供大家参考一下。
Q : 这一次开课有哪些新的变化呢?
A : 课程组教师已经制作好全部字幕,并进行了校对字幕,本次开课所有视频已经配备字幕,以方便大家的学习。