本文已收录到:CS143斯坦福编译原理学习笔记 专题
- CS143 斯坦福编译原理 Cool语言概述
- CS143 斯坦福编译原理 词法分析
编程语言的性价比
问1:为什么有这么多程序语言?
如,科学计算→Fortran,商业程序→SQL,系统程序→C/C++
答:不同程序所解决的领域是不同的
Cool语言概述
课程项目:使用c++为Cool语言构造编译器
课程目标:使用c++为Cool语言实现一个完整的编译器。
课程主页:http://web.stanford.edu/class/cs143/
斯坦福CS143课程共含有5个编程任务 (PAs) :
- 编写一个Cool程序
- 词法分析器
- 语法解析
- 语义分析
- 代码生成
后四个是编写一个编译器所应有的四部分,采取插件化开发,每个步骤模块都是独立的,这样也方便参考资料和测试。需要注意的是这里并没有代码优化的作业,我们只讲一些优化建议。市面上也有许多关于Cool语言的优化方案,你可以作为一个可选作业来完成。
Cool语言使用:https://www.bilibili.com/video/BV1cE411f78c?p=4
Cool语法规则:https://www.cnblogs.com/pinkman/archive/2013/03/12/2954902.html
在课程视频中用了三节讲述了我们设计的这个编程语言Cool的基本语法。
https://www.bilibili.com/video/BV1cE411f78c?p=4
https://www.bilibili.com/video/BV1cE411f78c?p=5
https://www.bilibili.com/video/BV1cE411f78c?p=6
第一节讲述了 Main类、main函数、函数形参、函数返回类型、初始化类、IO打印输出、Object类、类的继承、self。
第二节讲述了 IO操作、类的继承、函数的声明使用、函数调用、if语句、比较符、局部变量声明初始化、赋值语句、循环语句、i2a内置函数进行数据类型转换。
第三节讲述了 列表、变量的声明初始化、类的初始化、指针、内置isvoid函数、case语句、程序终止函数abort。
更多Cool语言语法细节知识和案例可以查看实验虚拟机中的 /home/compilers/cool/examples 文件夹。
关于实验环境配置和虚拟机请移步:CS143 斯坦福编译原理 实验环境准备
补充资料,Cool语言语法总结:https://www.cnblogs.com/pinkman/archive/2013/03/12/2954902.html