文件名称:mlsub:原型类型推理引擎
文件大小:46KB
文件格式:ZIP
更新时间:2024-05-24 04:41:19
OCaml
这是具有子类型和多态性的类ML语言的原型类型推断器。 它是用OCaml编写的,而构建它需要Menhir。 它接受包含用OCaml的非常有限的子集(仅lambda,unit和let )编写的程序的行,并且如果喜欢它们,则吐出一些调试输出及其主要类型,如果不喜欢,则发出不礼貌的异常。 一些示例及其推断的类型: 标识函数的类型为v0 -> v0 。 推断类型中的所有*变量都被普遍地量化,就像这些部分中的习惯一样。 fun x -> x (v0 -> v0) 推理者实际上会吐出两种类型:原始类型和简化类型。 第二个是第一个的简化但等效的渲染。 简化程序目前不是很好。 可以使用类型说明,并检查多态包含: (fun x -> x : a -> a) (v0 -> v0) 归属可能不如推断的类型普遍: (fun x -> x : unit -> unit) (unit -> unit)
【文件预览】:
mlsub-master
----typector.mli(3KB)
----typector.ml(21KB)
----index.html(2KB)
----source.ml(3KB)
----lexer.mll(2KB)
----types.ml(24KB)
----parser.mly(8KB)
----error.ml(4KB)
----symbol.ml(3KB)
----camlgen.ml(4KB)
----variance.ml(650B)
----location.ml(4KB)
----README.md(3KB)
----Makefile(427B)
----types.mli(1KB)
----intmap_test.ml(5KB)
----symbol.mli(694B)
----exp.ml(1KB)
----intmap.ml(16KB)
----webpage.ml(2KB)
----.gitignore(16B)
----typecheck.ml(32KB)
----main.ml(5KB)
----style.css(1KB)
----.merlin(9B)