Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/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
Javascript “目标符号”与上下文无关语法中的“开始符号”相同吗_Javascript_Ecmascript 6_Compiler Construction - Fatal编程技术网

Javascript “目标符号”与上下文无关语法中的“开始符号”相同吗

Javascript “目标符号”与上下文无关语法中的“开始符号”相同吗,javascript,ecmascript-6,compiler-construction,Javascript,Ecmascript 6,Compiler Construction,定义四个组成部分: 一组非端子(V) 一组标记,称为终端符号(∑) 一组产品(p) 其中一个非端子被指定为开始符号(S);从…起 生产开始的地方 没有提及开始符号,而是提及目标符号: 从一个句子开始由单个 非终结符,称为目标符号,一种给定的上下文无关语法 指定一种语言,即(可能无限)可能的 重复使用可产生的端子符号序列 将序列中的任何非终结符替换为 非终结符位于左侧的产品 根据这一定义,我可能会得出这样的结论:目标符号实际上只是开始符号的另一个名称,但之所以使用目标符号名称,是因为有不同的开

定义四个组成部分:

  • 一组非端子(V)

  • 一组标记,称为终端符号(∑)

  • 一组产品(p)

  • 其中一个非端子被指定为开始符号(S);从…起 生产开始的地方

没有提及开始符号,而是提及目标符号:

从一个句子开始由单个 非终结符,称为目标符号,一种给定的上下文无关语法 指定一种语言,即(可能无限)可能的 重复使用可产生的端子符号序列 将序列中的任何非终结符替换为 非终结符位于左侧的产品

根据这一定义,我可能会得出这样的结论:目标符号实际上只是开始符号的另一个名称,但之所以使用
目标符号
名称,是因为有不同的开始符号“类别”:

有几种情况下,词汇输入的识别 元素对语法上下文非常敏感,即 使用输入元素。这需要多个目标符号 词汇语法

那么目标符号是CFG上下文中开始符号的另一个名称吗?

是 你所引用的只是CFG的一个定义——还有其他定义。例如:

语法是4元组:

  • 一组终端符号(即语言的有效“单词”)
  • 一组非终端符号(即语言的“词类”)
  • 一组称为产品的规则,可将每个非终端转换为一系列终端
  • 一个开始符号目标符号,即要生成的非终结符(例如,英语中的“句子”)
  • 从我粗略的网络搜索中,似乎在讨论解析器时更经常使用术语“目标符号”。我猜这是因为有自下而上的解析器,比如算法不是以目标符号开始的


    顺便说一句,ECMAScript规范中的特定段落似乎是从字面上抄袭过来的——因此你可以将任何事情归咎于他们:)

    投票结果接近的原因是什么?可能是因为它超出了一般so回答者的知识范围@Jonasw,是的,我仍然希望有人能理解EcmaScript在这一层面上。谢谢,Max(@AngularInDepth.com),我只是想知道同样的事情。如果你还在潜入规范,我已经发布了一些相关的问题,包括:谢谢你的确认!似乎是从Java语言规范中照搬过来的——我也注意到了这一点。我开始按照@Pointy的建议查看Java规范,并注意到完整的段落在word中类似。