Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Syntax 什么是上下文无关语法和Backus-Naur形式?_Syntax_Context Free Grammar_Bnf - Fatal编程技术网

Syntax 什么是上下文无关语法和Backus-Naur形式?

Syntax 什么是上下文无关语法和Backus-Naur形式?,syntax,context-free-grammar,bnf,Syntax,Context Free Grammar,Bnf,有人能用外行的语言解释一下吗 什么是上下文无关语法 什么是巴科斯诺尔形式 如何使用这个符号 如何进行字符串派生 如何描述语言语法 上下文无关语法是一种形式语言。 Backus Naur form是这类语法的规范语言。用于描述语言语法。 您应该阅读: 上下文无关语法(CFG)G是四元组(V,∑,R,S),其中 V:一组非终端符号 ∑:一组端子(V∩ ∑=Ǿ) R:一套规则(R:V→ (V U∑)*) S:开始符号 CFG示例: V={q,f,} ∑={0,1} R={q→ 11q,q→

有人能用外行的语言解释一下吗

  • 什么是上下文无关语法

  • 什么是巴科斯诺尔形式

  • 如何使用这个符号

  • 如何进行字符串派生

  • 如何描述语言语法


  • 上下文无关语法是一种形式语言。 Backus Naur form是这类语法的规范语言。用于描述语言语法。
    您应该阅读:



    上下文无关语法(CFG)G是四元组(V,∑,R,S),其中

    • V:一组非终端符号
    • ∑:一组端子(V∩ ∑=Ǿ)
    • R:一套规则(R:V→ (V U∑)*)
    • S:开始符号
    CFG示例:

    • V={q,f,}
    • ∑={0,1}
    • R={q→ 11q,q→ 00f,f→ 11楼,6楼→ ε}
    • S=q
    • (R={q→ 11q | 00f,f→ 11f |ε})
    据我所知,Backus-Naur形式(BNF)是表示上下文无关语法(CFG)中所示内容的另一种方式

    BNF示例:

    [数字]::=[数字]|[数字][数字]

    [数字]::=0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

    可以这样理解: 数字是一个数字,或后面跟一个额外数字的任何数字 (这是一种扭曲但精确的表示数字由一个或多个数字组成的方式) 数字是字符0、1、2、…9中的任意一个

    差异:

    这两种表示法的符号有点不同,即

    -->等于::=

    |等于或

    肯定还有其他的区别,但老实说,我不知道还有其他区别:)

    字符串派生:

    让我们成为“开始”的象征

    • S-->A,初始状态
    • A-->0A
    • A-->1B
    • A-->
    • B-->1B
    • B-->
    字符串派生示例:

    此语法是否生成字符串000111?
    是的,是的

    • S-->A
    • A-->0A
    • 0A-->00A
    • 00A-->000A
    • 000A-->0001B
    • 0001B-->00011B
    • 00011B-->000111
    这都是我自己的观点,我也在研究它,如果我知道更多关于定义语言语法的细节,我一定会与大家分享


    干杯!

    在你的派生词中,什么是A和B。以前从未见过这样做。AFAIK
    A
    B
    非终端
    ,而
    0
    1
    是“终端”