Abstract
In the last ten years the study of meta-programming systems, as formal systems worthy of study in their own right, has vastly accelerated. In that time a lot has been accomplished, yet much remains to be done. In this invited talk I wish to review recent accomplishments and future research challenges in hopes that this will spur interest in meta-programming in general and lead to new and better meta-programming systems.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
A. Aasa. User Defined Syntax. PhD thesis, Chalmers University, Dept of Computer Science, Chalmers University, Sweden, 1992.
A. Aasa. Precedence for conc types. In FPCA‘93: Conference on Functional Programming Languages and Computer Architecture, Copenhagen, Denmark, pages 83–91, New York, June 1993. ACM Press.
A. Aasa, K. Petersson, and D. Synek. Concrete syntax for data objects in functional languages. In Proceedings of the 1988 ACM Conference on LISP and Functional Programming, pages 96–105. ACM, ACM, July 1988.
M. Abadi and L. Cardelli. An imperative object calculus (invited paper). Theory and Practice of Object Sytems, 1(3):151–166, 1995.
L. Augustsson. Cayenne-a language with dependent types. ACM SIGPLAN Notices, 34(1):239–250, Jan. 1999.
J. Auslander, M. Philipose, C. Chambers, S. J. Eggers, and B. N. Bershad. Fast, effective dynamic compilation. In Proceedings of the ACM SIGPLAN ‘96 Conference on Programming Language Design and Implementation, pages 149–159, Philadelphia, Pennsylvania, May 1996.
B. Barras, S. Boutin, C. Cornes, J. Courant, J. Filliatre, E. Giménez, H. Herbelin, G. Huet, C. M. noz, C. Murthy, C. Parent, C. Paulin, A. Saïbi, and B. Werner. The Coq Proof Assistant Reference Manual-Version V6.1. Technical Report 0203, INRIA, August 1997.
A. Bawden. Quasiquotation in LISP (invited talk). In ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, pages 4–12. ACM, BRICS Notes Series, january 1999.
Z. E.-A. Benaissa, E. Moggi, W. Taha, and T. Sheard. A categorical analysis of multi-level languages (extended abstract). Technical Report CSE-98-018, Department of Computer Science, Oregon Graduate Institute, Dec. 1998. Available from [56].
Z. E.-A. Benaissa, E. Moggi, W. Taha, and T. Sheard. Logical modalities and multistage programming. In Federated Logic Conference (FLoC) Satellite Workshop on Intuitionistic Modal Logics and Applications (IMLA), July 1999. To appear.
R. G. Burger. Efficient Compilation and Profile-Driven Dynamic Recompilation in Scheme. PhD thesis, Indiana University Computer Science Department, March 1997.
R. G. Burger and R. K. Dybvig. An infrastructure for profile-driven dynamic recompilation. In Proceedings of the 1998 International Conference on Computer Languages, pages 240–249. IEEE Computer Society Press, 1998.
R. Burstall and J. Goguen. An informal introduction to specifications using Clear. In R. Boyer and J. Moore, editors, The Correctness Problemin Computer Science, pages 185–213. Academic, 1981. Reprinted in Software Specification Techniques, Narain Gehani and Andrew McGettrick, editors, Addison-Wesley, 1985, pages 363-390.
C. Calcagno, E. Moggi, and W. Taha. Closed types as a simple approach to safe imperative multi-stage programming. In Automata, Languages and Programming, pages 25–36, 2000.
R. Carnap. The Logical Syntax of Language. Kegan Paul, Trench and Trubner, 1937.
A. Church. A formulation of the simple theory of types. Journal of Symbolic Logic, 5:56–68, 1940.
Consel, Hornof, Marlet, Muller, Thibault, and Volanschi. Tempo: specializing systems applications and beyond. CSURVES: Computing Surveys Electronic Section, 30, 1998.
C. Consel and F. Noёl. A general approach for run-time specialization and its application to C. In Conference Record of POPL ‘96: The 23rd ACM SIGPLANSIGACT Symposium on Principles of Programming Languages, pages 145–156, St. Petersburg Beach, Florida, 21-24 Jan. 1996.
R. Davies. A temporal-logic approach to binding-time analysis. In Proceedings, 11 th Annual IEEE Symposium on Logic in Computer Science, pages 184–195, New Brunswick, July 1996. IEEE Computer Society Press.
R. Davies and F. Pfenning. A modal analysis of staged computation. In 23rd Annual ACM Symposium on Principles of Programming Languages (POPL‘96), pages 258–270, St. Petersburg Beach, Jan. 1996.
N. G. de Bruijn. Lambda-calculus notation with nameless dummies: a tool for automatic formula manipulation with application to the Church-Rosser theorem. Indag. Math., 34(5):381–392, 1972.
R. K. Dybvig. Fromm acrogeneration to syntactic abstraction. Higher-Order and Symbolic Computation, 13(1-2):57–63, Apr. 2000.
R. K. Dybvig, R. Hieb, and C. Bruggeman. Syntactic abstraction in Scheme. LISP and Symbolic Computation, 5(4):295–326, Dec. 1992.
C. M. Elliott. Extensions and Applications of Higher-Order Unification. PhD thesis, School of Computer Science, Carnegie Mellon University, May 1990. Available as Technical Report CMU-CS-90-134.
D. R. Engler, W. C. Hsieh, and M. F. Kaashoek. ‘C: A language for efficient, machine-independent dynamic code generation. In Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ‘96), pages 131–144, St. Petersburg Beach, Florida, January 1996. An earlier version is available as MIT-LCS-TM-526.
L. Fegaras and T. Sheard. Revisiting catamorphisms over datatypes with embedded functions (or, programs from outer space). In Conf. Record 23rd ACM SIGPLAN/SIGACT Symp. on Principles of Programming Languages, POPL‘96, St. Petersburg Beach, FL, USA, 21-24 Jan 1996, pages 284–294. ACM Press, New York, 1996.
M. Gabbay and A. Pitts. A new approach to abstract syntax involving binders. In G. Longo, editor, Proceedings of the 14th Annual Symposium on Logic in Computer Science (LICS‘99), pages 214–224, Trento, Italy, July 1999. IEEE Computer Society Press.
M. J. Gabbay. Theory of Inductive Definitions With a-equivalence: Semantics, Implementation, Programming Language. PhD thesis, Cambridge University, 2000.
S. E. Ganz, A. Sabry, and W. Taha. Macros as multi-stage computations: Typesafe, generative, binding macros in macroml. In Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP-2001), New York, September 2001. ACM Press.
R. Glück and J. JØrgensen. Efficient multi-level generating extensions for program specialization. In S. D. Swierstra and M. Hermenegildo, editors, Programming Languages: Implementations, Logics and Programs (PLILP‘95), volume 982 of Lecture Notes in Computer Science, pages 259–278. Springer-Verlag, 1995.
R. Glück and J. JØrgensen. Fast binding-time analysis for multi-level specialization. In D. BjØrner, M. Broy, and I. V. Pottosin, editors, Perspectives of System Informatics, volume 1181 of Lecture Notes in Computer Science, pages 261–272. 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.
M. J. C. Gordon and T. F. Melham. Introduction to HOL: A theorempr oving environment for higher order logic. Cambridge University Press, 1993.
Grant, Mock, Philipose, Chambers, and Eggers. DyC: An expressive annotationdirected dynamic compiler for C. TCS: Theoretical Computer Science, 248, 2000.
B. Grant, M. Philipose, M. Mock, C. Chambers, and S. J. Eggers. An evaluation of staged run-time optimizations in DyC. In Proceedings of the ACM SIGPLAN ‘99 Conference on Programming Language Design and Implementation, pages 293–304, Atlanta, Georgia, May 1–4, 1999.
R. Harper, F. Honsell, and G. Plotkin. A framework for defining logics. In Proceedings Symposium on Logic in Computer Science, pages 194–204, Washington, June 1987. IEEE Computer Society Press. The conference was held at Cornell University, Ithaca, New York.
B. Harrison and T. Sheard. Dynamically adaptable software with metacomputations in a staged language. In Proceedings of the Workshop on Semantics, Applications and Implementation of Program Generation (SAIG‘01), September 2001. Appearing in this proceedings.
L. Hornof and T. Jim. Certifying compilation and run-time code generation. Higher-Order and Symbolic Computation, 12(4):337–375, Dec. 1999.
S. Johnson. Yacc-yet another compiler compiler. Technical Report 32, Bell Labs, 1975.
M. P. Jones. Qualified Types: Theory and Practice. Programming Research Group, Oxford University, July 1992.
M. P. Jones. A theory of qualified types. In B. Krieg-Bruckner, editor, ESOP ‘92, 4th European Symposium on Programming, Rennes, France, February 1992, Proceedings, volume 582 of Lecture Notes in Computer Science, pages 287–306. Springer-Verlag, New York, NY, 1992.
P. Lee and M. Leone. Optimizing ML with run-time code generation. In SIGPLAN ‘96 Conference on Programming Language Design and Implementation, pages 137–148, 1996.
M. Leone and P. Lee. Lightweight run-time code generation. In Partial Evaluation and Semantics-Based Program Manipulation, Orlando, Florida, June 1994 (Technical Report 94/9, Department of Computer Science, University of Melbourne), pages 97–106, 1994.
M. Leone and P. Lee. Dynamic specialization in the Fabius system. ACM Computing Surveys, 30(3es):??-??, Sept. 1998. Article 23.
J. R. Lewis, J. Launchbury, E. Meijer, and M. Shields. Implicit parameters: Dynamic scoping with static types. In Proceedings of the 27th ACM SIGPLANSIGACT Symposium on Principles of Programming Languages (POLP-00), pages 108–118, N.Y., Jan. 19-21 2000. ACM Press.
H. Massalin. Synthesis: An Efficient Implementation of Fundamental Operating System Services. PhD thesis, Columbia University, 1992.
D. Miller. An extension to ML to handle bound variables in data structures: Preliminary report. In Informal Proceedings of the Logical Frameworks BRA Workshop, June 1990. Available as UPenn CIS technical report MS-CIS-90-59.
E. Moggi. Functor categories and two-level languages. In FoSSaCS ‘98, volume 1378 of Lecture Notes in Computer Science. Springer Verlag, 1998.
E. Moggi, W. Taha, Z. Benaissa, and T. Sheard. An idealized MetaML: Simpler, and more expressive. In European Symposium on Programming (ESOP), volume 1576 of Lecture Notes in Computer Science, pages 193–207. Springer-Verlag, 1999.
E. Moggi, W. Taha, Z. El-Abidine Benaissa, and T. Sheard. An idealized MetaML: Simpler, and more expressive. Lecture Notes in Computer Science, 1576:193–207, 1999.
F. Nielson. Programtransform ations in a denotational setting. ACM Trans. Prog. Lang. Syst., 7(3):359–379, July 1985.
F. Nielson. Correctness of code generation froma two-level meta-language. In B. Robinet and R. Wilhelm, editors, Proceedings of the European Symposium on Programming (ESOP 86), volume 213 of Lecture Notes in Computer Science, pages 30–40, Saarbrücken, Mar. 1986. Springer.
F. Nielson. Two-level semantics and abstract interpretation. Theoretical Computer Science, 69(2):117–242, Dec. 1989.
F. Nielson and H. R. Nielson. Two-level semantics and code generation. Theoretical Computer Science, 56(1):59–133, Jan. 1988.
F. Noёl, L. Hornof, C. Consel, and J. L. Lawall. Automatic, template-based runtime specialization: Implementation and experimental study. In Proceedings of the 1998 International Conference on Computer Languages, pages 132–142. IEEE Computer Society Press, 1998.
Oregon Graduate Institute Technical Reports. P.O. Box 91000, Portland, OR 97291-1000,USA. Available online from ftp://cse.ogi.edu/pub/tech-reports/README.html. Last viewed August 1999.
L. C. Paulson. Isabelle: The next 700 theorempro vers. In P. Odifreddi, editor, Logic and Computer Science, pages 361–386. Academic Press, 1990.
E. Pašalić, T. Sheard, and W. Taha. DALI: An untyped, CBV functional language supporting first-order datatypes with binders (technical development). Submitted to ICFP2000.
E. Pašalić, T. Sheard, and W. Taha. DALI: An untyped, CBV functional language supporting first-order datatypes with binders (technical development). Technical Report CSE-00-007, OGI, 2000. Available from[56].
F. Pfenning. Elf: A language for logic definition and verified meta-programming. In Fourth Annual Symposium on Logic in Computer Science, pages 313–322, Pacific Grove, California, June 1989. IEEE Computer Society Press.
F. Pfenning. Logic programming in the LF logical framework. In G. Huet and G. Plotkin, editors, Logical Frameworks, pages 149–181. Cambridge University Press, 1991.
F. Pfenning and C. Schürmann. System description: Twelf-A meta-logical framework for deductive systems. In H. Ganzinger, editor, Proceedings of the 16th International Conference on Automated Deduction (CADE-16), volume 1632 of LNAI, pages 202–206, Berlin, July 7–10, 1999. Springer-Verlag.
A. M. Pitts and M. J. Gabbay. A metalanguage for programming with bound names modulo renaming. In R. Backhouse and J. N. Oliveira, editors, Mathematics of Program Construction. 5th International Conference, MPC2000, Ponte de Lima, Portugal, July 2000. Proceedings, volume 1837 of Lecture Notes in Computer Science, pages 230–255. Springer-Verlag, Heidelberg, 2000.
M. Poletto, W. C. Hsieh, D. R. Engler, and M. F. Kaashoek. ‘C and tcc: A language and compiler for dynamic code generation. ACM Transactions on Programming Languages and Systems, 21(2):324–369, March 1999.
M. Poletto and V. Sarkar. Linear scan register allocation. ACM Transactions on Programming Languages and Systems, 21(5):895–913, September 1999.
R. Pollack. The Theory of LEGO: A Proof Checker for the Extended Calculus of Constructions. PhD thesis, University of Edinburgh, 1994.
C. Pu, H. Massalin, and J. Ioannidis. The synthesis kernel. Usenix Journal, Computing Systems, 1(1):11, Winter 1988.
N. Ramsey. Pragmatic aspects of reusable software generators. In Proceedings of the Workshop on Semantics, Applications and Implementation of Program Generation (SAIG), pages 149–171, September 2000. Workshop held in collaboration with the International Conference on Functional Programming (ICFP).
T. Sheard. Using MetaML: A staged programming language. Lecture Notes in Computer Science, 1608:207-??, 1999.
T. Sheard, Z. Benaissa, and E. Pasalic. Dsl implementation using staging and monads. In Second Conference on Domain-Specific Languages (DSL‘99), Austin, Texas, October 1999. USEUNIX.
M. Shields. Static Types for Dynamic Documents. PhD thesis, Department of Computer Science, Oregon Graduate Institute, Feb. 2001. Available at http://www.cse.ogi.edu/~mbs/pub/thesis/thesis.ps.
M. Shields, T. Sheard, and S. P. Jones. Dynamic typing through staged type inference. In Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 289–302, Jan. 1998.
G. L. Steele, Jr. and R. P. Gabriel. The evolution of LISP. ACM SIGPLAN Notices, 28(3):231–270, 1993.
W. Taha. Multi-Stage Programming: Its Theory and Applications. PhD thesis, Oregon Graduate Institute of Science and Technology, July 1999. Revised October 99. Available fromauthor (taha@cs.chalmers.se).
W. Taha. A sound reduction semantics for untyped CBN multi-stage computation: Or, the theory of MetaML is non-trivial. In Proceedings of the 2000 ACM SIGPLAN Workshop on Evaluation and Semantics-Based Program Manipulation (PEPM-00), pages 34–43, N.Y., Jan. 22-23 2000. ACM Press.
W. Taha. A sound reduction semantics for untyped CBN mutli-stage computation. Or, the theory of MetaML is non-trivial. In 2000 SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Maniplation (PEPM‘00), Jan. 2000.
W. Taha, Z.-E.-A. Benaissa, and T. Sheard. Multi-stage programming: Axiomatization and type-safety. In 25th International Colloquiumon Automata, Languages, and Programming, volume 1443 of Lecture Notes in Computer Science, pages 918–929, Aalborg, July 1998.
W. Taha, Z.-E.-A. Benaissa, and T. Sheard. Multi-stage programming: Axiomatization and type safety. Technical Report CSE-98-002, Oregon Graduate Institute, 1998. Available from[56].
W. Taha and T. Sheard. Multi-stage programming with explicit annotations. In Proceedings of the ACM-SIGPLAN Symposium on Partial Evaluation and semantic based program manipulations PEPM‘97, Amsterdam, pages 203–217. ACM, 1997. An extended and revised version appears in [81].
W. Taha and T. Sheard. MetaML and multi-stage programming with explicit annotations. Technical Report CSE-99-007, Department of Computer Science, Oregon Graduate Institute, Jan. 1999. Extended version of [79]. Available from [56].
W. Taha and T. Sheard. MetaML: Multi-stage programming with explicit annotations. Theoretical Computer Science, 248(1-2), 2000. Revised version of [80].
S. Thibault, C. Consel, and G. Muller. Safe and efficient active network programming. In Seventeenth IEEE Symposium on Reliable Distributed Systems (SRDS ‘98), pages 135–143, Washington-Brussels-Tokyo, Oct. 1998. IEEE.
W. van Orman Quine. Mathematical Logic. Harvard University Press, Cambridge, 2 edition, 1974.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Sheard, T. (2001). Accomplishments and Research Challenges in Meta-programming. In: Taha, W. (eds) Semantics, Applications, and Implementation of Program Generation. SAIG 2001. Lecture Notes in Computer Science, vol 2196. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44806-3_2
Download citation
DOI: https://doi.org/10.1007/3-540-44806-3_2
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-42558-8
Online ISBN: 978-3-540-44806-8
eBook Packages: Springer Book Archive