语法(Syntax)
缩写:无
简述
编程语言中关于「怎样写才合法」的规则:标识符、关键字、表达式与语句的结构、标点与嵌套方式等。语法只约束形式;写得合法仍可能语义错误或逻辑错误。解析器首先根据语法把源码变成结构表示(如语法树)。
使用场景
读报错「unexpected token」、写代码生成器、设计 DSL、对比语言表层差异。
实践与应用
• 把语法错误与类型错误、运行时错误分开处理。
• 依赖格式化工具统一风格,减少无意义的语法争论。
• 学习新语言时先抓表达式/语句边界与块结构。
注意事项
• 语法糖不改变表达能力上限,但影响可读与习惯。
• 空白在部分语言有语义(如缩进语法)。
• 自动生成的「合法但不可读」代码仍增加维护成本。
对比与易混
| 语法 | 语义 | |
|---|---|---|
| 问的是 | 写得合不合法 | 表示什么、执行有何效果 |
| 出错时 | 解析/编译报错 | 行为不符预期或未定义 |
关联术语
• 语义:合法结构表示什么意思(与「写对形式」相对)
• 关键字:语法中的固定词
• 解析 / 抽象语法树:按语法把源码变成结构
• 编程语言:语法所属的规则体系