Typing termination in a higher-order concurrent imperative language

被引:10
|
作者
Boudol, Gerard [1 ]
机构
[1] INRIA Sophia Antipolis, F-06902 Sophia Antipolis, France
关键词
RECURSIVE TYPES; INFORMATION-FLOW; SEMANTICS; PROGRAMS; STORAGE;
D O I
10.1016/j.ic.2009.06.007
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
We propose means to predict termination in a higher-order imperative and concurrent language a la ML. We follow and adapt the classical method for proving termination in typed formalisms, namely the realizability technique. There is a specific difficulty with higher-order state, which is that one cannot define a realizability interpretation simply by induction on types, because applying a function may have side-effects at types not smaller than the type of the function. Moreover, such higher-order side-effects may give rise to computations that diverge without resorting to explicit recursion. We overcome these difficulties by introducing a type and effect system for our language that enforces a stratification of the memory. The stratification prevents the circularities in the memory that may cause divergence, and allows us to define a realizability interpretation of the types and effects, which we then use to establish that typable sequential programs in our system are guaranteed to terminate, unless they use explicit recursion in a divergent way. We actually prove a more general fairness property, that is, any typable thread yields the scheduler after some finite computation. Our realizability interpretation also copes with dynamic thread creation. (C) 2010 Elsevier Inc. All rights reserved.
引用
收藏
页码:716 / 736
页数:21
相关论文
共 50 条
  • [21] Higher-order termination: From Kruskal to computability
    Blanqui, Frederic
    Jouannaud, Jean-Pierre
    Rubio, Albert
    LOGIC FOR PROGRAMMING, ARTIFICIAL INTELLIGENCE, AND REASONING, PROCEEDINGS, 2006, 4246 : 1 - 14
  • [22] Termination analysis of higher-order functional programs
    Sereni, D
    Jones, ND
    PROGRAMMING LANGUAGES AND SYSTEMS, PROCEEDINGS, 2005, 3780 : 281 - 297
  • [23] Proving and disproving termination of higher-order functions
    Giesl, J
    Thiemann, R
    Schneider-Kamp, P
    FRONTIERS OF COMBINING SYSTEMS, PROCEEDINGS, 2005, 3717 : 216 - 231
  • [24] Higher-order rewriting: Framework, confluence and termination
    Jouannaud, Jean-Pierre
    Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2005, 3838 LNCS : 224 - 250
  • [25] Termination analysis for higher-order attribute grammars
    Krishnan, Lijesh
    Van Wyk, Eric
    Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2013, 7745 LNCS : 44 - 63
  • [26] Higher-order rewriting: Framework, confluence and termination
    Jouannaud, JP
    PROCESSES, TERMS AND CYCLES: STEPS ON THE ROAD TO INFINITY: ESSAYS DEDICATED TO JAN WILLEM KLOP ON THE OCCASION OF HIS 60TH BIRTHDAY, 2005, 3838 : 224 - 250
  • [27] Effective Interactive Proofs for Higher-Order Imperative Programs
    Chlipala, Adam
    Malecha, Gregory
    Morrisett, Greg
    Shinnar, Avraham
    Wisnesky, Ryan
    ACM SIGPLAN NOTICES, 2009, 44 (8-9) : 79 - 90
  • [28] Effective Interactive Proofs for Higher-Order Imperative Programs
    Chlipala, Adam
    Malecha, Gregory
    Morrisett, Greg
    Shinnar, Avraham
    Wisnesky, Ryan
    ICFP'09: PROCEEDINGS OF THE 2009 ACM SIGPLAN INTERNATIONAL CONFERENCE ON FUNCTIONAL PROGRAMMING, 2009, : 79 - 90
  • [29] A logical analysis of aliasing in imperative higher-order functions
    Berger, Martin
    Honda, Kohei
    Yoshida, Nobuko
    JOURNAL OF FUNCTIONAL PROGRAMMING, 2007, 17 : 473 - 546
  • [30] A logical analysis of aliasing in imperative higher-order functions
    Berger, M
    Honda, K
    Yoshida, N
    ACM SIGPLAN NOTICES, 2005, 40 (09) : 280 - 293