文章目录
语言的三要素
语言有三要素:语法(Syntax)、语义(Semantics)、语用(Pragmatics)
语法(Syntax)
语法是用规则表示语言的组成方式
C++中,与其他语言相同,用EBNF语法图表示语法
Bakus-Naur范式
范式的表示
- 形式化描述程序设计语言的语法(从自然语言梳理出来)
如:
thank sb. for sth.
这是一个pattern,其中sb.和sth.是非语言的一部分,这是为了描述pattern引入的;thank与for是语言的一部分(切实的就是本人)
这种对pattern的描述就实现了用简单形式代表一个集合
这种pattern在程序设计语言中就是EBNF
例:
ID ::- _A_D
A ::- a|b
D ::- 1|0
这就是一个规则,约束了ID;所有能形成的ID是这样几个:_a_1, _a_0, _b_0, _b_1
规则中:ID是目标的标识符(类似变量名);符号“::-”表示“定义为”,意为“规则的表示方法” - 此例中,用这三条规则代表的是一个有限的字符串集合;若要表示一个无限集合(即用有限的规则表示无限集合)用递归定义
如:
ID ::- _A_D
A ::- aA|bA|A
D ::- 0|1 - 依旧此例
ID&#x