问题标签 [context-free-grammar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1521 浏览

random - 从上下文无关文法生成 n 条语句

所以不要重新发明轮子,我想知道在从上下文无关语言(如 yacc 生成的语言等)生成随机语句方面已经做了什么。这些语法主要用于解析,但也许有人做了一些测试来测试解析器?谢谢

0 投票
5 回答
20133 浏览

c++ - 有标准的 C++ 语法吗?

标准是否指定了官方的 C++ 语法?

我搜索了,但没有在任何地方找到它。

另外,我希望详细了解 C++ 语法,例如它属于哪种语法类别等。任何指向正确方向的链接都会有所帮助。

按类别,我的意思是

点击放大 取自这里

0 投票
3 回答
4478 浏览

programming-languages - 乔姆斯基层次结构和编程语言

我正在尝试学习与编程语言相关的 Chomsky Hierarchy 的某些方面,但我仍然需要阅读 Dragon Book。

我读过大多数编程语言都可以解析为上下文无关语法(CFG)。就计算能力而言,它等于下推非确定自动机之一。我对吗?

如果是真的,那么一个 CFG 怎么可能持有图灵完备的无限制语法(UG)?我之所以问是因为,即使 CFG 描述了编程语言,它们实际上也用于描述图灵机,因此通过 UG。

我认为这是因为至少有两个不同级别的计算,第一个是 CFG 的解析,侧重于与语言的结构(表示?)相关的语法,而另一个侧重于语义(意义,解释数据本身?)与图灵完备的编程语言的能力有关。同样,这些假设是否正确?

0 投票
1 回答
227 浏览

compiler-construction - 识别以前未定义为令牌的 CFG 生产中的终端

我正在制作 LL(1) 解析器的生成器,我的输入是 CoCo/R 语言规范。我已经为该输入准备了一个扫描仪生成器。假设我有以下规范:

所以,如果由这个语法生成的解析器接收到一个单词“1+1”,它就会被接受,即会找到一个解析树。

我的问题是,字符“+”从未在标记中定义,但它出现在非终端“表达式”中。我生成的 Scanner 应该如何识别它?它不会将其识别为令牌。

那么这是一个有效的输入吗?我应该在 TOKENS 中添加这个终端,然后考虑一个扫描程序的错误例程让它跳过它吗?

通常的语言规范如何处理这个问题?

0 投票
2 回答
1705 浏览

algorithm - LL(*) 解析器如何工作?

我在 Internet 上找不到任何关于 LL(*) 解析器(例如 ANTLR)的完整描述。

我想知道 LL(k) 解析器和 LL(*) 解析器之间有什么区别,以及为什么尽管它们具有灵活性,但它们仍不能支持左递归语法。

0 投票
1 回答
3958 浏览

python - 在 Python 中解析上下文无关文法

Python 中有哪些工具可以帮助解析上下文无关文法?

当然,我可以自己动手,但我正在寻找一种通用工具,可以为给定的 CFG 生成解析器。

0 投票
1 回答
282 浏览

grammar - =*> 对于上下文无关语法意味着什么?

我一直在阅读一些关于编译器理论的书籍/在线参考资料,并且每隔一段时间就会看到那个特定的运算符出现(如此处所示,特别是当当前主题是上下文无关语法时。这是什么意思?同样,它与 有何不同=>

用示例区分=>的解释=*>将是最有帮助的。

0 投票
1 回答
699 浏览

context-free-grammar - “任意”上下文无关语法?

长期仰慕者第一次询问者:)

我正在开发一个程序,该程序从上下文无关语法中推导出确定性有限状态自动机,而我被分配的论文解释了如何做到这一点,一直提到“任意概率上下文无关语法”,但从未定义与 PCFG 相关的“任意”的含义。我认为他们的意思是“任何旧的 PCFG”,但为什么不直接说“任何 PCFG”呢?

该术语也出现在几个维基百科条目中。在CFG 页面的顶部,提到了与 CFG 相关的任意性(“子句可以任意深度地嵌套在子句中”),但没有明确说明为什么有人将 PCFG 或 PCFG 的子集称为任意.

如果有人好奇,这篇论文是Klein 和 Manning 的Parsing and Hypergraphs (2001);我还阅读了他们与这篇文章相关的另外两篇论文(An Agenda-Based Chart Parser for Arbitrary Probabilistic Context-Free Grammars and Empirical Bounds、Theoretical Models 和 Penn Treebank),它们广泛使用了这个术语,但从不解释它任何一个。

0 投票
2 回答
67922 浏览

grammar - 将歧义语法转换为明确的语法

我不明白一个明确的语法是如何从一个不明确的语法推导出来的?考虑现场示例:Example。语法是如何派生的让我感到困惑。

谁能指导我?

0 投票
3 回答
162 浏览

c++ - 从 VB.NET 到 C++ 的变量和循环转换?

是否有任何可用的工具将变量和循环声明从 VB.NET 转换为 C++?