nanohs:自托管lambda演算编译器

时间:2024-06-06 13:56:01
【文件属性】:

文件名称:nanohs:自托管lambda演算编译器

文件大小:199KB

文件格式:ZIP

更新时间:2024-06-06 13:56:01

Haskell

NanoHaskell:一个自托管的lambda演算编译器 该实验的目标是用最少的Haskell样式代码创建一个自托管的lambda演算编译器(和解释器)。 语言是(严格)lambda演算+数据构造函数+简单模式匹配+递归let + IO效果。 选择语法可以使程序同时也可以是有效的Haskell程序(这使开发更加容易)。 Haskell功能(如类型签名,数据类型声明和导入)将被解析(很好,可以识别...),但随后将被忽略。 当前状态 它可以通过GHC进行编译,无论是否进行优化 它可以自托管,无论是否进行优化 它需要一个大的C堆栈(32+ Mb)+ GCC优化(因为缺少尾调用消除功能) 源代码:大约2000行“基本”行+ 560行类型的注释; C运行时约为650行(包括一些调试功能) 口译员目前无法100%正确地工作 用法 $ nanohs -c input.hs output.c


【文件预览】:
nanohs-master
----Dependency.hs(8KB)
----Syntax.hs(9KB)
----rts.c(29KB)
----CodeGen.hs(27KB)
----Base.hs(19KB)
----DataCon.hs(4KB)
----.ghci(155B)
----Containers.hs(8KB)
----Nano.hs(5KB)
----LICENSE(1KB)
----Parser.hs(17KB)
----bootstrap.sh(1KB)
----PrimGHC.hs(6KB)
----_main_old.hs(5KB)
----ScopeCheck.hs(8KB)
----PrimOps.hs(4KB)
----examples()
--------test5.nano(957B)
--------test.nano(874B)
--------church.nano(1KB)
----Core.hs(9KB)
----.gitignore(150B)
----Inliner.hs(9KB)
----nanohs.cabal(2KB)
----Eval.hs(17KB)
----main.hs(61B)
----README.md(7KB)
----Types.hs(9KB)
----Closure.hs(13KB)
----topsort()
--------TopSortSCC.hs(6KB)
----slides()
--------nanohs_slides.tex(9KB)
--------nanohs_slides.pdf(123KB)
--------.gitignore(42B)
----asm_shit()
--------rts.asm(6KB)
--------sys_macos.asm(1KB)
----sloc_count.sh(2KB)

网友评论