课程地址:Youtu视频:Stanford CS143 Compilers
Intro to Compilers
编译器和解释器
编译器:
offline离线
输入:程序
输出:exec
过程:在对输入数据进行处理前不会对程序进行处理
解释器:
online在线
输入:程序+数据
输出:运算结果
过程:在对输入数据进行处理前不会对程序进行处理
编译器一般架构
- 词法分析
- 语法分析
- 语义分析
- 优化
- 代码生成
Why
为什么有这么多编程语言?
- 不同的应用领域由不同/冲突的需求
为什么又新的编程语言?
程序员培训是编程语言的主要成本
- 广泛被使用的语言改变非常缓慢
- 开启一个新的语言很容易
- 为填补空白而采用的语言