A language prototyping tool based on semantic building blocks

1Citations
Citations of this article
2Readers
Mendeley users who have this article in their library.
Get full text

Abstract

We present a Language Prototyping System that facilitates the modular development of interpreters from semantic specifications. The theoretical basis of our system is the integration of ideas from generic programming and modular monadic semantics. The system is implemented as a domain-specific language embedded in Haskell and contains an interactive framework for language prototyping. In the monadic approach, the semantic spscification of a programming language is captured as a function ∑ → MV where ∑ represents the abstract syntax, M the computational monad, and V the domain value. In order to obtain more extensibility, we use folds or catamorphisms over the fixpoint of non-recursive pattern functors that capture the structure of the abstract syntax. For each pattern functor F, the semantic specifications are defined as independent F-Algebras whose carrier is M V, where M is the computational monad and V models the domain value. The copmputational monad M can itself be obtained from the composition of several monad transformers applied to a base monad, and the domain value V can be defined using extensible union types. In this paper, we also show that when the abstract syntax contains several categories, it is possible to define many-sorted algebras obtaining the same modularity. © 2011 Springer-Verlag Berlin Heidelberg.

Cite

CITATION STYLE

APA

Labra Gayo, J. E., Cueva Lovelle, J. M., Luengo Díez, M. C., & González Rodríguez, B. M. (2001). A language prototyping tool based on semantic building blocks. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 2178 LNCS, pp. 597–611). Springer Verlag. https://doi.org/10.1007/3-540-45654-6_46

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free