LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Data structures and program transformation
Science of Computer Programming
Notions of computation and monads
Information and Computation
The essence of functional programming
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Building interpreters by composing monads
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Monad transformers and modular interpreters
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Semantic Lego
Algebra of programming
First-class polymorphism with type inference
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A new approach to generic functional programming
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Deriving backtracking monad transformers
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Domain-specific languages: an annotated bibliography
ACM SIGPLAN Notices
Components as processes: an exercise in coalgebraic modeling
Fourth International Conference on Formal methods for open object-based distributed systems IV
Modular Denotational Semantics for Compiler Construction
ESOP '96 Proceedings of the 6th European Symposium on Programming Languages and Systems
Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire
Proceedings of the 5th ACM Conference on Functional Programming Languages and Computer Architecture
Implementing Closed Domain-Specific Languages
SAIG '00 Proceedings of the International Workshop on Semantics, Applications, and Implementation of Program Generation
A Monad for Basic Java Semantics
AMAST '00 Proceedings of the 8th International Conference on Algebraic Methodology and Software Technology
ECOOP '98 Workshop ion on Object-Oriented Technology
An Object-Oriented Abstract Machine as the Substrate for an Object-Oriented Operating System
ECOOP '97 Proceedings of the Workshops on Object-Oriented Technology
Applied Semantics, International Summer School, APPSEM 2000, Caminha, Portugal, September 9-15, 2000, Advanced Lectures
Merging Monads and Folds for Functional Programming
Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques-Tutorial Text
Modular Domain Specific Languages and Tools
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Modular Compilers Based on Monad Transformers
ICCL '98 Proceedings of the 1998 International Conference on Computer Languages
Modular monadic semantics and compilation
Modular monadic semantics and compilation
Mathematical Structures in Computer Science
Hi-index | 0.00 |
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.