Did you know the last 15 regular expressions are cached? Or that the .NET engine uses a form of machine code? You can learn this and more from Jeff Moser's in-depth study of how regular expressions work in .NET.
In this presentation recoded during QCon London 2008, Magnus Christerson discusses about the importance of using DSLs which allow business experts to freely express their knowledge about their domain using familiar tools. Henk Kolk presents a concrete example addressing pension fund issues and based on a DSL.
This article introduces RGen, a modeling framework inspired by openArchitectureWare and technologies like the Eclipse's EMF. RGen uses internal DSLs for defining metamodels and offers a full modeling stack for Ruby.
In this article, Andreas Kaltenbach explains how Model-Driven Software Development (MSDS) can help solving backward compatibility problems when creating a newer version of a software which can mean a new API or a new database schema that old clients cannot use. MSDS is used to negotiate the differences between versions to ease the upgrading process.
In this interview filmed at QCon SF 2008, Lennart Augustsson talks about writing DSLs in Haskell, presenting the advantages offered by the language. In that context, he talks about embedded DSLs, static and dynamic languages, syntax and semantics, monads and many other related topics.
This article proposes a new Message Type Architecture to help manage the message formats in a SOA. The approach based on two related DSLs, one for the Enterprise Data Model and one for the Message Types, promotes reuse and helps aligning the Data and SOA governance processes.
In this presentation filmed during OOPSLA 2008, Janos Sztipanovits attempts to tackle the complexity of large scale systems integration. Software, systems and control engineering converge in such systems, raising the integration challenges and demanding a new approach to model-based design.
In this presentation filmed during QCon London 2008, Markus Voelter tried to convince the audience that writing a textual external DSL is fairly straightforward and simple. He took them through the steps needed to create a textual DSL from defining the grammar to processing a domain model.
In this interview recorded at RubyFringe, Jay Phillips talks about VoIP, Asterisk and how his framework Adhearsion makes it easy to write voice applications.
In the beginning of last year, Ehud Lamm launched on Lamba the Ultimate a thread about programming languages predictions for 2008. Several subjects popped up: concurrency, functional programming, future of Java, Ruby, C++, and many others… What really happened in 2008 and what are the prospects for 2009? Bloggers have addressed these questions on demand of James Iry, echoing at last year thread.
Meta Programming System (MPS), a new Language Oriented Programming tool from JetBrains, allows the developers to extend programming languages as well as create Domain Specific Languages (DSLs) for enterprise applications. JetBrains development team recently announced the release of beta version of MPS software.
In this RubyFringe talk, Reginald Braithwaite shows how to write Ruby that reads, writes, and rewrites Ruby. The demos include extending the Ruby language with conditional expressions, new forms of evaluation such as call-by-name and call-by-need, and more.
As key part the Oslo tools is a language for modeling textual DSLs (MGrammar). This article is an an attempt to try and use MGrammar to write a small parser that can interpret dates expressed in natural language.
Given the growing interest in Domain Specific Languages, Michael Feathers provides some reflections on external DSLs, their advantages and pitfalls as well as possible success and failure factors that he believes to be function of far more than the technology.
Based on the book Domain Specific Modeling by S. Kelly and J.-P. Tolvanen, the author of Learning Lisp blog exposed some thoughts on how a modeling language should look like and where UML stands with regard to this. While it appears that UML doesn’t provide enough precision and high enough level of abstraction, another blogger suggests a different approach that may allow its successful use in MDD.