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 条
  • [41] Proving and disproving termination of higher-order functions
    Giesl, J
    Thiemann, R
    Schneider-Kamp, P
    FRONTIERS OF COMBINING SYSTEMS, PROCEEDINGS, 2005, 3717 : 216 - 231
  • [42] Reachability Types: Tracking Aliasing and Separation in Higher-Order Functional Programs
    Bao, Yuyan
    Wei, Guannan
    Bracevac, Oliver
    Jiang, Yuxuan
    He, Qiyang
    Rompf, Tiark
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2021, 5 (OOPSLA):
  • [43] Executing and verifying higher-order functional-imperative programs in Maude
    Rusu, Vlad
    Arusoaie, Andrei
    JOURNAL OF LOGICAL AND ALGEBRAIC METHODS IN PROGRAMMING, 2017, 93 : 68 - 91
  • [44] 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
  • [45] Conjunctive type systems and abstract interpretation of higher-order functional programs
    Jensen, TP
    JOURNAL OF LOGIC AND COMPUTATION, 1995, 5 (04) : 397 - 421
  • [46] 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
  • [47] ON THE HIGHER-ORDER EDGE TOUGHNESS OF A GRAPH
    CHEN, CC
    KOH, KM
    PENG, YH
    DISCRETE MATHEMATICS, 1993, 111 (1-3) : 113 - 123
  • [48] A Higher-Order Calculus for Graph Transformation
    Department of Computer Science, King's College, Strand, London WC2R 2LS, United Kingdom
    不详
    Electron. Notes Theor. Comput. Sci., 2007, 1 SPEC. ISS. (45-58):
  • [49] Local Higher-Order Graph Clustering
    Yin, Hao
    Benson, Austin R.
    Leskovec, Jure
    Gleich, David F.
    KDD'17: PROCEEDINGS OF THE 23RD ACM SIGKDD INTERNATIONAL CONFERENCE ON KNOWLEDGE DISCOVERY AND DATA MINING, 2017, : 555 - 564
  • [50] Relational semantics for higher-order programs
    Aboul-Hosn, Kamal
    Kozen, Dexter
    MATHEMATICS OF PROGRAM CONSTRUCTION, 2006, 4014 : 29 - 48