Experiments in context-sensitive analysis of modular programs

被引:3
作者
Correasi, Jesus [1 ]
Puebla, German
Hermenegildo, Manuel V.
Bueno, Francisco
机构
[1] Univ Complutense Madrid, Sch Comp Sci, Madrid, Spain
[2] Tech Univ Madrid, Sch Comp Sci, Madrid, Spain
[3] Univ New Mexico, Dept Comp Sci, Albuquerque, NM 87131 USA
[4] Univ New Mexico, Dept Elect & Comp Engn, Albuquerque, NM 87131 USA
来源
LOGIC BASED PROGRAM SYNTHESIS AND TRANSFORMATION | 2006年 / 3901卷
关键词
D O I
10.1007/11680093_11
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Several models for context-sensitive analysis of modular programs have been proposed, each with different characteristics and representing different trade-offs. The advantage of these context-sensitive analyses is that they provide information which is potentially more accurate than that provided by context-free analyses. Such information can then be applied to validating/debugging the program and/or to specializing the program in order to obtain important performance improvements. Some very preliminary experimental results have also been reported for some of these models, providing some initial evidence on their potential. However, further experimentation, needed in order to understand the many issues left open and to show that the proposed modes scale and are usable in the context of large, real-life modular programs, was left as future work. The aim of this paper is twofold. On one hand we provide an empirical comparison of the different models proposed in previous work, as well as experimental data on the different choices left open in those designs. On the other hand we explore the scalability of these models by using larger modular programs as benchmarks. The results have been obtained from a realistic implementation of the models, integrated in a production-quality compiler (CiaoPP/Ciao). Our experimental results shed light on the practical implications of the different design choices and of the models themselves. We also show that context-sensitive analysis of modular programs is indeed feasible in practice, and that in certain critical cases it provides better performance results than those achievable by analyzing the whole program at once. This is specially the case regarding memory consumption and when reanalyzing after making changes to a program, as is often the case during program development.
引用
收藏
页码:163 / 178
页数:16
相关论文
共 14 条
[1]  
BESSON F, 2003, LNCS, V2694
[2]  
BUENO F, 2004, CIAO SYSTEM DOCUMENT
[3]  
Bueno F., 1996, LNCS, V1058, P108, DOI [10.1007/3-540-61055-3_32, DOI 10.1007/3-540-61055-3_32]
[4]  
Bueno R, 2001, LECT NOTES COMPUT SC, V2042, P86
[5]  
Cabeza D, 2000, LECT NOTES ARTIF INT, V1861, P131
[6]  
Cousot P, 2002, LECT NOTES COMPUT SC, V2304, P159
[7]  
DELABANDA MG, 1993, 1993 INT LOG PROGR S, P437
[8]  
DeLanda Manuel, 2002, INTENSIVE SCI VIRTUA, P47
[9]   Integrated program debugging, verification, and optimization using abstract interpretation (and the Ciao system preprocessor) [J].
Hermenegildo, MV ;
Puebla, G ;
Bueno, F ;
López-García, P .
SCIENCE OF COMPUTER PROGRAMMING, 2005, 58 (1-2) :115-140
[10]  
MUTHUKUMAR K, 1991, 1991 INT C LOG PROGR, P49