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 条
  • [31] Using intersection types for cost-analysis of higher-order polymorphic functional programs
    Simoes, Hugo R.
    Hammond, Kevin
    Florido, Mario
    Vasconcelos, Pedro
    TYPES FOR PROOFS AND PROGRAMS, 2007, 4502 : 221 - +
  • [32] Analysing the Complexity of Functional Programs: Higher-Order Meets First-Order
    Avanzini, Martin
    Dal Lago, Ugo
    Moser, Georg
    PROCEEDINGS OF THE 20TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON FUNCTIONAL PROGRAMMING (ICFP'15), 2015, : 152 - 164
  • [33] Analysing the Complexity of Functional Programs: Higher-Order Meets First-Order
    Avanzini, Martin
    Dal Lago, Ugo
    Moser, Georg
    ACM SIGPLAN NOTICES, 2015, 50 (09) : 152 - 164
  • [34] Logic-flow analysis of higher-order programs
    Might, Matthew
    ACM SIGPLAN NOTICES, 2007, 42 (01) : 185 - 198
  • [35] Logic-Flow Analysis of Higher-Order Programs
    Might, Matthew
    CONFERENCE RECORD OF POPL 2007: THE 34TH ACM SIGPLAN SIGACT SYMPOSIUM ON PRINCIPLES OF PROGAMMING LANGUAGES, 2007, : 185 - 198
  • [36] Termination and confluence of higher-order rewrite systems
    Blanqui, F
    REWRITING TECHNIQUES AND APPLICATIONS, PROCEEDINGS, 2000, 1833 : 47 - 61
  • [37] Universal algebra for termination of higher-order rewriting
    Hamana, M
    TERM REWRITING AND APPLICATIONS, PROCEEDINGS, 2005, 3467 : 135 - 149
  • [38] 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
  • [39] A Higher-Order Abstract Syntax Approach to Verified Transformations on Functional Programs
    Wang, Yuting
    Nadathur, Gopalan
    PROGRAMMING LANGUAGES AND SYSTEMS (ESOP 2016), 2016, 9632 : 752 - 779
  • [40] Inferring cost equations for recursive, polymorphic and higher-order functional programs
    Vasconcelos, PB
    Hammond, K
    IMPLEMENTATION OF FUNCTIONAL LANGUAGES, 2004, 3145 : 86 - 101