This volume contains the Proceedings of International Workshop on Optimization and Implementation of Declarative Programs (WOID′99). The Workshop was held in held in conjunction with the International Conference on Logic Programming ICLP′99 in Las Cruces, New Mexico, USA on the 2nd and 3rd of December, 1999.Overview:The aim of this workshop was to provide a forum where new trends, ideas and developments concerning the optimization and implementation of declarative languages could be discussed. It was especially geared towards bringing researchers from low-level compilation and high-level optimization together. Indeed, compilers and linkers are getting more and more sophisticated and employ more and more high-level optimizations, such as partial evaluation or deforestation. Researchers in high-level optimization and transformation, on the other hand, realise that low-level issues have to be taken into account in order to apply their techniques in practice. So, in this workshop we wanted to provide the possibility for these two areas to meet and accelerate their synergy.Contributions:Out of 11 submissions 8 papers were selected. To ensure a workshop character ample time was reserved for discussion and each paper was assigned a “key listener” from the program committee. This scheme was borrowed from the LOPSTR workshop series, and proved to be successful. The contributions were arranged in 3 sessions, described below.1. Implementation & Low-level OptimizationThe first paper of the session by R. Muth, S. Watterson, and S. Debray, discussed how the information that certain program variables “almost always” have a particular value (as opposed to “always” as in partial evaluation or constant folding) can and should be exploited for optimization. (For various reasons this paper is not present in this volume of ENTCS.) The other two papers of the session presented new ways of efficiently implementing CLP languages and constructs. The paper by N-F. Zhou and S. Kaneko presented an efficient (hybrid) way to compile equality constraints, while the paper by M. Gavanelli and M. Milano showed how to efficiently implement lazy domain evaluation for Constraint Satisfaction Problems.2. AnalysisThe session on analysis comprised two papers. The first one by K. Ueda developed a new linearity analysis for concurrent logic programs, with the aim of achieving compile time garbage collection. The paper by G. Puebla and M. Hermenegildo provided an encompassing and insightful overview of the important issues and problems that arise when analysing and specialising large programs decomposed into modules.3. SpecializationThe first paper of the last session, by F. Fioravanti, A. Pettorossi, and M. Proietti, presented a novel way to specialise (C)LP programs within a given context. This context allows one to describe additional specialisation constraints which are hard (or impossible) to express in earlier approaches. The next paper, by W. Vanhoof and M. Bruynooghe, dicussed how to achieve a binding-time analysis (i.e., figuring out which values and operations are already known or executable at specialisation time) for offline partial evaluation in the context of Mercury programs with modules. Finally, the paper by M. Leuschel and J. Jorgensen (presented by H. Lehmann) gave an overview of a new, fast offline partial evaluation system (called LOGEN), which can handle partially static data structures and many pure and impure features of Prolog.Further information about the workshop can be obtained at: http://www.ecs.soton.ac.uk/~mal/iclp99.woid.html.The Program Committee was composed of:Saumya Debray(University of Arizona)Bart Demoen(University of Leuven)John Gallagher(University of Bristol)Michael Leuschel (Chair)(University of Southampton)Germán Puebla(University of Madrid)Peter Stuckey(University of Melbourne)Neng-Fa Zhou(Kyushu Institute of Technology)I would like to thank the authors for their participation in the workshop and the program committee for their efforts in reviewing the papers. I also want to thank the Managing Editors of the Electronic Notes in Computer Science series, Michael Mislove, Maurice Nivat, and Christos Papadimitriou, for providing the opportunity to publish the proceedings in this series.Michael Leuschel, Guest Editor
Read full abstract