Horn clauses as an intermediate representation for program analysis and transformation

From MaRDI portal
Publication:4592995

DOI10.1017/S1471068415000204zbMATH Open1379.68089arXiv1507.05762OpenAlexW3098190183WikidataQ57664991 ScholiaQ57664991MaRDI QIDQ4592995FDOQ4592995

Graeme Gange, Peter J. Stuckey, Peter Schachte, Harald Søndergaard, Jorge Navas

Publication date: 9 November 2017

Published in: Theory and Practice of Logic Programming (Search for Journal in Brave)

Abstract: Many recent analyses for conventional imperative programs begin by transforming programs into logic programs, capitalising on existing LP analyses and simple LP semantics. We propose using logic programs as an intermediate program representation throughout the compilation process. With restrictions ensuring determinism and single-modedness, a logic program can easily be transformed to machine language or other low-level language, while maintaining the simple semantics that makes it suitable as a language for program analysis and transformation. We present a simple LP language that enforces determinism and single-modedness, and show that it makes a convenient program representation for analysis and transformation.


Full work available at URL: https://arxiv.org/abs/1507.05762





Cites Work


Cited In (10)

Uses Software


Recommendations





This page was built for publication: Horn clauses as an intermediate representation for program analysis and transformation

Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q4592995)