文件名称:malc:Mal(使用Lisp)编译器
文件大小:67KB
文件格式:ZIP
更新时间:2024-05-27 17:39:39
LLVM
马尔科 Mal(使用Lisp)编译器 概述 是由Joju Martin发明的Clojure启发式Lisp语言,是一种学习工具。 它具有多种编程语言的解释器实现,包括用Mal本身编写的自托管解释器。 malc是用Mal本身编写的Mal编译器。 它将Mal程序编译为 ,然后使用LLVM优化器,汇编器和链接器生成二进制可执行文件。 该项目的主要目标是我学习Lisp,编译和LLVM的一种方式。 它不适用于任何严重的应用程序或系统。 使用现成的Docker映像中的malc 公用Docker映像dubek/malc在/ opt / malc(也在$PATH )中安装了malc。 这是一个编译和运行一个小的Mal程序的示例: $ docker run -it --rm dubek/malc root@c6cf6e2ec3eb:/# cd tmp root@c6cf6e2ec3eb:/tmp# e
【文件预览】:
malc-master
----macros-eval.mal(4KB)
----.dockerignore(38B)
----runtime-native-funcs.mal(18KB)
----runtime-header.ll(24KB)
----mal-interpreter()
--------.gitattributes(26B)
--------LICENSE.txt(17KB)
--------ruby()
--------README.md(533B)
----.gitattributes(70B)
----bootstrap.sh(716B)
----LICENSE.txt(17KB)
----runtime-core-funcs.mal(2KB)
----runtime-footer.ll(319B)
----Dockerfile(297B)
----runperf.sh(400B)
----runtests.sh(1KB)
----doc()
--------internals.md(5KB)
--------TODO.md(1013B)
----reader.mal(4KB)
----macros-env.mal(862B)
----perf()
--------LICENSE.txt(17KB)
--------perf2.mal(325B)
--------perf1.mal(345B)
--------README.md(489B)
--------perf.mal(787B)
--------perf3.mal(797B)
--------core.mal(2KB)
----macros-core.mal(1KB)
----.travis.yml(237B)
----malc(2KB)
----README.md(10KB)
----utils.mal(2KB)
----run-mal-tests.sh(925B)
----tokenizer.mal(2KB)
----tests()
--------time-ms.mal(323B)
--------fn.mal(1KB)
--------tco.mal(390B)
--------strings.mal(1KB)
--------let.mal(836B)
--------globals.mal(222B)
--------if.mal(254B)
--------equal.mal(2KB)
--------seq.mal(330B)
--------defmacro.mal(327B)
--------cons.mal(297B)
--------lists_vectors.mal(1KB)
--------meta.mal(175B)
--------cond.mal(163B)
--------integer_compare.mal(297B)
--------apply_map.mal(838B)
--------read-string.mal(230B)
--------slurp_test.txt(66B)
--------hash-maps.mal(1KB)
--------integer_arithmetic.mal(284B)
--------conj.mal(492B)
--------os-exit.mal(140B)
--------atoms.mal(1019B)
--------def.mal(167B)
--------constants.mal(334B)
--------slurp.mal(287B)
--------try_throw_catch.mal(2KB)
--------predicates.mal(1KB)
--------do.mal(184B)
----.gitignore(44B)
----mal-to-llvm.mal(22KB)