CS143 斯坦福大学编译原理-000 Introduction
组成
课程组成
- Lexical analysis(词法分析),001 Lexical Analysis
- Parsing(解析,语法分析)
- Semantic analysis(语义分析)
- Optimization(优化)
- Code Generate(代码生成)
龙书组成
- Lexical Analyzer(词法分析器)
- Syntax Analyzer(语法分析器)
- Semantic Analyzer(语义分析器)
- Intermediate Code Generation(中间代码生成)
- Code Optimizer(代码优化器)
- Code Generator(代码生成器)
经济
语言示例
每种语言都有它擅长的领域。 科学计算,选择FORTRAN - 浮点 - 数组 - 并行计算 业务应用,使用SQL - 持久化 - 生成报告 - 数据分析 系统编程,选择C/C++ - 资源控制 - 实时性
新编程语言
出现的时机: - 广泛使用的变化缓慢 - 入门简单 - 弥补其他语言无法很好解决的领域
最好的编程语言
没有最好的设计语言,只有解决某领域问题最合适的语言。
COOL
Classroom Object Oriented Language(课堂面向对象语言)。
简介
目标
- 短时间设计一个COOL编译器
- 编写COOL程序 完成一个完整的编译器,最终可以在MIPS架构处理器上运行程序。可能会使用的工具:
- qemu
- spim(Linux系统上使用的MIPS模拟器)
- pcspim(Windows系统上使用的MIPS模拟器)
任务
分别完成以下步骤: - 编写COOL程序 - 词法分析 - 解析(语法分析) - 语义分析 - 代码生成 - 代码优化
语法
基本结构
- cl为文件扩展名
- 类后面紧跟一对大括号
- 声明使用英文;结尾
- Main.main为主函数,不能包含参数
- 函数参数后使用:定义返回值
- 返回值由最后一句结果决定
关键词
后面补充
类型
后面补充
标准库
后面补充