二元运算的IR树表示
我有一个简单的操作,如下所示: k + 1 它的 IR 树表示是什么? 到目前为止,我想出了: BINOP(+, MEM(NAME(k)), CONST(1)) 但我不确定我是否需要 NAM…
“类型和尺寸说明符” - 术语
请看以下片段: 1 #include 2 #include 3 int foo(char [6]); 4 5 int main(void) { 6 char* bar="hello"; 7 return foo(bar); 8 } 9 10 int foo(char…
我正在尝试使用 System.Reflection.Emit 编写 .NET 编译器,如何进行类型解析?
我有一个从引用的 dll 解析类型的策略。我一直在尝试解析正在编译的程序集中定义的类型。我使用的是 System.Reflection.Emit api,没有第三方库。 例…
解析“越位” (基于缩进的)语言
越位语言是指 ...该语言中声明(块)的范围由其缩进表示。 此类语言的示例包括 Python、Boo、Nemerle、YAML 等。 所以我的问题是:我如何实际解析这些…
这个“算法”会吗?对于可为空和第一个工作(在解析器中)?
有趣地完成这个工作: http://www.diku.dk/hjemmesider/ansatte /torbenm/Basics/ 可空计算示例,并且首先使用定点计算。 (参见第3.8节) 我正在Sche…
我在哪里可以找到好的 LR(1) 和 LALR(1) 状态生成示例或阅读材料?
我正在使用 Kenneth Louden 的《编译器构建》一书,但它缺乏示例,并且说明其运行方式的规则确实很难遵循。我不知道如何去 LR(1) 状态。另外,不知道…
其结果仅取决于其参数的函数的名称是什么?
我正在编写一个玩具编译器,如果结果仅取决于参数的值,它可以优化函数调用。因此,像 xor 和 concatenate 这样的函数仅依赖于它们的输入,使用相同的…