compiler-construction 相关问题

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

Javascript 解析器生成器 [已关闭]

我见过一些 javascript 解析器生成器: 吉森 (http://zaach.github.com/jison/) PEG.js (http://pegjs.majda.cz/) ANTLR (http://www.antlr.org/) JS/CC (http://jscc.jmksf.com/) 有没有人有...

回答 2 投票 0

清除标头中的字符串数组

代码有效: #包括 char *arr[1] = {“你好”}; int main() { printf("%s", arr[0]); 返回0; } 但是,该代码不起作用: #包括 代码有效: #include <stdio.h> char *arr[1] = {"Hello"}; int main() { printf("%s", arr[0]); return 0; } 但是,代码不起作用: #include <stdio.h> char *arr[1]; arr[0] = "Hello"; int main() { printf("%s", arr[0]); return 0; } 给出错误 警告:“arr”声明中的类型默认为“int”[-Wimplicit-int] main.c:4:1: 错误:‘arr’的类型冲突;有‘int[0]’ 如何在函数之外进行赋值(即在头文件中)? ‘arr’声明中的类型默认为‘int’[-Wimplicit-int] 如何在函数之外进行赋值(即在头文件中)? 他们没有。可执行语句必须位于函数内部。 当编译器分析函数外部的代码时,它期望找到声明。所以它正在分析 arr[0] = "Hello";,就好像它是一个声明一样。声明以某些说明符或限定符开头,例如 extern 表示存储类说明符,int 表示类型说明符,或 const 表示类型限定符。 在 C 的古代历史中,int 被视为默认类型,因此,当编译器找不到它期望的说明符或限定符之一时,它会假定 int 作为默认类型。这不再是现代 C 标准的一部分,因此编译器会警告您。

回答 1 投票 0

我可以使用c++编译器来编译c源代码吗? [重复]

可能的重复: 使用 C++ 编译器编译 C 代码会出现哪些问题? 只是好奇我是否可以使用c++编译器来编译c源代码?无论如何有没有编译...

回答 3 投票 0

拆包/包装操作员

我正在寻找实现打包/拆包操作符的各种方法。举个例子: *[1,2,3] --> 1,2,3(一个数组标量值解压缩为三个值) *1,2,3 -->...

回答 1 投票 0

ML 中的现代编译器实现 - 想要合并帧指针和各种临时变量的寄存器分配器存在问题

我不太明白为什么寄存器分配器认为帧指针是节点合并的良好候选者 - 它应该干扰所有其他临时对象,因此任何涉及的移动......

回答 1 投票 0

为什么编译器总是选择非显式构造函数来进行复制列表初始化?

对于下面的代码,编译器是否有任何原因会选择非显式构造函数.. 结构体S{ S() = 默认值; 显式 S(S & cp) { std::cout << "explicit" <<...

回答 1 投票 0

使用通用 SQL 方言捕获组

我想定义一个语法表达式: =expr + #native(...) expr 可以是我们语法中的任何有效表达式,目前这是有效的。然而,#native(...) 是一个有效的 SQL 语句...

回答 1 投票 0

编译器中如何区分负号和减号

我正在编写一个小型 PL/0 编译器用于练习。 我在编写表达式求值部分时遇到了一些问题。 这是一个小例子: -2 + 1 我的程序逻辑如下: 词汇

回答 1 投票 0

除了 CPython 之外,还有其他 Python 编译器吗? [已关闭]

我一直在 Python 项目中使用 CPython,但我听说 Python 也有替代编译器。这些替代编译器是什么,相比之下它们有什么好处......

回答 1 投票 0

可以在 ANTLR4 中用简单语法匹配空字符串的替代方案

我正在使用 ANTLR4 构建一个小型解析器,但我对遇到的错误感到困惑。词法分析器的定义如下: 词法分析器语法 LexerRules; INT : '整数'; 浮动...

回答 1 投票 0

查找解析器尝试构造成功解析树的平均次数

是否开发了一个理论概念,用于查找解析器(最好是自上而下的解析器;因为它也可能失败,即在无限循环上)尝试的平均次数,并留下给定的...

回答 0 投票 0

接受给定的算术表达式需要进行什么语法修改

有规则的语法,有两类运算符:addop、mulop、有优先级(addop) < precedence(mulop); & left-to-right associativity: expr -> 表达式 + 项 | expr - 术语 |术语...

回答 0 投票 0

为什么 Kotlin main 函数需要 @JVMStatic 注解?

最近开始学习Kotlin。在 Kotlin 中声明 main 函数时,我注意到一个有趣的行为。即使在对象类中,它也使用 @JvmStatic 注释。我环顾四周,发现......

回答 2 投票 0

c++中编译单元是怎么定义的? [重复]

可能重复: 什么是 C++ 中的“翻译单元” 人们常说在 C/C++ 中声明的静态变量在编译单元之间是不可见的?这是否意味着...

回答 3 投票 0

NMT 编译器 OOM

spring boot 服务总是 oom 杀手 NMT 信息在这里 编译器 OOM 我需要建议 在此处输入图像描述 目前,我使用“-Djava.compiler=NONE”来解决问题 问题是

回答 0 投票 0

Bison %nonassoc vs %token?

我读了很多资料,但还是不明白:%nonassoc 和 %token 之间有什么区别? 我理解 %left 和 %right 之间的区别,但对我来说前两个听起来是一样的......

回答 2 投票 0

llvmlite 中的链接 C

我正在用 Python 编写编译器,使用 llvmlite 生成中间 LLVM IR。 Lexer 和 parser 已经完成,现在我正在做代码生成。编译器将是动态的和弱类型的,所以我...

回答 4 投票 0

C 中 AST 打印的故障

我正在使用 C 编写编译器,当我打印 AST 时,它会打印部分代码两次。 打印 AST 的代码: void show_tree(int indent, AST_Node* ptr){ 如果(指针== NULL){ 返回; ...

回答 0 投票 0

nim用什么c编译器来制作exe文件?

我应该在安装nim 后安装gcc 或其他c 编译器来将我的代码编译成可执行文件还是它包含?如果包含,它使用哪个 c 编译器? gcc、tcc、clang 等 别误会我...

回答 1 投票 0

如何从llvm IR获取数据依赖信息?

例如下面的代码 %div = sdiv i32 %add, %36 %38 = trunc i64 %indvars.iv.next18 到 i32 %mul11 = mul nsw i32 %div, %38 第一条和第三条指令可能是数据依赖,因为...

回答 1 投票 0

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