Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Domain-specific languages: an annotated bibliography
ACM SIGPLAN Notices
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Architecture Software Using: A Methodology for Language Development
PLILP '98/ALP '98 Proceedings of the 10th International Symposium on Principles of Declarative Programming
Modular Domain Specific Languages and Tools
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Domain-Driven Design: Tacking Complexity In the Heart of Software
Domain-Driven Design: Tacking Complexity In the Heart of Software
Reverse engineering of UML specifications from java programs
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
When and how to develop domain-specific languages
ACM Computing Surveys (CSUR)
Recovering UML class models from C++: A detailed explanation
Information and Software Technology
The Factory Pattern in API Design: A Usability Evaluation
ICSE '07 Proceedings of the 29th international conference on Software Engineering
The Programmer's Lexicon, Volume I: The Verbs
SCAM '07 Proceedings of the Seventh IEEE International Working Conference on Source Code Analysis and Manipulation
Practical API Design: Confessions of a Java Framework Architect
Practical API Design: Confessions of a Java Framework Architect
Framework design guidelines: conventions, idioms, and patterns for reusable .net libraries
Framework design guidelines: conventions, idioms, and patterns for reusable .net libraries
WebDSL: A Case Study in Domain-Specific Language Engineering
Generative and Transformational Techniques in Software Engineering II
Evaluation of development tools for domain-specific modeling languages
SAM'06 Proceedings of the 5th international conference on System Analysis and Modeling: language Profiles
Large-scale, AST-based API-usage analysis of open-source Java projects
Proceedings of the 2011 ACM Symposium on Applied Computing
A case study on API generation
SAM'10 Proceedings of the 6th international conference on System analysis and modeling: about models
Hi-index | 0.01 |
“Library design is language design” [1]. The development of a smart program library is very similar to the creation of a domain specific language (DSL). Both are currently created in an ad-hoc manner, taking account of best practices and software patterns. Creating new languages and the tools needed to integrate them can be very cumbersome. We propose a reproducible, model-driven methodology to add automation to the DSL-creation process. Our novel approach presents an easy way to design and generate smart, API-wrapping libraries, similar to internal DSLs. These libraries increase the usability of an existing API and can be easily integrated into existing software development tool chains. To generate these DSLs, we propose an enhanced code generation that applies usability-enhancing software patterns. Our current generator leverages the Expression Builder pattern, which is described in detail. We validate our methodology and our enhanced code generation by applying it to Java APIs resulting in smart Java libraries that we call “dotLings”.