This is a scheme compiler for my study. It runs on macOS only.
$ gosh
gosh> (load "./compiler.scm")
gosh> (x86
(cg-top
(code-generation-form
(immediate-literal-form
(assignmentless-form
(analyzed-form
(beta-reduce
(cps-form
(core-form
(local-form
(macroless-form
(append-library
'(letrec ((fib (lambda (n)
(if (= n 0)
n
(if (= n 1)
n
(+ (fib (- n 1)) (fib (- n 2))))))))
(fib 35))))))))))))))
$ ./a.out
9227465
$ ./run samples/tinyrenderer.scm
$ open output.tga
$ ./runtests
- Summer Scheme Workshop; Compiling Scheme, https://www.cs.indiana.edu/eip/compile/
- Ur-Scheme, https://www.canonical.org/~kragen/sw/urscheme/
- An Incremental Approach to Compiler Construction, https://schemeworkshop.org/2006/11-ghuloum.pdf
- The 90 Minute Scheme to C compiler, https://churchturing.org/y/90-min-scc.pdf
- scheme -> LLVM, https://web.archive.org/web/20100121052131/https://www.ida.liu.se/~tobnu/scheme2llvm
- LYSP — 50 Years of Symbolic Processing, https://piumarta.com/software/lysp/
- 非決定的計算オペレータ amb の並列化, https://www.principia-m.com/ts/0127/index-jp.html
- Tiny Renderer or how OpenGL works: software rendering in 500 lines of code, https://github.com/ssloy/tinyrenderer