标签[compiler-construction]
标记“编译器构造”应应用于有关编译器编程的问题或有关编译器详细内部工作的问题。 请勿使用有关*使用*特定编译器或编译错误的问题。
9,534个问题
0
票
0回复
14
如何使用可选的前缀LL(2)制作语法?
考虑这个语法
因此, lvalue是expr ,但expr可能不是lvalue 。 使用此输入var[10] ,语法将需要4个超前查询(ID,openbrack,立即数,closebrack),然
0
票
1回复
30
我如何看到LR(0)个项目自动机中存在冲突?
关于LR(0)我有些不了解。 我想弄清楚什么时候语法不是LR(0) 。 据我了解,我建立了LR(0)项目自动机。 然后,我需要寻找冲突。 但是我不认为我完全理解LR(0)项目自动机中的两个项目之间是否
3
票
3回复
103
为什么简单的程序会占用这么多的存储空间?
我用C创建了一个简单的hello world程序,如下所示:
之后,我在Mac上使用gcc对其进行了编译,并使用xxd转储了它。 每行16个字节(8个字),编译后的程序共3073行或49424字节
0
票
0回复
09
当存在闭包/词法作用域时,如何确定何时将激活记录从堆栈中弹出?
我正在使用一种您可能知道的语言。 我目前正在将函数编译为较低级别的字节码,并且想知道如何/何时将函数从调用栈中弹出。
所以说我们有这个:
到时候我们称之为let x = a()身体a仍然存在,只
0
票
0回复
09
0
票
3回复
81
如果语句从字面上看如何工作?
我想知道if statement或conditional statements在执行时如何在后台工作。
考虑这样的示例:
if (10 > 6) {
// Some code
}
0
票
1回复
33
如何在编译器设计中处理正则表达式中的“除外”?
我正在进行编译器设计,无法弄清楚如何处理RE中的语句。
例如:文字的RE仅具有3位二进制数,但(011,001,010)除外
我知道3位二进制数的RE将是:
(0 | 1)(0 | 1)(0
0
票
1回复
30
无法排除以下正则表达式
我最近一直在进行编译器设计,发现正则表达式非常棘手。 因此,我正在制作一个需要词法规范的词法分析器。
我无法弄清楚标识符的RE(以下定义的规则):
最多4个字符
至少1个字母
我已经尝试过
1
票
1回复
22
计算的goto的代码生成器是什么?
计算的goto示例:
如果N等于1,则转到10。如果N等于2,则转到20。如果N等于3,则转到30。如果N等于4,则转到40。
最终编译状态下goto的代码生成器是什么?
0
票
1回复
29
机器语言支持还是不间接跳转时的代码生成器
在fortran的此示例中,其中k和a是整数变量,分别是100、102和105个有效代码标签,根据变量的值,命令goto将代码流移至100、102和105中的一个一种。 对于计算的goto,中间代
0
票
1回复
30
AST设计-增量运算符是语句还是表达式?
我正在尝试在解析器中实现增量运算符。 但是,对于是否应该将增量运算符视为语句或表达式,我感到困惑。 将其实现为语句是有意义的,因为可以将其用作独立的语句,例如:
但是,它也可以在表达式中使用,例如
-3
票
0回复
17
0
票
2回复
32
如何解决使用自定义编程语言调用函数的难题?
我一直在思考如何解决自定义编程语言中的函数调用问题。 无限的递归调用同一函数有一个奇怪的事情,我很难超越这个函数。
我将这样说明。 假设您正在调用诸如doFoo(1, 2)类的函数,现在必须实现此功
0
票
1回复
23
1
票
0回复
58
将外部声明与定义链接
我有以下两个文件:
然后,我将其编译成两个目标文件:
所以现在我有两个目标文件tt.o和to 。 当我执行以下操作以生成可执行文件时:
链接器如何解析x的定义? 它是否基本上进行了“两次
2
票
2回复
121
编译器如何区分名称相同的项目
在以下示例中:
如果不进行优化,则生成的程序集将类似于以下内容(来自Compiler Explorer):
如果存在重复命名的变量,编译器如何知道变量在哪里? 也就是说,在内部作用域中,内存地
-2
票
0回复
27
如何为表达式制作词法和语法分析器
我想为基本表达式(代码)制作一个词法和语法分析器(使用python),我很困惑,如果你们愿意的话。
如果输入为: func1(x, 9, func2(h2, "yes"))则输出应如下所示:
如
1
票
2回复
66
用ebnf语法描述c
这是EBNF中描述C的语法:
我想通过以下限制修改以上内容:
CASE标签只能用于直接包含在命令开关中的命令,而不能用于其嵌套的IF或WHILE命令中。
BREAK命令只能出现在WH
1
票
1回复
73
如何避免符号表查找中的歧义?
我有一个基本的符号表,用于将标识符映射到符号,存储VariableSymbols,MethodSymbols,BuiltInTypeSymbols等。对于我的简单解释器来说,这很好用。 但是,现在我想
0
票
0回复
28
侦听器和访客在antlr4应用程序中的用法
我正在使用侦听器功能来实现python AST,该AST解析语法规则并将所有信息存储在相关类中。 为此,我正在使用antlr4应用程序,如下所示:
成功实现具有Enter和Exit接口功能的Mod