BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Domain Specific Languages Content on InfoQ

  • Book on Leveraging Domain-Specific Languages by Martin Fowler with Rebecca Parsons

    In their new book Martin Fowler and Rebecca J. Parsons address the topic of Domain-Specific Languages. “Domain-Specific Languages” does not only address the concepts behind DSLs, but also tries to explain the subject in a pragmatic manner using examples in Java, C# and other languages.The book contains different patterns that reveal best practices in designing DSLs.

  • Concrete: Rich, Customizable DSL Editors for the Browser

    Text-based DSLs are useful, an custom editor for the DSL is even better. Concrete allows to build customized editors for JSON-based DSLs/Models. InfoQ talks to Concrete's creator Martin Thiede.

  • Xtext/TS - a Typesystem Framework for Xtext

    Since the release of version 1.0, it has become feasible to build complex expression languages in Xtext. However, once you have expressions, you typically also need a type system. In this article Markus Völter describes a framework for specifying type systems for expression languages built using Xtext.

  • DSL Interaction with Program Transformation in TXL

    This article discusses a proposed solution for solving the interaction problem between two Domain Specific Languages (DSLs) using TXL and dot programming languages and Graphviz graph visualization tool. TXL allows the developers to concentrate on data analysis and information processing aspects by making the other tasks like source text parsing and results formatting effortless.

  • Scaling Clojure Web Apps with Google AppEngine

    InfoQ takes a look at how a combo of Clojure and Google AppEngine (GAE) powers a new online project management tool, how Clojure integrates with GAE's key/value store, and the power of LISP.

  • DSL Evolution

    In this article, author Peter Bell discusses the best practices on how to evolve the DSLs using techniques like backwards compatibility through versioning, to automated transformation of statements.

  • Strategic Domain Driven Design with Context Mapping

    Many approaches to object oriented modeling tend not to scale well when the applications grow in size and complexity. Context Mapping technique can be used to manage the complexity in large software development projects. In this article, author Alberto Brandolini discusses the many sides of bounded contexts and how to use them to build a context map to support key decisions in a software project.

  • Evolving Java Without Changing the Language

    InfoQ examines three techniques for encouraging experimentation with potential new Java language features - DSLs, the annotation processor, and moving the syntactic sugar from the language to the IDE.

  • Clojure and Rails - the Secret Sauce Behind FlightCaster

    FlightCaster, a realtime flight delay site, is built on Clojure and Hadoop for the statistical analysis. The web frontend is built with Ruby on Rails and hosted on Heroku. We talked to Bradford Cross about Clojure, functional programming and tips for OOP developers interested in making the jump.

  • Metamodel Oriented Programming

    In this article, Jean-Jacques Dubray questions the belief that code and models are two separate worlds. He presents a unified view of Model Driven Engineering, Architecture and Programming models. In particular, he introduces a novel approach to specify execution element semantics in DSLs.

  • Developing a Complex External DSL

    In this article Vaughn Vernon explains the difference between internal and external DSLs and shows the steps involved in developing a complex external DSL.

  • Staying Safe and Sound Thanks to MDSD

    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.

BT