Abh*_*rma 1 compiler-construction llvm julia crystal-lang
会有多大的困难是一个通用的添加code-gen后端Julia中的静脉go和chez-scheme即没有LLVM.
LLVM是一种更好的方法吗 - 鉴于此rust并且crystal几乎完全是自托管的,他们可以利用LLVM发出二进制文件,甚至是交叉编译.
作为背景,我在code-gen这里专门询问了一个问题,以及各种LLVM前端的问题.在LLVM上实现自托管语言时面临的问题是什么?
朱莉娅确实有一种代码生成形式,它是类型化的AST.您可以@code_typed在任何函数调用前面看到键入的AST .从理论上讲,你可以使用它来发射任何IR,Julia选择LLVM IR是出于别处所述的原因.Transpiler.jl是一个包,用于输出来自Julia函数的OpenCL代码之类的东西.
您可以使用LLVM IR发出其他字节码.CUDANative.jl使用LLVM的.ptx后端直接从Julia函数发出CUDA内核.该@polly项目正在寻找做类似的事情,宏允许Julia自动加速GPU上的一些代码(我承认对此知之甚少,除了阅读提示它和后续的帖子.这被认为是用于LLVM的GSoC项目).