Live data structures in logic programs : derivation by means of abstract interpretation / Anne Mulkers.Material type: TextSeries: Serienbezeichnung | Lecture notes in computer science ; 675.Publisher: Berlin ; New York : Springer-Verlag, ©1993Description: 1 online resource (viii, 220 pages) : illustrationsContent type: text Media type: computer Carrier type: online resourceISBN: 9783540476337; 3540476334Subject(s): Data structures (Computer science) | Abstract data types (Computer science) | Abstract data types (Computer science) | Data structures (Computer science) | Logisch programmeren | DatastructurenGenre/Form: Electronic books. Additional physical formats: Print version:: Live data structures in logic programs.; Print version:: Live data structures in logic programs.DDC classification: 005.13/1 LOC classification: QA76.9.D35 | M84 1993Other classification: 54.51 Online resources: Click here to access online
|Item type||Current library||Collection||Call number||Status||Date due||Barcode||Item holds|
Includes bibliographical references (pages 213-220).
Online resource; title from PDF title page (SpringerLink, viewed Oct. 28, 2013).
A common hazard for implementations of applicative programming languages is the excessive creation of garbage cells during program execution. The available run-time garbage collecting processes are expensive in time and often require a periodic disruption of the program execution. The present book addresses the problem of memory re-use for logic programs through program analysis rather than by run-time garbage collection. The static analysis is constructed as an application of abstractinterpretation for logic programs. The starting point is a previously developed application of integrated type and mode analysis, which basically supplies a description of the logical terms to which program variables can be bound at run time. The contribution of the book consists of a modular extension of the abstract domain and operations in order to derive run-time properties concerning the sharing and liveness of term substructures dynamically created during program execution. Alsoillustrated is how such information can be used by the compiler to improve the allocation of run-time structures and to automatically introduce destructive assignments in logic languages in a safe and transparent way, thereby shifting some part of the run-time storage reclamation overhead to compile time.
Abstract interpretation -- Related work -- Sharing analysis -- Liveness analysis -- Conclusion.