标签[compiler-construction]

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

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

LL(1)消除模棱两可的ε-导数

我有一个要转换为LL(1)的语法: 我消除了左递归,排除了模棱两可的前缀,得到了: 但是后来,我意识到最后一条规则中存在“第一跟进”冲突,我无法删除。 请帮忙!
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

与LR的Shift-reduce和reduce-reduce冲突

这是语法: 我找不到与LR的shift-reduce和reduce-reduce冲突,有人可以帮我吗?
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

1 2 3 4 5 6 7 8 9 10 下一页