使用LLVM IR实现动态打字Lanugage

Ran*_*aba 10 compiler-construction compilation llvm dynamic-typing llvm-ir

我正在尝试使用动态类型实现玩具语言,即变量没有类型,只有值,并且每个变量在使用之前都需要声明.例如,代码可能看起来像var x; x = 3; x = 'a';.此外,我想将这种玩具语言编译为本机代码,而不是在某些虚拟机中运行它.

目前,我已经生成了一个AST,我将使用LLVM C++ API将AST编译为LLVM IR.问题是,我应该生成什么样的IR

  1. 变量声明(带或不带初始值,如var x;var y = 3.4;
  2. 可变访问(如ain c = a + 1)