compiler-theory

compiler-theory

文章 0 浏览 3

当您在 C 中取消引用静态变量时到底会发生什么?

假设我有这段代码, int my_static_int = 4 func(&ampmy_static_int) 显然我向函数传递了一个指向 my_static_int 的指针。但是当代码被编译时会发生什…

追星践月 2024-09-26 10:03:16 2 0

前瞻集的精确定义是什么?

我正在尝试编写编译器并学习语法分析背后的理论。我发现,尽管它是理解识别算法的关键概念,但网上有关它的信息却相当匮乏。看来 StackOverflow 处于…

只有影子陪我不离不弃 2024-09-19 11:08:39 2 0

正式构建控制流图

我正在为大学项目编写一个编译器,我想将我的抽象语法树转换为控制流图(CFG)。 我认为 CFG 中的节点(V)应该是来自 AST 的节点。我知道如何在算法…

老娘不死你永远是小三 2024-09-16 11:48:29 4 0

词汇错误的例子是什么?一种语言是否可能没有词汇错误?

在我们的编译器理论课程中,我们的任务是为我们自己设计的编程语言创建一个简单的解释器。我使用 jflex 和 cup 作为我的生成器,但我对词汇错误是什么…

我不是你的备胎 2024-09-14 01:13:41 7 0

重复的文字和硬编码

我发现以下模式经常出现: b-&gtlast = ngx_cpymem(b-&gtlast, "&lt/pre&gt&lthr&gt", sizeof("&lt/pre&gt&lthr&gt") - 1) 请注意,文字字符串使用了…

厌倦 2024-09-07 11:00:46 5 0

使用 ANTLR 构建树

删除左递归 E -&gt E + T|T T -&gt T * F|F F -&gt INT | ( E ) 正如 在 ANTLR 中删除左递归中询问和回答的那样,我可以在之后 左递归去除,我得到以…

可爱咩 2024-09-05 12:06:30 6 0

删除 ANTLR 中的左递归

正如删除左递归中所述,有两种方法可以删除左递归。 修改原来的语法,使用一些程序删除左递归 编写原来没有左递归的语法 人们通常用什么来用 ANTLR 删…

远昼 2024-09-04 23:45:24 7 0

编译器如何检测跨翻译单元的重复定义

编译器如何检测翻译单元中的重复定义。假设头文件中有一个 extern const 变量声明。 如果此头文件在多个翻译单元中使用 - 每个翻译单元都有一个单独的…

走过海棠暮 2024-08-31 07:32:26 5 0

示例编译器

Closed. This question is seeking recommendations for software libraries, tutorials, tools, books, or other off-site resources. It does not …

南风几经秋 2024-08-29 06:59:46 3 0

二元运算的IR树表示

我有一个简单的操作,如下所示: k + 1 它的 IR 树表示是什么? 到目前为止,我想出了: BINOP(+, MEM(NAME(k)), CONST(1)) 但我不确定我是否需要 NAM…

触ぅ动初心 2024-08-27 08:04:05 3 0

现代和旧的编译器是用什么编写的?

作为编译器(而不是解释器),只需要翻译输入而不运行它,其本身的性能应该不会像解释器那样有问题。 因此,您不会用 Ruby 或 PHP 编写解释器,因为它…

浊酒尽余欢 2024-08-27 06:15:08 5 0

语言和虚拟机:难以优化的功能及其原因

我正在对功能进行调查,为研究项目做准备。 说出一种难以优化的主流语言或语言功能,以及为什么该功能值得或不值得付出的代价,或者只是用轶事证据揭…

別甾虛僞 2024-08-26 06:53:17 6 0

S属性和L属性语法是什么意思?

我正在读一本编译器书,当它说“S 属性语法也是 L 属性语法”时,我有点困惑。无法理解。有人可以说清楚吗(一个例子应该很好)。谢谢。…

一绘本一梦想 2024-08-25 05:20:26 6 0

yacc:区分整数和浮点数

我应该编写一个程序来执行 2 + 2 = 4 和 2.2 + 2 = 4.2。 我已经这样做了,以便它将所有内容视为浮点,但这是“错误的”。我必须区分它们。到目前为止…

想你的星星会说话 2024-08-24 03:23:37 2 0

“类型和尺寸说明符” - 术语

请看以下片段: 1 #include &ltstdio.h&gt 2 #include &ltstdlib.h&gt 3 int foo(char [6]) 4 5 int main(void) { 6 char* bar="hello" 7 return foo(…

无名指的心愿 2024-08-23 00:44:24 4 0
更多

推荐作者

烙印

文章 0 评论 0

singlesman

文章 0 评论 0

独孤求败

文章 0 评论 0

晨钟暮鼓

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文