A flexible, (C)LP-based approach to the analysis of object-oriented programs

被引:31
|
作者
Mendez-Lojo, Mario [1 ]
Navas, Jorge [1 ]
Hermenegildo, Manuel V. [1 ]
机构
[1] Univ New Mexico, Albuquerque, NM 87131 USA
关键词
D O I
10.1007/978-3-540-78769-3_11
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Static analyses of object-oriented programs usually rely on intermediate representations that respect the original semantics while having a more uniform and basic syntax. Most of the work involving object-oriented languages and abstract interpretation usually omits the description of that language or just refers to the Control Flow Graph (CFG) it represents. However, this lack of formalization on one hand results in an absence of assurances regarding the correctness of the transformation and on the other it typically strongly couples the analysis to the source language. In this work we present a framework for analysis of object-oriented languages in which in a first phase we transform the input program into a representation based on Horn clauses. This facilitates on one hand proving the correctness of the transformation attending to a simple condition and on the other allows applying existing analyzers for (constraint) logic programming to automatically derive a safe approximation of the semantics of the original program. The approach is flexible in the sense that the first phase decouples the analyzer from most language-dependent features, and correct because the set of Horn clauses returned by the transformation phase safely approximates the standard semantics of the input program. The resulting analysis is also reasonably scalable due to the use of mature, modular (C)LP-based analyzers. This allows us to report good results for medium-sized programs.
引用
收藏
页码:154 / 168
页数:15
相关论文
共 50 条
  • [31] Exploiting Linearity in Sharing Analysis of Object-oriented Programs
    Amato, Gianluca
    Meo, Maria Chiara
    Scozzari, Francesca
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2016, 322 : 3 - 18
  • [32] CrocoPat: Efficient pattern analysis in object-oriented programs
    Beyer, D
    Lewerentz, C
    IWPC 2003: 11TH IEEE INTERNATIONAL WORKSHOP ON PROGRAM COMPREHENSION, 2003, : 294 - 295
  • [33] Pair-sharing analysis of object-oriented programs
    Secci, S
    Spoto, F
    STATIC ANALYSIS, PROCEEDINGS, 2005, 3672 : 320 - 335
  • [34] A prototype tool for flow analysis of object-oriented programs
    Gustafsson, J
    ISORC 2002: FIFTH IEEE INTERNATIONAL SYMPOSIUM ON OBJECT-ORIENTED REAL-TIME DISTRIBUTED COMPUTING, PROCEEDINGS, 2002, : 91 - 100
  • [35] Flow analysis of class relationships for object-oriented programs
    Chen, JL
    Wang, FJ
    JOURNAL OF INFORMATION SCIENCE AND ENGINEERING, 2000, 16 (04) : 619 - 647
  • [36] COMPILE-TIME ANALYSIS OF OBJECT-ORIENTED PROGRAMS
    VITEK, J
    HORSPOOL, RN
    UHL, JS
    LECTURE NOTES IN COMPUTER SCIENCE, 1992, 641 : 236 - 250
  • [37] Role-based exploration of object-oriented programs
    Demsky, B
    Rinard, M
    ICSE 2002: PROCEEDINGS OF THE 24TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 2002, : 313 - 324
  • [38] Query-based debugging of object-oriented programs
    Lencevicius, R
    Holzle, U
    Singh, AK
    ACM SIGPLAN NOTICES, 1997, 32 (10) : 304 - 317
  • [39] OBJECT-ORIENTED APPROACH
    WILSON, S
    IEE REVIEW, 1990, 36 (09): : 338 - 338
  • [40] THE OBJECT-ORIENTED APPROACH
    WILSON, S
    IEE REVIEW, 1990, 36 (07): : 277 - 280