自然语言是人类讲话使用的语言,如英语、西班牙语和法语等。虽然人们总要给自然语言加上一些规则,但自然语言并非人类设计,它们是自然演化而来的。
形式语言是人们为特定应用设计的语言。例如,数学家使用的记号就是一种便于表示数字与符号关系的形式语言。化学家也使用一种形式语言来表示分子的化学结构。最重要的是:
编程语言是人为设计的用来表达计算的形式语言。
形式语言有严格的语法规则。比如3+3=6是符合语法的数学语句,而3=+6$则不是。同样*H*2*O*是符合语法的化学式,但2*Zz*不是。
这里的两个2都是下标,在Markdown语法中无法表示。
语法规则包含两个方面:标识符与结构。标识符是语言的基本元素,像单词、数字以及化学元素等。3=+6$的一个错误是,至少据我所知$不是数学上合法的标识符。类似的,2*Zz*也是非法的,因为没有缩写为Zz的化学元素。