Julia 开发笔记

                     

贡献者: addis

  • 本文处于草稿阶段。

   本文是关于 Julia 解释器的原理:它使用了哪些技术,可以使得它作为一门动态语言能达到编译语言的性能。

1. 把 Julia 代码编译成 LLVM IR 代码

   首先安装 using Pkg; Pkg.add("LLVM")

using LLVM
function add(x::Int, y::Int)::Int
    return x + y
end
llvm_ir = @code_llvm add(1, 2) # 生成 LLVM IR
生成的代码如下
;  @ REPL[3]:1 within `add'
define i64 @julia_add_652(i64 signext %0, i64 signext %1) {
top:
;  @ REPL[3]:2 within `add'
; ┌ @ int.jl:87 within `+'
   %2 = add i64 %1, %0
; └
  ret i64 %2
}
所以上面参数 (1,2) 的作用是提供自变量的类型。

                     

© 小时科技 保留一切权利