Metaclasses are first class: The ObjVlisp Model
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Syntactic abstraction in Scheme
Lisp and Symbolic Computation
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
DSL implementation using staging and monads
Proceedings of the 2nd conference on Domain-specific languages
Domain-specific languages: an annotated bibliography
ACM SIGPLAN Notices
An efficient context-free parsing algorithm
Communications of the ACM
Growing languages with metamorphic syntax macros
PEPM '02 Proceedings of the 2002 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
The Java syntactic extender (JSE)
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A Theory of Objects
The ICON Programming Language
Compiling language definitions: the ASF+SDF compiler
ACM Transactions on Programming Languages and Systems (TOPLAS)
Smalltalk-80: The Language
Template meta-programming for Haskell
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
Higher-Order and Symbolic Computation
Modular Domain Specific Languages and Tools
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Extensible Programming for the 21st Century
Queue - Programming Languages
Compile-time meta-programming in a dynamically typed OO language
DLS '05 Proceedings of the 2005 symposium on Dynamic languages
TXL - A Language for Programming Language Tools and Applications
Electronic Notes in Theoretical Computer Science (ENTCS)
Accomplishments and research challenges in meta-programming
SAIG'01 Proceedings of the 2nd international conference on Semantics, applications, and implementation of program generation
WebDSL: A Case Study in Domain-Specific Language Engineering
Generative and Transformational Techniques in Software Engineering II
Software Language Engineering
Model-Centric, Context-Aware Software Adaptation
Software Engineering for Self-Adaptive Systems
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Why Smalltalk wins the host languages shootout
IWST '09 Proceedings of the International Workshop on Smalltalk Technologies
A DSL toolkit for deferring architectural decisions in DSL-based software design
Information and Software Technology
Formalizing Homogeneous Language Embeddings
Electronic Notes in Theoretical Computer Science (ENTCS)
Experiences with an icon-like expression evaluation system
Proceedings of the 6th symposium on Dynamic languages
Embedding languages without breaking tools
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Incremental concrete syntax for embedded languages
Proceedings of the 2011 ACM Symposium on Applied Computing
Comparative Study of DSL Tools
Electronic Notes in Theoretical Computer Science (ENTCS)
Growing a language environment with editor libraries
Proceedings of the 10th ACM international conference on Generative programming and component engineering
Integrated language definition testing: enabling test-driven language development
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
SugarJ: library-based syntactic language extensibility
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Specification and verification of meta-programs
PEPM '12 Proceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation
Proceedings of the 8th symposium on Dynamic languages
Language composition untangled
Proceedings of the Twelfth Workshop on Language Descriptions, Tools, and Applications
Incremental concrete syntax for embedded languages with support for separate compilation
Science of Computer Programming
Self model-driven engineering through metaprograms
Proceedings of the 17th Panhellenic Conference on Informatics
Unipycation: a case study in cross-language tracing
Proceedings of the 7th ACM workshop on Virtual machines and intermediate languages
Hi-index | 0.00 |
Domain specific languages (DSLs) are mini-languages that are increasingly seen as being a valuable tool for software developers and non-developers alike. DSLs must currently be created in an ad-hoc fashion, often leading to high development costs and implementations of variable quality. In this article, I show how expressive DSLs can be hygienically embedded in the Converge programming language using its compile-time meta-programming facility, the concept of DSL blocks, and specialised error reporting techniques. By making use of pre-existing facilities, and following a simple methodology, DSL implementation costs can be significantly reduced whilst leading to higher quality DSL implementations.