Productive coprogramming with guarded recursion
Productive coprogramming with guarded recursion
复制标题
具有保护递归的高效协同编程
DOI:
10.1145/2544174.2500597
复制
发表时间:
2013
影响因子:
--
通讯作者:
Atkey R
中科院分区:
文献类型:
--
作者:
Atkey R
Total functional programming offers the beguiling vision that, just by virtue of the compiler accepting a program, we are guaranteed that it will always terminate. In the case of programs that are not intended to terminate, e.g., servers, we are guaranteed that programs will always beproductive. Productivity means that, even if a program generates an infinite amount of data, each piece will be generated in finite time. The theoretical underpinning for productive programming with infinite output is provided by the category theoretic notion of final coalgebras. Hence, we speak ofcoprogramming with non-well-foundedcodata, as a dual to programming with well-founded data like finite lists and trees.Systems that offer facilities for productive coprogramming, such as the proof assistants Coq and Agda, currently do so through syntactic guardedness checkers. Syntactic guardedness checkers ensure that all self-recursive calls are guarded by a use of a constructor. Such a check ensures productivity. Unfortunately, these syntactic checks are not compositional, and severely complicate coprogramming.Guarded recursion, originally due to Nakano, is tantalising as a basis for a flexible and compositional type-based approach to coprogramming. However, as we show, by itself, guarded recursion is not suitable for coprogramming due to the fact that there is no way to make finite observations on pieces of infinite data. In this paper, we introduce the concept ofclock variablesthat index Nakano's guarded recursion. Clock variables allow us to "close over" the generation of infinite data, and to make finite observations, something that is not possible with guarded recursion alone.
登录
查看更多内容
DOI:
--
发表时间:
1993
期刊:
Mathematical Foundations of Programming Semantics
影响因子:
--
作者:
A. Pitts
通讯作者:
A. Pitts
影响因子:
0.6
作者:
Ghani N
通讯作者:
Ghani N
影响因子:
0.6
作者:
Capretta, Venanzio
通讯作者:
Capretta, Venanzio
影响因子:
0.8
作者:
R. Loader
通讯作者:
R. Loader
DOI:
--
发表时间:
2009
期刊:
影响因子:
--
作者:
Nils Anders Danielsson;Thorsten Altenkirch
通讯作者:
Thorsten Altenkirch