标签: compiler-construction compilation llvm llvm-ir dynamic-typing
我正在尝试使用动态类型实现玩具语言,即变量没有类型,只有值,并且每个变量在使用之前都需要声明。例如,代码可能看起来像var x; x = 3; x = 'a';。此外,我想将这种玩具语言编译为本机代码,而不是在某个虚拟机中运行它。
var x; x = 3; x = 'a';
目前,我已经生成了一个AST,我将使用LLVM C ++ API将AST编译为LLVM IR。问题是,我应该为
var x;
var y = 3.4;
a
c = a + 1