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 条
  • [1] Termination Analysis and Call Graph Construction for Higher-Order Functional Programs
    Sereni, Damien
    ICFP'07 PROCEEDINGS OF THE 2007 ACM SIGPLAN INTERNATIONAL CONFERENCE ON FUNCTIONAL PROGRAMMING, 2007, : 71 - 83
  • [2] Termination analysis of higher-order functional programs
    Sereni, D
    Jones, ND
    PROGRAMMING LANGUAGES AND SYSTEMS, PROCEEDINGS, 2005, 3780 : 281 - 297
  • [3] Automatic Termination Verification for Higher-Order Functional Programs
    Kuwahara, Takuya
    Terauchi, Tachio
    Unno, Hiroshi
    Kobayashi, Naoki
    PROGRAMMING LANGUAGES AND SYSTEMS, 2014, 8410 : 392 - 411
  • [4] Automatically Disproving Fair Termination of Higher-Order Functional Programs
    Watanabe, Keiichi
    Sato, Ryosuke
    Tsukada, Takeshi
    Kobayashi, Naoki
    ACM SIGPLAN NOTICES, 2016, 51 (09) : 243 - 255
  • [5] Predicate Abstraction and CEGAR for Disproving Termination of Higher-Order Functional Programs
    Kuwahara, Takuya
    Sato, Ryosuke
    Unno, Hiroshi
    Kobayashi, Naoki
    COMPUTER AIDED VERIFICATION, CAV 2015, PT II, 2015, 9207 : 287 - 303
  • [6] Flow analysis of lazy higher-order functional programs
    Jones, Neil D.
    Andersen, Nils
    THEORETICAL COMPUTER SCIENCE, 2007, 375 (1-3) : 120 - 136
  • [7] On the Termination Problem for Probabilistic Higher-Order Recursive Programs
    Kobayashi, Naoki
    Dal Lago, Ugo
    Grellois, Charles
    2019 34TH ANNUAL ACM/IEEE SYMPOSIUM ON LOGIC IN COMPUTER SCIENCE (LICS), 2019,
  • [8] ON THE TERMINATION PROBLEM FOR PROBABILISTIC HIGHER-ORDER RECURSIVE PROGRAMS
    Kobayashi, Naoki
    Dal Lago, Ugo
    Grellois, Charles
    LOGICAL METHODS IN COMPUTER SCIENCE, 2020, 16 (04) : 1 - 57
  • [9] Modular Verification of Higher-Order Functional Programs
    Sato, Ryosuke
    Kobayashi, Naoki
    PROGRAMMING LANGUAGES AND SYSTEMS (ESOP 2017): 26TH EUROPEAN SYMPOSIUM ON PROGRAMMING, 2017, 10201 : 831 - 854
  • [10] A Temporal Logic for Higher-Order Functional Programs
    Okuyama, Yuya
    Tsukada, Takeshi
    Kobayashi, Naoki
    STATIC ANALYSIS (SAS 2019), 2019, 11822 : 437 - 458