Skip to content

A Silver implementation of an interpreter for a subset of MetaOCaml

License

Notifications You must be signed in to change notification settings

melt-umn/meta-ocaml-lite

Repository files navigation

An interpreter for a subset of MetaOCaml in Silver

This repository contains an interpreted implementation of a subset of MetaOCaml as a demonstration of the reflection capabilities of Silver.

Authors

Releases

  • Release 0.1.0: made in September, 2019
  • Release 0.1.1: made in April, 2020

License

This software is distributed under the GNU Lesser General Public License. See the file LICENSE for details.
More information can be found at http://www.gnu.org/licenses/.

Related publications

Release 0.1.1 is discussed in the paper "Reflection of Terms in Attribute Grammars: Design and Applications" by Lucas Kramer, Ted Kaminski, and Eric Van Wyk. At the time of release this paper has been submitted to the Journal of Computer Languages (COLA).

It is an extension of ``Reflection in Attribute Grammars'' by the same authors, presented at the 2019 ACM SIGPLAN International Conference on Generative Programming: Concepts & Experiences (GPCE). See DOI https://doi.org/10.1145/3357765.3359517. This paper references release 0.1.0 of this software.

Repositories

Using the Software

To see how the Silver reflection features can be used, see the Silver specification in the grammars directory. Specifically, the files Expr.sv and Value.sv in the grammars/edu.umn.cs.melt.metaocaml/abstractsyntax directory. This material is discussed in the paper mentioned above.

A build script will create the Silver evaluation for this and the run-tests will execute it on some provided test files.

Be sure that Silver version 0.4.2 is used since it contains the new reflection features used here.

Required Software