这一节真是读得绝望,好多生单词。今天把Introduction搞完
1.4 Science of Building a Compiler
简介编写编译器的基础东西
1.4.1 Modeling in Compiler Design and Implementation
介绍了几种最基本的(fundamental)方法(model)?
context-free grammar(上下文无关文法)
tree
finite-state machines(有限状态机)
regular expressions(正则)
1.4.2 The Science of Code Optimization
讲了优化的几个标准:
优化必须是对的,不改变程序的原意
优化必须对大多数程序成立
编译时间在合理范围内
编写花费在可控范围内
1.5 Applications of Compiler Technology
总体讲写编译器的方法还能用到别的上面。
1.5.1 Implementation of High-Level Programming Languages
讲了高级编程语言的实现?(这节不是很清楚)
1.5.2
所有的高效率系统都用好了两种技巧:并行(parallelism),存储器等级(memory hierarchy)
然后介绍了一波parallelism和memory hierarchy
parallelism就是编译器把程序中可以同时进行的操作放到一起让cpu去同时操作。(in instruction level)
processor level上就是程序的可在多种cpu上跑
memory hierarchy大致就讲计算机都有这个层次,memory不可能又快又大
instruction level
processor level
1.5.3
介绍了编译器技术对电脑结构设计的促进
RISC
一种优化的指令集(Reduced Instruction-Set Computer)
x86用的是CISC,然后RISC不知道比x86高到哪里
Specialized Architecture
并不知道在说些什么
1.5.4
将编译器这种把source code转成target code的思想可以用在别的上面
比如不同架构的cpu的二进制代码转换(binary translation),程序转硬件结构(hardware synthesis),database query interpreter(不知道在说什么),编译过的模拟器比别的跑得快?(compiled simulation)
1.5.5
介绍了几种编译器可以提供的用于编程的工具
类型检查(type checking)
越界检查(bounds checking)
内存管理工具(memory management tool),比如java的垃圾回收(garbage collection)