贡献者: 待更新
本文是关于 Julia 解释器的原理:它使用了哪些技术,可以使得它作为一门动态语言能达到编译语言的性能。
LLVM.jl
包可以把 julia 代码直接生成 LLVM IR,或者把 Julia IR 转为 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)
的作用是提供自变量的类型。
 
 
 
 
 
 
 
 
 
 
 
友情链接: 超理论坛 | ©小时科技 保留一切权利