搜集用 LLVM 创造动态语言的例子

1

很想能自己造一门完整的语言, 一直关注这些东西, 现在还是出在收集阶段.
思路是将不写类型声明的代码解析跟推断, 生成 LLVM IR, 然后交给 LLVM 处理.
如果你看到其他可以作为教程的例子, 欢迎评论在下边 :)


Python

Let's Write an LLVM Specializer for Python!

http://dev.stephendiehl.com/numpile/

Kaleidoscope

Implementing a JIT Compiled Language with Haskell and LLVM

http://www.stephendiehl.com/llvm/

crisp-compiler

A compiler for Crisp (Lisp/Scheme-inspired language) in Haskell, with an LLVM backend

https://github.com/talw/crisp-compiler

taylor

Swift programming language compiler written in Haskell.

https://github.com/penberg/taylor

Brainfuck

Building a Brainfuck compiler with LLVM

https://www.jeremyroman.com/2012/12/11/building-a-brainfuck-compiler-with-llvm/

simple C

My First LLVM Compiler

http://www.wilfred.me.uk/blog/2015/02/21/my-first-llvm-compiler/

Clasp

Clasp is a Common Lisp implementation that interoperates with C++ and uses LLVM for just-in-time (JIT) compilation to native code

https://github.com/drmeister/clasp

Hue

Hue — a functional programming language for fun & play

http://rsms.me/2012/05/14/hue.html

kaleidoscope.coffee

Node.js Bindings for the LLVM compiler infrastructure

https://github.com/guangwong/node-llvm-x/blob/master/examples/kaleidoscope.coffee

corvus

A statically-typed, low-level dialect of Lisp that targets LLVM.

https://github.com/eudoxia0/corvus

rhine-ml

Rhine is a Clojure-inspired Lisp on LLVM JIT featuring variable-length untyped arrays, first-class functions, closures, and macros.

https://github.com/artagnon/rhine-ml

llvm-clojure-bindings

LLVM Clojure Bindings and Toy Language.

https://github.com/jasonjckn/llvm-clojure-bindings


如果觉得我的文章对你有用,请随意赞赏

你可能感兴趣的

spacewander · 2015-04-01

还有Julia

Julia is a high-level, high-performance dynamic programming language for technical computing

http://julialang.org/

Julia里面可以直接调用C的函数哦

回复

题叶 作者 · 2015-04-01

Julia 很赞, 但不是玩具语言, 借鉴 Julia 实现难度不会低啊.

回复

载入中...