Abstract
In recent work, we proposed a simple functional language S-graph-n to study metaprogramming aspects of self-applicable online program specialization. The primitives of the language provide support for multiple encodings of programs. An important component of online program specialization is the termination strategy. In this paper we show that such a representation has the great advantage of simplifying generalization of multiply encoded data. After developing and formalizing the basic metaprogramming concepts, we extend two basic methods to multiply encoded data: most specific generalization and the homeomorphic embedding relation. Examples and experiments with the initial design of an online specializer illustrate their use in hierarchies of online program specializers.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
S.M. Abramov. Metacomputation and program testing. In 1st International Workshop on Automated and Algorithmic Debugging, pages 121–135, Linköping University, Sweden, 1993.
M. Alpuente, M. Falaschi, and G. Vidal. Narrowing-driven partial evaluation of functional logic programs. In H.R. Nielson, editor, European Symposium on Programming, Lecture Notes in Computer Science, pages 46–61. Springer-Verlag, 1996.
K. Apt and F. Turini Meta-Logics and Logic Programming, MIT Press, 1995.
J. Barklund. A basis for a multilevel metalogic programming language. Technical Report 81, Uppsala University, Dept. of Computing Science, 1994.
R. Bol. Loop checking in partial deduction. J of Logic Programming, 16(1&2):25–46, 1993.
S. Costantini and G. Lanzarone. A metalogic programming language. In G. Levi and M. Martelli, editors, Proceedings Sixth International Conference on Logic Programming,pages 218–233. MIT Press, 1989.
O. Danvy, R. Glück, and P. Thiemann, editors. Partial Evaluation, volume 1110 of Lecture Notes in Computer Science. Springer-Verlag, 1996.
N. Dershowitz and J.-P. Jouannaud. Rewrite systems. In J. vanLeeuwen, editor, Handbook of Theoretical Computer Science, pages 244–320. Elsevier, 1992.
U. Eisenecker. Generative programming with C++. In H. Mössenböck, editor, Modular Programming Languages, volume 1204 of Lecture Notes in Computer Science,pages 351–365. Springer-Verlag, 1997.
R. Glück. On the mechanics of metasystem hierarchies in program transformation. In M. Proietti, editor, Logic Program Synthesis and Transformation LOPSTR’95, volume 1048 of Lecture Notes in Computer Science, pages 234–251. Springer-Verlag, 1996.
R. Glück and J. Jørgensen. An automatic program generator for multi-level specialization. Lisp and Symbolic Computation, 10(2):113–158, 1997.
R. Glück and A.V. Klimov. Occam’s razor in metacomputation: the notion of a perfect process tree. In P. Cousot, et al., editors, Static Analysis. Proceedings. Lecture Notes in Computer Science, Vol. 724, pages 112–123. Springer-Verlag, 1993.
J. Hatcliff and R. Glück. Reasoning about hierarchies of online specialization systems. In Danvy et al. R. Glück, and P. Thiemann, editors. Partial Evaluation, volume 1110 of Lecture Notes in Computer Science. Springer-Verlag, 1996 [7].
P. Hill and J. Gallagher. Meta-programming in logic programming. Technical Report 94.22, School of Computer Studies, University of Leeds, 1994.
P. Hill and J.W. Lloyd. The Gödel Programming Language. MIT Press, 1994.
Neil D. Jones, Carsten K. Gomard, and Peter Sestoft. Partial Evaluation and Automatic Program Generation. Prentice-Hall, 1993.
M. Leuschel. Homeomorphic embedding for online termination. Technical Report DSSE-TR-98-11, University of Southampton, Dept. of Electronics and Computer Science, 1998.
M. Leuschel. On the power of homeomorphic embedding for online termination. G. Levi, editor, Static Analysis. Proceedings. Lecture Notes in Computer Science, Vol. 1503, pages 230–245, Springer-Verlag 1998.
M. Leuschel and B. Martens. Global control for partial deduction through characteristic atoms and global trees. In Danvy et al. R. Glück, and P. Thiemann, editors. Partial Evaluation, volume 1110 of Lecture Notes in Computer Science. Springer-Verlag, 1996 [7], pages 263–283.
G. Nadathur and D. Miller. Higher-Order Logic Programming. In Handbook of Logic in AI and Logic Programming, Vol. 5, pages 499–590, Oxford University Press, 1998.
A. Pettorossi, M. Proietti. Transformation of logic programs: Foundations and techniques. Journal of Logic Programming, 19 & 20:261–320, 1994.
M.H. Sørensen and R. Glück. An algorithm of generalization in positive super-compilation. In J.W. Lloyd, editor, Logic Programming: Proceedings of the 1995 International Symposium, pages 465–479. MIT Press, 1995.
L. Sterling and E. Shapiro. The Art of Prolog. MIT Press, 1986.
W. Taha and T. Sheard. Multi-stage programming with explicit annotations. In Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pages 203–217, 1997.
V.F. Turchin. The concept of a supercompiler. Transactions on Programming Languages and Systems, 8(3):292–325, 1986.
V.F. Turchin. Metacomputation: metasystem transitions plus supercompilation. In Danvy et al.R. Glück, and P. Thiemann, editors. Partial Evaluation, volume 1110 of Lecture Notes in Computer Science. Springer-Verlag, 1996 [7].
V.F. Turchin. On generalization of lists and strings in supercompilation. Technical Report CSc. TR 96-002, City College of the City University of New York, 1996.
V.F. Turchin and A.P. Nemytykh. Metavariables: their implementation and use in program transformation. CSc. TR 95-012, City College of the City University of New York, 1995.
W. Vanhoof and B. Martens. To parse or not to parse. In N. Fuchs (ed.), Logic Program Synthesis and Transformation (LOPSTR’97), Lecture Notes in Computer Science, Vol. 1463, pages 314–333, Springer-Verlag 1998.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Glück, R., Hatcliff, J., Jørgensen, J. (1999). Generalization in Hierarchies of Online Program Specialization Systems. In: Flener, P. (eds) Logic-Based Program Synthesis and Transformation. LOPSTR 1998. Lecture Notes in Computer Science, vol 1559. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48958-4_10
Download citation
DOI: https://doi.org/10.1007/3-540-48958-4_10
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-65765-1
Online ISBN: 978-3-540-48958-0
eBook Packages: Springer Book Archive