These are books, pages and papers I’ve come across while studying Domain-Specific Languages. I’m slowly adding things here.
Software Design & Architecture
Abelson, Harold / Sussman, Gerald Jay - Structure and Interpretation of Computer Programs - 2nd Edition
Freely Available Online
Amazon Link
Alan Kay - the Early Story of Smalltalk
Alan Kay on the motivations behind Smalltalk.
Freely Available Online
Fowler, Martin - Fluent Interface
Fowler describes an useful technique for chaining methods in order to get more readability. Especially useful for Internal DSLs at static languages such as Java.
Freely Available Online
Fowler, Martin - Humane Interface
Fowler makes a contrast between the kind of interfaces provided by languages like Java and those provided by languages like Ruby. In Java-like you’ll find a small set of construct that you can use to perform all desired operations, in Ruby-like you’ll find constructs that are more developer-friendly.
Freely Available Online
Evans, Eric - Domain-Driven Design
Eric Evans describe a technique to apply Model-Driven Design in object Oriented software by eliminating the gaps between actual software artifacts and the domain. Seminal book on OOP.
Amazon Link
Page-Jones, Meilir - Fundamentals of Object-Oriented Design in UML
Seminal book on object-orientation principles and the very definition of the layered ‘domains’ in a software.
Amazon Link
Raymond, Eric - The Art of Unix Programming
Eric Raymond describes the philosophy of how UNIX programs are develop. A whole chapter is dedicated to minilanguages like awk, sed and Sendmail and how to build them.
Freely Available Online
P. Klint/P. Olivier - The ToolBus coordination architecture -a demonstration
Freely Available Online
Fowler, Martin - Patterns of Enterprise Application Architecture
Fowler’s classic catalog of architectural patterns. Also contains very interesting texts on architecture concepts.
Amazon Link
XLR: Extensible Language and Runtime - The art of turning ideas into code
Very interesting ree software project. The document on its concepts has very nice definitions for semantic and syntactic noise
freely available online
DSLs & LOP
Fowler, Martin - Language Workbenches: The Killer-App for Domain Specific Languages?
Fowler works the concepts behind LOP by using examples. Great text.
Freely Available Online
Ford, Neal - Language Oriented Programming
neal Ford’s keynote presentation on history of computer programming languages and LOP.
Freely Available Online
M. P. Ward - Language Oriented Programming
Very interesting paper on LOP development compared to bottom-up and top-down approaches. Ward uses both DSLs and LOP as somewhat synonyms but his definition of LOP doesn’t imply in tying a language to a specific domain but to a problem being solved.
Freely Available Online
Spinellis, Diomidis - Notable Design Patterns for Domain-Specific Languages
Nice compilation of generic design patterns for DSL implementation.
Freely Available Online
M. Mernik, J. Heering, A.M. Sloane - When and how to develop domain-specific languages
Follow up on Spinellis’ work, catalogs and gives a brief description of patterns that could be used in different stages of LOP development.
Freely Available Online
Arie van Deursen/Paul Klint/Joost Visser - Domain-Specific Languages: An Annotated Bibliography
Very useful condensation of concepts with pointers to were they are better explained.
Freely Available Online
Arie van Deursen/Paul Klint - Little Languages: Little Maintenance?
Nice paper on DSL analysis and design with real cases from the financial market.
Freely Available Online
Markus Völter - InfoQ - Architecture as Language: A story
Markus describes his language to model component-based software architectures. Although I think UML has enough concepts from this domain is a nice and easy text.
Freely Available Online
Rick Kilmer - InfoQ - Ruby and the Art of Domain Specific Languages
Besides some examples o Internal DSLs in Ruby this talk tries to divide Internal DSLs into two kinds: implicit and explicit.
Freely Available Online
Lloyd H. Nakatani, Mark A. Ardis,
Robert G. Olsen and Paul M. Pontrellidomains - Jargons for Domain Engineering
The benefits of Jargons instead of plain DSLs in domain engineering. Most interesting parts are the initial statement on the difficulty to create a DSL without language design knowledge and the final “Avoiding DSL Pitfalls” section.
Available in the ACM Library
Paul Hudak - Building Domain-Specific Embedded Languages
Nice introduction on why DSLs are better at modeling than GPLs. Discuss the creation of languages inside languages, what is called Domain-Specific Embedded Language, using Haskell.
Freely Available Online
Tim Menzies - Notes on Domain-Specific Languages
Very interesting short explanation of DSLs, including comparrisson to 1984’s Newspeak (and indirectly to Sapir-Whorf hypothesis).
Freely Available Online
Steve Cook, Gareth Jones, Stuart Kent, Alan Cameron Wills - Domain-Specific Development with Visual Studio DSL Tools
Book on Microsoft DSL Tools platform.
Amazon Link
Arturo Sánchez-Ruíz, Motoshi Saeki, Benoit Langlois and Roberto Paiano - Domain-Specific Software Development Terminology: Do We All Speak the Same Language?
Very interesting paper that defines a set of concepts from Domain Modeling/Domain-Specific Languages.
Freely Available Online
Benoit Langlois, Consuela-Elena Jitia and Eric Jouenne - DSL Classification
A catalog of DSL tooling characteristics and comparison between the currently available (2007) tools.
Freely Available Online