# 语法（Syntax）

### 缩写：无

### 简述

编程语言中关于「怎样写才合法」的规则：标识符、关键字、表达式与语句的结构、标点与嵌套方式等。语法只约束形式；写得合法仍可能语义错误或逻辑错误。解析器首先根据语法把源码变成结构表示（如语法树）。

### 使用场景

读报错「unexpected token」、写代码生成器、设计 DSL、对比语言表层差异。

### 实践与应用

• 把语法错误与类型错误、运行时错误分开处理。
• 依赖格式化工具统一风格，减少无意义的语法争论。
• 学习新语言时先抓表达式/语句边界与块结构。

### 注意事项

• 语法糖不改变表达能力上限，但影响可读与习惯。
• 空白在部分语言有语义（如缩进语法）。
• 自动生成的「合法但不可读」代码仍增加维护成本。

### 对比与易混

| | 语法 | 语义 |
|--|------|------|
| 问的是 | 写得合不合法 | 表示什么、执行有何效果 |
| 出错时 | 解析/编译报错 | 行为不符预期或未定义 |

### 关联术语

• 语义：合法结构表示什么意思（与「写对形式」相对）
• 关键字：语法中的固定词
• 解析 / 抽象语法树：按语法把源码变成结构
• 编程语言：语法所属的规则体系
