Treffer: Detecting non-cyclicity by abstract compilation into boolean functions

Title:
Detecting non-cyclicity by abstract compilation into boolean functions
Source:
Verification, model checking, and abstract interpretation (7th international conference, VMCAI 2006, Charleston SC, USA, January 8-10, 2006)0VMCAI 2006. :95-110
Publisher Information:
Berlin: Springer, 2006.
Publication Year:
2006
Physical Description:
print, 11 ref 1
Original Material:
INIST-CNRS
Document Type:
Konferenz Conference Paper
File Description:
text
Language:
English
Author Affiliations:
Dipartimento di Informatica, Université di Verona, Strada Le Grazie, 15, 37134 Verona, Italy
ISSN:
0302-9743
Rights:
Copyright 2006 INIST-CNRS
CC BY 4.0
Sauf mention contraire ci-dessus, le contenu de cette notice bibliographique peut être utilisé dans le cadre d’une licence CC BY 4.0 Inist-CNRS / Unless otherwise stated above, the content of this bibliographic record may be used under a CC BY 4.0 licence by Inist-CNRS / A menos que se haya señalado antes, el contenido de este registro bibliográfico puede ser utilizado al amparo de una licencia CC BY 4.0 Inist-CNRS
Notes:
Computer science; theoretical automation; systems
Accession Number:
edscal.17416427
Database:
PASCAL Archive

Weitere Informationen

Programming languages such as C, C++ and Java bind variables to dynamically-allocated data-structures held in memory. This lets programs build cyclical data at run-time, which complicates termination analysis and garbage collection. It is hence desirable to spot those variables which are only bound to non-cyclical data at run-time. We solve this problem by using abstract interpretation to define the abstract domain NC representing those variables. We relate NC through a Galois insertion to the concrete domain of program states. Hence NC is not redundant. We define a correct abstract denotational semantics over NC, which uses preliminary sharing information between variables to get more precise results. We apply it to a simple example of analysis. We use a Boolean representation for the abstract denotations over NC, which leads to an efficient implementation in terms of binary decision diagrams and to the elegant and efficient use of abstract compilation.