`

巴科斯范式

bnf 
阅读更多
α→β表示为α∷=β
* 非终结符用“<”和“>”括起来
* 终结符:基本符号集
* 其他
β(α1|α2…|αn)≡βα1|βα2…|βαn
{α1|α2…|αn} ul
{α1|α2…|αn}m l=0,u=m
[α] ≡ α| ε
……
双引号中的字("word")代表着这些字符本身。而double_quote用来代表双引号。
在双引号外的字(有可能有下划线)代表着语法部分。
尖括号( < > )内包含的为必选项。
方括号( [ ] )内包含的为可选项。
大括号( { } )内包含的为可重复0至无数次的项。
竖线( | )表示在其左右两边任选一项,相当于"OR"的意思。
::= 是“被定义为”的意思。
巴科斯范式示例
下面是用BNF来定义的Java语言中的For语句的实例:
FOR_STATEMENT ::=
"for" "(" ( variable_declaration |
( expression ";" ) | ";" )
[ expression ] ";"
[ expression ] ";"
")" statement
这是用BNF来定义的BNF本身的例子:
syntax ::= { rule }
rule ::= identifier "::=" expression
expression ::= term { "|" term }
term ::= factor { factor }
factor ::= identifier |
quoted_symbol |
"(" expression ")" |
"[" expression "]" |
"{" expression "}"
identifier ::= letter { letter | digit }
quoted_symbol ::= """ { any_character } """
分享到:
评论

相关推荐

    C、Java和Python的BNF范式

    BNF(巴科斯范式,Backus-Naur Form)是一种形式化语法的表示方法,广泛用于描述编程语言的语法结构。它由John Backus和Peter Naur在20世纪50年代末提出,旨在为ALGOL编程语言提供一个清晰的语法定义。在本资源中,...

    用预测分析表实现c子集语法分析

    在创建预测分析表之前,我们需要将这些规则转化为BNF(巴科斯范式)或EBNF(扩展巴科斯范式)的形式,这是一种形式化的表示语言的语法结构的方法。 接着,我们需要构建预测分析表。预测分析表由状态和输入符号组成...

    ISO_IEC_14977_1996(E) 信息技术 语法元语言 扩展的BNF标准(EBNF) .pdf

    信息技术 语法元语言 扩展的BNF标准(EBNF) 巴科斯范式(BNF: Backus-Naur Form 的缩写)是由 John Backus 和 Peter Naur 首先引入的用来描述计算机语言语法的符号集。现在,几乎每一位新编程语言书籍的作者都使用...

    SQL:SQL-92,SQL-99和SQL-2003的BNF语法

    BNF,巴科斯范式(Backus-Naur Form),是一种形式语法的表示方法,常用于描述编程语言或标记语言的语法结构。在SQL-92、SQL-99和SQL-2003中,BNF被用来精确地定义SQL的各种语句和表达式的结构,帮助开发者理解SQL的...

    BNF范式查看器

    巴科斯范式(Backus-Naur Form,简称BNF)是一种形式化的语法描述方法,广泛应用于计算机语言的定义,尤其是编译器设计领域。BNF查看器是一个专门用来解析和展示BNF范式的工具,它能够帮助用户理解和分析BNF规范,对...

    RFC2234(SIP遵循的BNF范式)

    #### 语法规范的扩展巴科斯范式:ABNF **ABNF(Augmented BNF for Syntax Specifications: ABNF)** 是一种基于传统巴科斯范式的扩展版本,用于描述语法规范。与原始的巴科斯范式相比,ABNF具有更丰富的表达能力和...

    b.rar_verilog ebnf

    下面我们将详细探讨递归下降分析、扩展巴科斯范式(EBNF)以及它们在Verilog中的应用。 **递归下降分析(Recursive Descent Parsing)** 递归下降分析是一种自顶向下的解析策略,它基于编程语言的语法结构,通过一...

    edk2-MetaDataExpressionSyntaxSpecification-release-1.30

    - **ABNF**: 增强巴科斯范式(Augmented Backus-Naur Form),一种用于描述语法结构的语言。 ##### 1.4 Target Audience 本规范的目标读者包括但不限于: - UEFI固件开发者 - EDK II构建系统维护者 - 需要理解和...

    AI-201300035-方盛俊-作业41

    该作业主要涉及数据库设计的相关知识,具体包括实体关系模型(ER模型)、关系模型、函数依赖、第二范式(2NF)和第三范式(3NF)以及巴科斯范式(BCNF)。以下是这些概念的详细说明: 1. **实体关系模型**:ER模型...

    形式语言自动机教学参考书.pdf

    此外,巴科斯范式(BNF)和扩展巴科斯范式(EBNF)在本书中也有详细解读。这两种形式化的方法被广泛用于描述编程语言的语法结构,是编译器设计中不可或缺的工具。通过巴科斯范式,复杂的语言结构能够被分解为一系列...

    pl0语法分析 词法分析 语义分析

    例如,一个简单的PL/0程序可能由一系列声明、语句和函数定义组成,这些元素之间的关系可以通过BNF(巴科斯范式)或EBNF(扩展巴科斯范式)形式化表达。语法分析器的任务是验证标记流是否符合PL/0语言的语法规则,并...

    编译原理实验.zip

    通常,这些规则用巴科斯范式(BNF)或扩展巴科斯范式(EBNF)表示。开发者使用这些规则来构建解析器,解析器将源代码转化为抽象语法树(AST),这是理解程序结构的关键步骤。 `compiler.txt` 文件可能是实验指南或...

    编译原理实现的一个词法分析器和LR1语法分析器.zip

    "语法"文件夹可能包含了描述编程语言语法规则的文件,这些规则通常以BNF(巴科斯范式)或EBNF(扩展巴科斯范式)的形式表示。这些规则定义了如何组合标记来构成合法的语句或表达式。 在实际编程中,编译器的每个...

    dd.rar_语法分析_语法分析器

    语法分析器的实现通常涉及编译原理中的概念,如上下文无关文法(Context-Free Grammar, CFG)、巴科斯范式(Backus-Naur Form, BNF)和扩展巴科斯范式(Extended Backus-Naur Form, EBNF)。开发者可以使用各种工具...

Global site tag (gtag.js) - Google Analytics