上海交通大学:《编译器构造》课程教学资源(PPT讲稿,马融)Compiler

编译器构造
编译器构造 马 融

Todo list 网站 分组 论坛 日程表 数据 语法说明 评分细则
Todo List • 网站 • 分组 • 论坛 • 日程表 • 数据 • 语法说明 • 评分细则

参考书籍 《自制编译器》——青木峰郎 ·虎书——《现代编译程序实现》 PLP——《程序设计语言—一实践之路》 LP——《编程语言实现模式》 Terence parr CaC—《 Crafting a Compiler)) Charles m. Fischer EaC——《编译器设计》 Keith d. Cooper
参考书籍 • 《自制编译器》——青木峰郎 • 虎书——《现代编译程序实现》 • PLP——《程序设计语言——实践之路》 • LIP——《编程语言实现模式》Terence Parr • CaC——《Crafting a Compiler》Charles N. Fischer • EaC ——《编译器设计》 Keith D. Cooper

编译器的各个阶段 活性分析 抽象语 源代码词法分析 Tken)语法分析 法树语义分析 中间代·寄存器分 目标代 配 码 代码生成
编译器的各个阶段 源代码 词法分析 语法分析 词素 (Token) 流 语义分析 抽象语 法树 (AST) • 活性分析 • 寄存器分 配 • 代码生成 中间代 码 目标代 码

C语言的精神 信任程序员 Trust the programmer 不要阻止程序员去做需要的事 Do not prevent the programmer from doing what needs to be done 保持语言的小巧和简单 Keep the language small and simple 为效率可以牺牲可移植性 Make it fast even if it is not guaranteed to be portable
C语言的精神 • 信任程序员 • Trust the programmer • 不要阻止程序员去做需要的事 • Do not prevent the programmer from doing what needs to be done • 保持语言的小巧和简单 • Keep the language small and simple • 为效率可以牺牲可移植性 • Make it fast, even if it is not guaranteed to be portable

只要能让程序员干的活 编译器一律不管 C语言的精神(里番)
只要能让程序员干的活 编译器一律不管 C语言的精神(里番)

为什么这么设计 640K is enough for everyone One-pass compiler ·先申明再使用=不能向后看 信任程序员=优化神马的做不 到呀
为什么这么设计 • 640K is enough for everyone • One-pass compiler • 先申明再使用 = 不能向后看 • 信任程序员 = 优化神马的做不 到呀

现代语言的一些特性 垃圾收集 面向对象 隐式指针 原生 String 一种语言包打天下的时代已经过去了
现代语言的一些特性 • 垃圾收集 • 面向对象 • 隐式指针 • 原生String • 一种语言包打天下的时代已经过去了

