编译原理-02
来源:互联网 发布:淘宝店铺 ip地址 编辑:程序博客网 时间:2024/05/01 18:53
今天无意去听了下斯坦福的编译原理课程。发现和西安交大的课程比,更偏向工程实践。
这明显是中美两国的教学差别。中国的老师主要是数学系风格,美国则是工程师风格。
听课笔记:
Compiler(编译器) 与 Interpreter(解析器)区别
Compile:
Input : Source File
Ouput: Exe程序
Interpreter:
Input : Source File + Data
Ouput: 执行结果
通俗的来说, 编译器只负责语言的翻译,比如将C语言翻译成机器语言,或者将高级语法翻译成汇编语言。
而解析器不但负责语言的翻译,还要执行,并输出结果给用户。
即 编译器 Off-line Interpreter On-line
编译器主要结构:
词法分析 Lexical Analysis tokens ( 二元组,Word, Property)
Parsing 自上而下 自下而上 语法树
Semantic Analysis 解决语境与语意 二义性问题
Optimization Run faster 运行速度 Use Less Resources 资源最少
Code Generation 生成目标代码
为什么要发明新的语言
1》不同的领域有不同的需求
2》主要考虑到教育成本(Programmer Training) 旧语言使用的人越多,适应新功能的成本越高
3》新的语言一般和旧语言比较像
其实将上面的语言换成开发的产品,很多工程观点是一致的。
国内的课主要是学数学,国外的课让你有更多工程思考。
课程地址:
https://www.coursera.org/course/compilers
英语听力还行的建议去听听。
- 编译原理-02
- 编译原理
- 《编译原理》
- 编译原理
- 编译原理
- 编译原理
- 编译原理
- 编译原理
- 编译原理
- 编译原理
- 编译原理
- 编译原理
- 编译原理
- 编译原理
- 编译原理
- 编译原理
- 编译原理
- 编译原理
- DSP6000的几个简单优化技巧
- iOS 7.X完美越狱工具放出 支持所有iOS设备
- Word Search
- Dom4j快速入门
- 谈数据库索引和Sqlite中索引的使用
- 编译原理-02
- hadoop命令行中自定义计数器
- Linux trouble shooting
- dede文章摘要字数的设置方法
- LINUX根文件系统分析
- 【函数】最大公约数和最小公倍数
- 蓝桥杯——奇怪的比赛
- Filter(一)配置及生命周期
- 多线程 同步代码块