编辑: You—灰機 | 2019-07-04 |
suda.edu.cn/ 编译原理 重要性(计算机科学与技术、人工智能)课程安排:首次安排两学期学习方法:预习、上课认真听讲、复习、不临时抱佛脚 编译原理 上课时间: 周二10:10~12:00, 周四8:00~9:50上课地点: 博远楼301课程网站(所有课程的资料都在这上面):http://nlp.suda.edu.cn/~wangzq/bianyi/
邮箱:[email protected] * 编译原理 上课守则(尊重他人,尊重老师)准时上课,不迟到,不早退请勿上课吃东西请勿聊天,影响他人请勿上课玩手机,接电话按时完成作业不定期点名请假给我发邮件 编译原理 课本:Compilers C Principles, Techniques and Tools(2nd Edition )中文版(赵建华、郑滔、戴新宇译) 机械工业出版社,2009.1ISBN 978-7-111-25121-7. 编译原理 评分平时成绩:15%期中考试:15%期末考试:70%考点分布概述:
第一章至
第二章 10%重点:
第三章至
第五章 60%简述:
第六章至
第七章 20%其他:10% *
第一章 引论
第一章:引论 翻译器的不同形式编译器、解释器、混合编译器典型编译器结构编译系统程序设计语言发展历程 1.1 语言处理器(1.1) 翻译器能够完成从一种语言到另一种语言变换的软件 源语言 目标语言 翻译器 * 1.1 语言处理器 翻译器 * 编译器 解释器 混合编译器 编程语言排行榜 TIOBE Index for February
2018 1.1 语言处理器 一个语言处理系统:图1.5预处理器编译器汇编器连接器/加载器 * 1.1 语言处理器 编译器编译器是一种翻译器特点:目标语言比源语言低级编程语言传统程序设计语言:Pascal、C++、Java专用语言:Lisp、Prolog、LaTeX 编程语言 机器语言 编译器 * 1.1 语言处理器 编译器编译器是一种翻译器特点:目标语言比源语言低级机器语言(操作:寄存器BX的内容送到AX中)机器指令 1000100111011000?汇编指令 mov?ax,bx? 编程语言 机器语言 编译器 * 1.1 语言处理器 编译器编译器是一种翻译器特点:目标语言比源语言低级 编程语言 机器语言 编译器 * 1.2 编译器结构(1.2) 分析部分前端:源程序->中间表示综合部分后端:中间表示->目标程序 * 1.2 编译器结构 一个编译器的各个步骤 图1.6编译器的工作可以分成若干阶段,每个阶段把源程序从一种表示变换成另一种表示.符号表管理器出错管理器 * 1.2 编译器结构 一个编译器的各个步骤实例:图1.7一个赋值语句的翻译 * 1.2 编译器结构 前端 * 后端 1.2 编译器结构 编译器的前端与后端前端:只依赖于源语言后端:编译器中依赖于目标机器的部分,一般独立于源语言,而与中间语言有关.前端+后端:组合取一个编译器前端,重写它的后端以产生同一源语言在另一机器上的编译器把几种不同的语言编译成同一种中间语言,让不同的前端使用同一后端,从而得到一台机器上的几个编译器编译的几个阶段常用一趟/遍(pass)扫描来实现,一趟/遍扫描包括读一个输入文件和写一个输出文件. * 1.2 编译器结构 词法分析逐个读构成源程序的字符,把它们组成词法单元(token)流.实例:position = initial + rate * 60(1)标识符(position)(2)赋值号(:=)(3)标识符(initial)(4)加号(+)(5)标识符(rate)(6)乘号(*)(7)数(60) * 1.2 编译器结构 词法分析逐个读构成源程序的字符,把它们组成词法单元(token)流.实例:编译器的词法分析也叫做线性分析或扫描. 词法分析 * position = initial + rate *