Bonus:假设所有的编译器都坏了 而且所有的源代码都不见了,但电 脑都能工作,我 重建C++编译器 们需要多少时间 (这个问题轮子哥在知乎上的回答是错误的
Bonus:假设所有的编译器都坏了, 而且所有的源代码都不见了,但电 脑都能工作,我们需要多少时间来 重建C++编译器? (这个问题轮子哥在知乎上的回答是错误的)

造轮子的时侯能不能用轮
造轮子的时候能不能用轮 子?
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《软件工程 Software Engineering》教学资源:课程教学大纲.pdf
- 沈阳理工大学:《单片机C语言应用程序设计》课程PPT教学课件(单片机C语言编程)04 C51编程设计(廉哲).pptx
- 中国科学技术大学:《信号与图像处理基础 Signal and Image Processing》课程教学资源(PPT课件讲稿)傅里叶分析与卷积 Fourier Analysis and Convolution.pptx
- 北京科技大学:物联网知识体系和学科建设(PPT讲稿,王志良).ppt
- 香港理工大学:Discovering Classification Rules.ppt
- 《软件质量与测试》课程教学资源(PPT大纲课件,目录版).pptx
- 安徽理工大学:《汇编语言》课程教学资源(PPT课件讲稿)第七章 高级汇编语言技术(主讲:李敬兆).ppt
- 《Vb程序设计教程》课程教学资源(PPT课件讲稿)第三章 VB语言基础.pps
- 吉林大学:《C语言》课程教学资源(PPT课件讲稿)第6章 利用数组处理批量数据.ppt
- 《计算机组成原理》课程教学资源(PPT课件讲稿)第4章 处理器(CPU).ppt
- 北京大学:人工神经网络(PPT课件讲稿)Artificial Neural Networks,ANN.ppt
- 西安电子科技大学:《神经网络与模糊系统》课程教学资源(PPT课件讲稿)Chapter 6 结构和平衡 Architecture and Equilibria.ppt
- 清华大学:A Feature Weighting Method for Robust Speech Recognition(Speech Activities in CST).ppt
- 北京师范大学现代远程教育:《计算机应用基础》课程教学资源(PPT课件讲稿)第2章 计算机网络应用.ppsx
- 《Java网站开发》教学资源(PPT讲稿)第9章 过滤器和监听器技术.ppt
- 长春大学:《计算机应用基础》课程教学资源(PPT课件讲稿)第一章 计算机基础知识(崔天明).ppt
- 合肥工业大学:《网络安全概论》课程教学资源(PPT课件讲稿)第2讲 密码学简介(主讲:苏兆品).ppt
- 《计算机网络与因特网 Computer Networks and Internets》课程教学资源(PPT课件讲稿)Part II 物理层(信号、媒介、数据传输).ppt
- 东南大学:《数据结构》课程教学资源(PPT课件讲稿)第三章 栈与队列.ppt
- 清华大学:An Efficient Trie-based Method for Approximate Entity Extraction with Edit-Distance Constraints.pptx
- 《数字图象处理》课程教学资源(PPT课件讲稿)第七章 邻域运算.ppt
- 北京航空航天大学:《数据挖掘——概念和技术(Data Mining - Concepts and Techniques)》课程教学资源(PPT课件讲稿)Chapter 03 Data Preprocessing.ppt
- 电子工业出版社:《计算机网络》课程教学资源(第五版,PPT课件讲稿)第一章 概述(谢希仁).ppt
- 上海交通大学:Mining Massive Datasets(PPT讲稿).ppt
- 东南大学:《数据结构》课程教学资源(PPT课件讲稿)动态规划.pptx
- 《数据结构》课程教学资源:课程教学资源(PPT课件讲稿)第九章 查找表.ppt
- 南京大学:《面向对象技术 OOT》课程教学资源(PPT课件讲稿)抽象数据类型 Abstract Data Types.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)并行编译简介.ppt
- 《单片机原理及应用》课程教学资源(PPT课件讲稿)第6章 AT89S52单片机的串行口.ppt
- 上海交通大学:《程序设计》课程教学资源(PPT课件讲稿)第4章 循环控制.ppt
- 上海交通大学:《通信网络》课程PPT教学课件(Communication Networks)Introduction(主讲:叶通).pptx
- 北京师范大学:《多媒体技术基础》课程教学资源(PPT课件讲稿)第二章 数字图像(曾兰芳).ppt
- 利用EXCEL进行数据分析与图表处理(PPT讲稿).pptx
- 上海交通大学:《程序设计》课程教学资源(PPT课件讲稿)第9章 模块化开发.ppt
- 《计算科学基础研究》课程教学资源(PPT课件讲稿)类的定义.ppt
- 南京大学:《编译原理》课程教学资源(PPT课件讲稿)第九章 机器无关的优化(赵建华).ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第一章 电子商务基础知识(主讲:贾朝辉).pptx
- 《操作系统》课程教学资源(PPT课件讲稿)内存管理 Memory Management.ppt
- 沈阳理工大学:《大学计算机基础》课程教学资源(PPT课件讲稿)第3章 编辑排版软件(Microsoft Word 2000).pps
- 《C语言程序设计》课程电子教案(PPT课件讲稿)第4章 算法控制结构.ppt