16得票4回答
递归计算支配树的高效方法?

我正在使用Lengauer和Tarjan算法结合路径压缩,计算包含数百万个节点的图的支配树。该算法相当复杂,我必须承认我没有花时间完全理解它,我只是在使用它。现在我需要计算根节点的直接子节点的支配树,并可能向下递归到一定深度重复此操作。也就是说,当我为根节点的一个子节点计算支配树时,我想假装已...

27得票3回答
从正则表达式创建NFA的步骤

当我从正则表达式创建NFA时,我在“描述每个步骤”方面遇到了问题。问题如下: 将以下正则表达式转换为非确定有限状态自动机(NFA),清楚地描述您使用的算法的步骤: (b|a)*b(a|b) 我已经制作了一个简单的三状态机,但这很大程度上是基于直觉。 这是我的讲师过去考试的问题,他还写了有关...

9得票7回答
为什么编译器不能像我输入代码一样立即编译它?

为什么编译器不能在我输入代码时直接编译它呢? 从用户的角度来看,它可以像语法着色一样顺畅工作。如果您停止输入足够长的时间(可能是几秒钟),则编译(而不是链接)将完成,并且使用类似语法着色的方式来识别代码错误。 这并不像我的3GHz四核怪兽电脑真的很忙于做其他事情。为什么不让它一直编译呢?

14得票2回答
有没有一些“有趣”的方式来学习语言、语法、解析和编译器?

我正在为语言、语法、解析和编译器的考试做准备。这不是我的强项,我发现大多数资源都使用数学语言来定义行业术语并解释我需要了解的不同概念,而不是使用我非常喜欢的英语或法语。因此,我在找到继续学习的动力和理解理论方面遇到了一些困难。 所以我的问题是:你们中有谁知道我可以找到“有趣”的学习方式吗?或...

127得票8回答
解析树和抽象语法树(AST)有什么区别?

它们是编译过程的不同阶段生成的吗?还是只是指称同一件事情的不同名称?

10得票2回答
哪些编程语言具有正则文法?

我很好奇哪些(如果有的话)现实中的编程语言具有正则文法(即所有语法正确的程序集合是正则的)。 另请参见这个问题:哪些编程语言是上下文无关文法?。

11得票4回答
可逆运算平台

来自可逆计算常见问题解答: 为了在给定的比特耗散速率下实现最大可能的计算性能,通常需要在计算的所有级别(设备、电路、体系结构、语言和算法)上显式地实现可逆性——这是一个强烈的猜想,但尚未正式证明,称之为Frank定律。 据我所知,当比特归零时会产生能量损失。如果软件和硬件平台具有反向逻...

11得票7回答
解析“偏向”(基于缩进)的语言

一种离线语言是指在该语言中,声明的范围(块)由缩进表示。 ...例如Python、Boo、Nemerle、YAML等语言。 那么我的问题是:我应该如何解析这些语言?如何解决制表符与空格的问题(两个制表符或8个空格是否等效)?解析器生成器是否有助于此,还是我必须手动编写词法分析器/语法分...

8得票2回答
什么是抽象语法树?它是否必要?

我一直对编译器/解释器的设计和实现感兴趣(只有5年来),它总是被认为是幕后的“魔法”,没有人真正谈论它(我知道至少有2个操作系统开发论坛,但我不知道任何关于编译器/解释器/语言开发的社区)。无论如何,最近我决定开始自己动手,并希望扩展我的整个编程知识(而且这很有趣:)。因此,基于我有限的阅读材...

89得票9回答
哪些编程语言是无上下文的?

或者更准确地说:哪些编程语言是由上下文无关文法定义的? 据我所知,C++不是上下文无关的,因为它包含诸如宏和模板等内容。我的直觉告诉我,函数式语言可能是上下文无关的,但我没有任何硬数据来支持这一点。 对于简洁的示例给予额外的奖励 :-)