CS143 斯坦福大学编译原理-Semantics
简介
tokens => lexical analysis词法分析 grammar => syntactic analysis语法分析 typing rules => semantic analysis语义分析 evaluation rules => code generation and optimization代码生成和优化
Operational Semantics
与变量声明类似,这里声明的是运算值
示例说明 
变量名和位置map

变量值存储

Cool对象表达方式

特殊场景

其他

Cool Semantics
复杂示例1

复杂示例2

通用表达

示例说明
if条件满足:
while条件不满足:
while条件满足:
有新申明的变量: 
声明对象T通用语法
- 声明内存存放类对象T的所有属性
- 设置所有属性的默认值
- 对象属性初始化
- 返回新对象地址
对象默认值

对象属性初始化

示例说明

e0.f(e1,…,en)的通用语法
- 按照参数顺序e1,…,en处理
- 处理目标对象e0
- 声明X为动态类目标对象
- 获取X的f(有n个参数)定义
- 创建n个新局部变量和一个环境
- 初始化局部变量
- 将self指向目标对象
通用表达式

示例说明

Intermediate Code中间码
简介
在源码与目标码之间的语言; 提供一种抽象的中间层; - 比源码拥有更多细节; - 比目标码少细节; 中间语言等同高级汇编; 每个指令采用三操作数方式;
特点
与汇编代码生成器类似; 可以使用任意个中间寄存器存储结果;
表达式
igen(e,t)表示:在寄存器t中,计算表达式e的值得代码
示例说明
