# 语义（Semantics）

### 缩写：无

### 简述

编程语言中关于「合法程序表示什么、执行产生什么效果」的规则与约定。相对语法的「形」，语义是「义」：求值顺序、作用域规则、类型含义、内存与副作用、错误如何产生等。理解语义才能预测行为、做正确重构与并发推理。

### 使用场景

解释「为什么这样运行」、语言对比、形式化规范、排查与直觉不符的边角行为。

### 实践与应用

• 对关键路径查语言规范或权威参考中的求值与绑定规则。
• 重构时保持可观察语义（或有意识地改变并测全）。
• 跨语言移植时逐项核对相等、数值、字符串、异步语义。

### 注意事项

• 未定义行为/实现定义行为（某些语言）会导致「看似能跑、换平台炸」。
• 优化不得擅自改变规定语义。
• 文档示例的简化语义可能忽略错误路径。

### 对比与易混

| | 语义 | 语法 |
|--|------|------|
| 焦点 | 含义与效果 | 记号如何拼 |
| 例子 | 短路求值、作用域规则 | 括号、关键字位置 |

### 关联术语

• 语法：只约束形式是否合法
• 求值：按语义计算表达式结果的过程
• 副作用：求值时对状态或外部的可观察影响
• 未定义行为：部分语言中语义未规定时的风险区
