Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Template meta-programming for Haskell
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
OpenJava: A Class-Based Macro System for Java
Proceedings of the 1st OOPSLA Workshop on Reflection and Software Engineering: Reflection and Software Engineering, Papers from OORaSE 1999
Domain Specific Languages
The spoofax language workbench: rules for declarative specification of languages and IDEs
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Backstage Java: making a difference in metaprogramming
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
SugarJ: library-based language extensibility
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
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
Proceedings of the 34th International Conference on Software Engineering
Principled parsing for indentation-sensitive languages: revisiting landin's offside rule
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
GlobalDSL'13: First Workshop on the Globalization of Domain Specific Languages
Proceedings of the First Workshop on the Globalization of Domain Specific Languages
Hi-index | 0.00 |
Domain-specific languages improve ease-of-use, expressiveness and verifiability, but defining and using different DSLs within a single application remains difficult. We introduce an approach for embedded DSLs where 1) whitespace delimits DSL-governed blocks, and 2) the parsing and type checking phases occur in tandem so that the expected type of the block determines which domain-specific parser governs that block. We argue that this approach occupies a sweet spot, providing high expressiveness and ease-of-use while maintaining safe composability. We introduce the design, provide examples and describe an ongoing implementation of this strategy in the Wyvern programming language. We also discuss how a more conventional keyword-directed strategy for parsing of DSLs can arise as a special case of this type-directed strategy.