skip to main content
article

Funcons for HGMP: the fundamental constructs of homogeneous generative meta-programming (short paper)

Published:07 April 2020Publication History
Skip Abstract Section

Abstract

The PLanCompS project proposes a component-based approach to programming-language development in which fundamental constructs (funcons) are reused across language definitions. Homogeneous Generative Meta-Programming (HGMP) enables writing programs that generate code as data, at run-time or compile-time, for manipulation and staged evaluation. Building on existing formalisations of HGMP, this paper introduces funcons for HGMP and demonstrates their usage in component-based semantics.

References

  1. Nada Amin and Tiark Rompf. 2017. Collapsing Towers of Interpreters. Proceedings of the ACM on Programming Languages 2, POPL, Article 52 (2017), 33 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Zena M. Ariola, John Maraist, Martin Odersky, Matthias Felleisen, and Philip Wadler. 1995. A Call-by-need Lambda Calculus. In Proceedings of the 22Nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '95). 233-246. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Kenichi Asai. 2014. Compiling a Reflective Language Using MetaOCaml. In Proceedings of the 2014 International Conference on Generative Programming: Concepts and Experiences (GPCE 2014). 113-122. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Martin Berger, Laurence Tratt, and Christian Urban. 2017. Modelling homogeneous generative meta-programming. In Proceedings of the 31st European Conference on Object-Oriented Programming (ECOOP 2017). 5:1-5:23.Google ScholarGoogle Scholar
  5. Martin Berger, Laurence Tratt, and Andrei Voronkov. 2010. Program Logics for Homogeneous Meta-programming. In Logic for Programming, Artificial Intelligence, and Reasoning. Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik, 64-81. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. L. Thomas van Binsbergen, Neil Sculthorpe, and Peter D. Mosses. 2016. Tool Support for Component-based Semantics. In Companion Proceedings of the 15th International Conference on Modularity. ACM, 8-11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Martin Churchill, Peter D. Mosses, Neil Sculthorpe, and Paolo Torrini. 2015. Reusable Components of Semantic Specifications. In Transactions on Aspect-Oriented Software Development XII. 132-179.Google ScholarGoogle Scholar
  8. J. A. Goguen, J. W. Thatcher, E. G. Wagner, and J. B. Wright. 1977. Initial Algebra Semantics and Continuous Algebras. Journal of the ACM 24, 1 (1977), 68-95. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Jun Inoue, Oleg Kiselyov, and Yukiyoshi Kameyama. 2016. Staging Beyond Terms: Prospects and Challenges. In Proceedings of the 2016 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation (PEPM '16). 103-108. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Oleg Kiselyov. 2014. The Design and Implementation of BER MetaOCaml. In Functional and Logic Programming. 86-102.Google ScholarGoogle ScholarCross RefCross Ref
  11. Simon Marlow. 2010. Haskell 2010 Language Report. https://www.haskell.org/onlinereport/haskell2010/. (2010). [Online, accessed 08-June-2018].Google ScholarGoogle Scholar
  12. Peter Mosses. 1990. Denotational Semantics. In Handbook of Theoretical Computer Science (Vol. B): Formal Models and Semantics, Jan van Leeuwen (Ed.). 577-631. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Peter D. Mosses. 2004. Modular Structural Operational Semantics. Journal of Logic and Algebraic Programming 60-61 (2004), 195-228.Google ScholarGoogle Scholar
  14. Peter D. Mosses and Mark J. New. 2009. Implicit Propagation in Structural Operational Semantics. Electronic Notes in Theoretical Computer Science 229, 4 (2009), 49-66. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Martin Odersky. 2018. Scala Language Specification. https://scala-lang.org/files/archive/spec/2.13/. (2018). [Online, accessed 08-June-2018].Google ScholarGoogle Scholar
  16. PLanCompS project. 2018. GitHub - Funcons-Beta. https://plancomps.github.io/CBS-beta/Funcons-beta. (2018). [Online, accessed 06-June-2018].Google ScholarGoogle Scholar
  17. Gordon D. Plotkin. 2004. A Structural Approach to Operational Semantics. Journal of Logic and Algebraic Programming 60-61 (2004), 17-139.Google ScholarGoogle Scholar
  18. Neil Sculthorpe, Paolo Torrini, and Peter D. Mosses. 2015. A Modular Structural Operational Semantics for Delimited Continuations. In Proceedings of the Workshop on Continuations. 63-80.Google ScholarGoogle Scholar
  19. Tim Sheard and Simon Peyton Jones. 2002. Template Metaprogramming for Haskell. ACM SIGPLAN Notices 37, 12 (2002), 60-75. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Walid Taha and Tim Sheard. 2000. MetaML and multi-stage programming with explicit annotations. Theoretical Computer Science 248, 1 (2000), 211-242. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Laurence Tratt. 2005. Compile-time Meta-programming in a Dynamically Typed OO Language. In Proceedings of the 2005 Symposium on Dynamic Languages (DLS '05). ACM, 49-63. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. L. Thomas van Binsbergen. 2018. Interpreter for ?v and extensions. https://hackage.haskell.org/package/funcons-lambda-cbv-mp-0.1.0.2. (2018). [Online, accessed 28-Sep-2018].Google ScholarGoogle Scholar
  23. L. Thomas van Binsbergen and Neil Sculthorpe. 2016. Funcons Interpreter and Repository. https://hackage.haskell.org/package/funcons-tools. (2016). [Online, accessed 28-June-2018].Google ScholarGoogle Scholar
  24. Takahisa Watanabe and Yukiyoshi Kameyama. 2018. Program generation for ML modules (short paper). In Proceedings of the ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation. 60-66. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Jeremy Yallop, Tamara von Glehn, and Ohad Kammar. 2018. Partially static data as free extension of algebras. In Proceedings of the 23rd ACM SIGPLAN International Conference on Functional Programming (ICFP 2018). ACM.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Funcons for HGMP: the fundamental constructs of homogeneous generative meta-programming (short paper)

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!