计算理论:巴科斯范式
外观
巴科斯范式(也称为巴科斯范式 (BNF) 或简称BNF)是一种用于表达计算机语言语法的符号技术。表达式被放在列表中,可用于检查所写语法的有效性。
BNF 使用以下符号表示
::= 'is defined as' | 'or' <> category names
这些符号的布局方式如下
<Parent Expression> ::= <Child Expression 1> | <Child Expression 2>
简单来说,上面的表达式表示“父表达式定义为子表达式 1 或子表达式 2”。这意味着要构成父表达式,它必须包含一个子表达式,而子表达式又是由其他东西组成的。
在本例中,BNF 结构正在分解语法以创建
家庭住址的巴科斯范式分解 <Address> ::= <House Number> <Street Name> <Town Name> <City Name> <Country> <Postcode> | <House Number> <Street Name> <City Name> <Country> <Post Code> <Postcode> ::= <Area Code> <Street Code> <Area Code> ::= <City Prefix> <digit> | <City Prefix> <digit> <digit> <Street Name> ::= <Name> <Street Type> <Flat Number> ::= <character> | <digit> <House Number> ::= <number> | <digit> <number> <number>::= <digit> | <digit> <number> <Name> ::= <string> <Street Type> ::= <string> <City Prefix> ::= <string> <Street Code> ::= <string> <Town Name> ::= <string> <City Name> ::= <string> <Country> ::= <string> <string> ::= <character> | <character><string> <character> ::= A|B|C|D|E|F|G|H|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z <digit> ::= 0|1|2|3|4|5|6|7|8|9 |
使用上面关于地址的示例中的 BNF,说明每个输入是否有效输入。 15 Jubilee Lane Blackpool England FY98 5ER 答案 否 15 Jubilee Lane Blackpool England FY423 5ER 答案 否 32 Parkstone Road Syston England Leicester LE7 3ZY 答案 否 |