Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Concrete syntax for data objects in functional languages
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Engineering a simple, efficient code-generator generator
ACM Letters on Programming Languages and Systems (LOPLAS)
Haskell and XML: generic combinators or type-based translation?
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Software—Practice & Experience
The C++ Programming Language, Third Edition
The C++ Programming Language, Third Edition
Composable and compilable macros:: you want it when?
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Toward an engineering discipline for grammarware
ACM Transactions on Software Engineering and Methodology (TOSEM)
LISP 1.5 Programmer's Manual
When and how to develop domain-specific languages
ACM Computing Surveys (CSUR)
Generalized type-based disambiguation of meta programs with concrete object syntax
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Implicitly heterogeneous multi-stage programming
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Language embedding and optimization in mython
DLS '09 Proceedings of the 5th symposium on Dynamic languages
Hi-index | 0.00 |
The MetaBorg usage pattern allows concrete syntax to be associated with application programmer interfaces (API's). Once a concrete syntax is defined, library writers use the Stratego language to write transformations from the concrete syntax to API data and calls in the host language. The result is a compile time translator from the combined host and domain languages to the host language. This translator is not programmable at compile time, and little or none of the infrastructure can be leveraged by a program at run time.These limitations make the MetaBorg pattern difficult or impractical to use in interactive programming. One possibility for adding interactivity to language assimilation is the application of the MetaBorg pattern to Stratego/XT itself. Assimilating language tools into languages, especially dynamic languages, better serves incremental and interactive development. Furthermore, language tool assimilation allows experimentation with language extension at compiler-compile time, compile time, load time and run time.This paper looks at language tool assimilation and makes three contributions. First, it introduces the domain-specific optimization use case as an additional problem that Stratego and related technology might solve. Second, it "partially evaluates" the MetaBorg pattern on the domain-specific languages used in Stratego/XT. Third, and finally, it generalizes the result of the MetaBorg partial evaluation, identifying several applications and application strategies.