compiler-construction 相关问题

标记编译器构造应该应用于有关编译器编程的问题或有关编译器详细内部工作的问题。请勿使用*使用*特定编译器或编译错误的问题。

基于寄存器的VM - 字节顺序 - 推送/加载

我需要为处理器(或基于寄存器的VM)编写一个32位模拟器。 为简单起见,RAM 是一个字节数组,当我需要时,我会将其转换为 (int32_t*) (int16_t*) 和 (int8_t*)...

回答 1 投票 0

C 中标识符的翻译限制

出于教育目的,我已经开始编写自己的 C 编译器。我的目标是基本上符合 C99 标准。现在我有一个关于标识符的最大长度的问题。 这是一个分机...

回答 1 投票 0

C - 标识符的翻译限制

出于教育目的,我已经开始编写自己的C编译器。我的目标是基本上符合 C99 标准。现在我有一个关于标识符的最大长度的问题。 这是一个额外的...

回答 1 投票 0

编译器术语中的BU和USR是什么意思?

在学习 LLVM 和 clang 的过程中,我遇到了缩写 BU 和 USR。我一直无法弄清楚它们的意思。 我假设 BU 是某种单位 - 就像 TU 是一个

回答 1 投票 0

扩展 GCC 进行内存管理

我需要扩展GCC编译器来为一个巨大的C++项目进行内存管理,但我不知道从什么开始,我需要一些关于gcc如何分配内存的文档,以及一个插件框架...

回答 1 投票 0

ALGOL 编译器最初是用什么编写的?

我一直在四处寻找,但发现很少有关于用于创建 ALGOL 58 编译器的信息。编译器的创建是否与 FORTRAN 类似,因为它们使用物理卡来创建它?

回答 4 投票 0

Bison 解析器处理 for 循环的问题(语法错误)

我正在使用上下文无关语法和 Bison 和 Flex 编写一个解析器来处理包含 for 循环的简单语言。但是,当我尝试解析有效的 for 循环时遇到语法错误

回答 1 投票 0

Java:如何访问 try-catch 循环中的赋值?

这个问题让我陷入了大的 try-catch 循环。我想要小一点的那么如何访问循环中的赋值呢? $ javac TestInit2.java TestInit2.java:13:变量未知可能不是初始的...

回答 5 投票 0

源代码程序的代码段和数据段在流程执行过程中是如何真正处理和分离的?

考虑下图所示的 RAM,其中存储了一个非常简单的程序,分为指令块和数据块。该示例与书中的示例非常相似 &q...

回答 1 投票 0

将 CUDA 或 OpenCL 编译为 llvm IR

Clang 可以将 CUDA(不完整)或 OpenCL 翻译为 llvm。它如何保留“共享”关键字,以便它知道共享内存和全局内存之间的区别?

回答 1 投票 0

JIT编译器生成的代码如何与程序链接?

我试图了解 JIT 编译器是如何工作的。我已经了解了运行时动态代码生成的基本思想,但我不清楚生成的代码如何与程序链接?那个...

回答 1 投票 0

如何在Bison中结束if语句?

if_stmt:tok_if '('条件')' '{'根'}' {debugBison(26);} ; 条件:表达式 {debugBison(19); if ($1==0.0){退出(0);}} ; 我正在尝试在野牛中实现 if 条件,每个...

回答 1 投票 0

将 EBNF 转换为 C# 供编译器

我正在尝试学习将 EBNF 转换为 C# 代码。 示例:int = 我理解它的说法“这种数据类型(int)的变量(ident)接受(=)一个整数(expr),...

回答 1 投票 0

mingw 和 gcc 只是后端不同吗?

我们知道编译器通常由三部分组成:前端、中间表示(优化器)、后端 我对mingw的理解: mingw 使用编译器前端和 IR 优化...

回答 1 投票 0

如何让 ANTLR 显示所有语法错误

所以我目前正在java中做一个pascal编译器作为一个项目,并且我正在进行错误处理,但我注意到如果我正在解析的文件中有两个或更多错误,它只会显示

回答 1 投票 0

此处应用的确切编译器优化(除了尾递归消除之外)是什么?

我正在编写一个简单的C程序,实现一个中序树遍历函数: void inorderTraversal(struct TreeNode* root) { 如果(根== NULL){ 返回; } 中序遍历(...

回答 1 投票 0

LLVM内存依赖分析中“clobbers”是什么意思

我是 LLVM 的新手,目前正在从事涉及内存依赖分析的工作。阅读文档后,我发现术语“clobber”使用得相当频繁。现在,我确实明白什么是被破坏了

回答 1 投票 0

strdup 在传递 NULL 时转储核心

strdup(null) 转储核心。 分别在 ubuntu 和 freeBSD 上尝试过。 为什么?不应该返回null吗? 字符 *b = NULL; a = strdup(b); 这将在 strdup 调用上转储核心。

回答 4 投票 0

如何使用cil在.NET上创建新的语言和编译器

好吧,我又提起一个老话题了。 凭借.NET的开源和生态发展,以及.NET平台本身的优势,开发一门...

回答 1 投票 0

为什么 (void) 0 在 C 和 C++ 中是无操作?

我在glibc中看到了调试printfs,如果定义了NDEBUG,它的内部定义为(void)0。同样,Visual C++ 编译器的 __noop 也在那里。前者适用于 GCC 和 VC++ com...

回答 6 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.