Program analysis, debugging, and optimization using the Ciao system preprocessor

被引:0
|
作者
Hermenegildo, MV [1 ]
Bueno, F [1 ]
Puebla, G [1 ]
López, P [1 ]
机构
[1] TU Madrid, Sch Comp Sci, UPM, Madrid, Spain
关键词
global analysis; debugging; verification; parallelization; optimization; partial evaluation; multiple specialization; abstract interpretation;
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present a tutorial overview of Ciaopp, the Ciao system preprocessor. Ciao is a public-domain, next-generation logic programming system, which subsumes ISO-Prolog and is specifically designed to a) be highly extensible via libraries and b) support modular program analysis, debugging, and optimization. The latter tasks are performed in an integrated fashion by Ciaopp. Ciaopp uses modular, incremental abstract interpretation to infer properties of program predicates and literals, including types, variable instantiation properties (including modes), non-failure, determinacy, bounds on computational cost, bounds on sizes of terms in the program, etc. Using such analysis information, Ciaopp can find errors at compile-time in programs and/or perform partial verification. Ciaopp checks how programs call system libraries and also any assertions present in the program or in other modules used by the program. These assertions are also used to generate documentation automatically. Ciaopp also uses analysis information to perform program transformations and optimizations such as multiple abstract specialization, parallelization (including granularity control), and optimization of run-time tests for properties which cannot be checked completely at compile-time. We illustrate "hands-on" the use of Ciaopp in all these tasks. By design, Ciaopp is a generic tool, which can be easily tailored to perform these and other tasks for different LP and CLP dialects.
引用
收藏
页码:54 / 66
页数:13
相关论文
共 50 条
  • [1] Integrated program debugging, verification, and optimization using abstract interpretation (and the Ciao system preprocessor)
    Hermenegildo, MV
    Puebla, G
    Bueno, F
    López-García, P
    [J]. SCIENCE OF COMPUTER PROGRAMMING, 2005, 58 (1-2) : 115 - 140
  • [2] Program development using Abstract Interpretation (and the Ciao system preprocessor)
    Hermenegildo, MV
    Puebla, G
    Bueno, F
    López-García, P
    [J]. STATIC ANALYSIS, PROCEEDINGS, 2003, 2694 : 127 - 152
  • [3] A generic preprocessor for program validation and debugging
    Puebla, G
    Bueno, F
    Hermenegildo, M
    [J]. ANALYSIS AND VISUALIZATION TOOLS FOR CONSTRAINT PROGRAMMING, 2000, 1870 : 63 - 107
  • [4] AN EXPERT SYSTEM FOR COBOL PROGRAM DEBUGGING
    LITECKY, C
    [J]. DATA BASE, 1989, 20 (01): : 1 - 6
  • [5] Reversible debugging using program instrumentation
    Chen, SK
    Fuchs, WK
    Chung, JY
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2001, 27 (08) : 715 - 727
  • [6] A static analysis for program understanding and debugging
    Gaugne, R
    [J]. AUTOMATED SOFTWARE ENGINEERING, 12TH IEEE INTERNATIONAL CONFERENCE, PROCEEDINGS, 1997, : 297 - 298
  • [7] AN INTERACTIVE PREPROCESSOR FOR STRUCTURAL DESIGN SENSITIVITY ANALYSIS AND OPTIMIZATION
    STONE, TA
    SANTOS, JLT
    HAUG, EJ
    [J]. COMPUTERS & STRUCTURES, 1990, 34 (03) : 375 - 385
  • [8] CIAO: Chandra's data analysis system
    Fruscione, Antonella
    McDowell, Jonathan C.
    Allen, Glenn E.
    Brickhouse, Nancy S.
    Burke, Douglas J.
    Davis, John E.
    Durham, Nick
    Elvis, Martin
    Galle, Elizabeth C.
    Harris, Daniel E.
    Huenemoerder, David P.
    Houck, John C.
    Ishibashi, Bish
    Karovska, Margarita
    Nicastro, Fabrizio
    Noble, Michael S.
    Nowak, Michael A.
    Primini, Frank A.
    Siemiginowska, Aneta
    Smith, Randall K.
    Wise, Michael
    [J]. OBSERVATORY OPERATIONS: STRATEGIES, PROCESSES, AND SYSTEMS, 2006, 6270
  • [9] CCSP - A FORMAL SYSTEM FOR DISTRIBUTED PROGRAM DEBUGGING
    ARROWSMITH, B
    MCMILLIN, B
    [J]. PROGRAMMING AND COMPUTER SOFTWARE, 1995, 21 (01) : 45 - 50
  • [10] DEBUGGING TOOLS FOR A SYSTEM WITH AUTOMATIC PROGRAM SYNTHESIS
    MATSKIN, MB
    [J]. PROGRAMMING AND COMPUTER SOFTWARE, 1983, 9 (04) : 173 - 177