Termination analysis and call graph construction for higher-order functional programs

被引:2
|
作者
Sereni, Damien [1 ]
机构
[1] Univ Oxford, Oxford OX1 2JD, England
基金
英国工程与自然科学研究理事会;
关键词
verification; theory; termination; functional programs; semantics; program analysis;
D O I
10.1145/1291220.1291165
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The analysis and verification of higher-order programs raises the issue of control-flow analysis for higher-order languages. The problem of constructing an accurate call graph for a higher-order program has been the topic of extensive research, and numerous methods for flow analysis, varying in complexity and precision, have been suggested. While termination analysis of higher-order programs has been studied, there has been little examination of the impact of call graph construction on the precision of termination checking. We examine the effect of various control- flow analysis techniques on a termination analysis for higher-order functional programs. We present a termination checking framework and instantiate this with three call graph constructions varying in precision and complexity, and illustrate by example the impact of the choice of call graph construction. Our second aim is to use the resulting analyses to shed light on the relationship between control-flow analyses. We prove precise inclusions between the classes of programs recognised as terminating by the same termination criterion over different call graph analyses, giving one of the first characterisations of expressive power of flow analyses for higher-order programs.
引用
收藏
页码:71 / 83
页数:13
相关论文
共 50 条
  • [21] Introspective Pushdown Analysis of Higher-Order Programs
    Earl, Christopher
    Sergey, Ilya
    Might, Matthew
    Van Horn, David
    ACM SIGPLAN NOTICES, 2012, 47 (09) : 177 - 188
  • [22] Modular Heap Analysis for Higher-Order Programs
    Madhavan, Ravichandhran
    Ramalingam, G.
    Vaswani, Kapil
    STATIC ANALYSIS, SAS 2012, 2012, 7460 : 370 - 387
  • [23] Static Analysis of Concurrent Higher-Order Programs
    Stievenart, Quentin
    Nicolay, Jens
    De Meuter, Wolfgang
    De Roover, Coen
    2015 IEEE/ACM 37TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, VOL 2, 2015, : 821 - 822
  • [24] Termination in higher-order concurrent calculi
    Demangeon, Romain
    Hirschkoff, Daniel
    Sangiorgi, Davide
    JOURNAL OF LOGIC AND ALGEBRAIC PROGRAMMING, 2010, 79 (07): : 550 - 577
  • [25] Termination in Higher-Order Concurrent Calculi
    Demangeon, Romain
    Hirschkoff, Daniel
    Sangiorgi, Davide
    FUNDAMENTALS OF SOFTWARE ENGINEERING, 2010, 5961 : 81 - +
  • [26] A Transformational Approach to Polyvariant BTA of Higher-Order Functional Programs
    Arroyo, Gustavo
    Guadalupe Ramos, J.
    Tamarit, Salvador
    Vidal, German
    LOGIC-BASED PROGRAM SYNTHESIS AND TRANSFORMATION, 2009, 5438 : 40 - +
  • [27] Generating Reversible Circuits from Higher-Order Functional Programs
    Valiron, Benoit
    REVERSIBLE COMPUTATION, RC 2016, 2016, 9720 : 289 - 306
  • [28] Automating Relatively Complete Verification of Higher-Order Functional Programs
    Unno, Hiroshi
    Terauchi, Tachio
    Kobayashi, Naoki
    ACM SIGPLAN NOTICES, 2013, 48 (01) : 75 - 86
  • [29] Using Circular Programs for Higher-Order Syntax Functional pearl
    Axelsson, Emil
    Claessen, Koen
    ACM SIGPLAN NOTICES, 2013, 48 (09) : 257 - 262
  • [30] Types and Higher-Order Recursion Schemes for Verification of Higher-Order Programs
    Kobayashi, Naoki
    ACM SIGPLAN NOTICES, 2009, 44 (01) : 416 - 428