Termination Analysis of Higher-Order Functional Programs
Termination Analysis of Higher-Order Functional Programs
复制标题
高阶函数程序的终止分析
DOI:
--
复制
发表时间:
2005
期刊:
影响因子:
--
通讯作者:
N. Jones
中科院分区:
文献类型:
--
作者:
D. Sereni;N. Jones
Size-change termination (SCT) automatically identifies termination of first-order functional programs. The SCT principle: a program terminates if every infinite control flow sequence would cause an infinite descent in a well-founded data value (POPL 2001).
More recent work (RTA 2004) developed a termination analysis of the pure untyped λ-calculus using a similar approach, but an entirely different notion of size was needed to compare higher-order values. Again this is a powerful analysis, even proving termination of certain λ-expressions containing the fixpoint combinator Y. However the language analysed is tiny, not even containing constants.
These techniques are unified and extended significantly, to yield a termination analyser for higher-order, call-by-value programs as in ML’s purely functional core or similar functional languages. Our analyser has been proven correct, and implemented for a substantial subset of OCaml.