Offline specialisation in Prolog using a hand-written compiler generator (2004)
Cached
Download Links
- [repository.readscheme.org]
- [www.cs.kuleuven.ac.be]
- [www.ecs.soton.ac.uk]
- DBLP
Other Repositories/Bibliography
| Citations: | 38 - 21 self |
BibTeX
@TECHREPORT{Leuschel04offlinespecialisation,
author = {Michael Leuschel and Jesper Jørgensen},
title = {Offline specialisation in Prolog using a hand-written compiler generator},
institution = {},
year = {2004}
}
Years of Citing Articles
OpenURL
Abstract
The so called âcogen approachâ to program specialisation, writing a compiler generator instead of a specialiser, has been used with considerable success in partial evaluation of both functional and imperative languages. This paper demonstrates that this approach is also applicable to partial evaluation of logic programming languages, also called partial deduction. Self-application has not been as much in focus in logic programming as for functional and imperative languages, and the attempts to self-apply partial deduction systems have, of yet, not been altogether that successful. So, especially for partial deduction, the cogen approach should prove to have a considerable importance when it comes to practical applications. This paper first develops a generic offline partial deduction technique for pure logic programs, notably supporting partially instantiated datastructures via binding types. From this a very efficient cogen is derived, which generates very efficient generating extensions (executing up to several orders of magnitude faster than current online systems) which in turn perform very good and non-trivial specialisation, even rivalling existing online systems. All this is supported by extensive benchmarks. Finally, it is shown how the cogen can be extended to directly support a large part of Prologâs declarative and non-declarative features and how semi-online specialisation can be efficiently integrated.







