arf:微小的研究语言,用于研究如何使用递归函数调用对程序进行类型检查

时间:2021-05-11 06:36:42
【文件属性】:
文件名称:arf:微小的研究语言,用于研究如何使用递归函数调用对程序进行类型检查
文件大小:20KB
文件格式:ZIP
更新时间:2021-05-11 06:36:42
type-system OCaml 分配递归流(ARF) 这是一个很小的语言演算,旨在研究在执行全程序分析时如何有效地对递归函数进行类型检查。 对于全程序类型检查器(例如我为Python源代码编写的类型检查器)而言,这样的过程非常重要。 这项研究现已完成。 如果您对理论感兴趣,请继续阅读以获取详细信息。 另一方面,如果您只想尝试ARF类型检查器,请跳至“尝试ARF!”。 下面的部分。 抽象的 我有一种算法,可以在O(m·n)最坏的情况下完全键入基于递归分配的程序,其中: m是程序中功能的总数,并且 n是程序中最大的相互递归函数组中的函数数。 ARF语言 以下是一个(效率低下且人为设计的)Python程序,该程序测试指定的整数> = 0是偶数还是奇数: def main(args): k = int(args[0]) result = is_even(k) return result def
【文件预览】:
arf-master
----.gitignore(51B)
----README.md(13KB)
----src()
--------TypeChecker.ml(21KB)
--------_tags(185B)
--------Arf.ml(12KB)
--------Ast.ml(738B)
--------TypeCheckerTest.ml(20KB)
----samples()
--------infinite_loop_self.arf(60B)
--------infinite_loop_mutual.arf(129B)
--------call_identity_in_multiple_contexts.arf(345B)
--------return_literal.arf(40B)
--------recursion_mutual_with_nested_return.arf(144B)
--------return_union_type.arf(117B)
--------recursion_self.arf(180B)
--------call_identity.arf(101B)
--------recursion_mutual.arf(572B)
--------is_even.py(431B)
--------is_even.arf(572B)
--------return_arg.arf(26B)
----Makefile(901B)

网友评论