background preloader

Domain Specific Language Development

Facebook Twitter

Waxeye Parser Generator. GOLD Parsing System - A Free, Multi-Programming Language, Parser Generator. Elkhound and Elsa. Elkhound: A GLR Parser Generatorand Elsa: An Elkhound-based C++ Parser Elkhound is a parser generator, similar to Bison.

Elkhound and Elsa

The parsers it generates use the Generalized LR (GLR) parsing algorithm. GLR works with any context-free grammar, whereas LR parsers (such as Bison) require grammars to be LALR(1). Parsing with arbitrary context-free grammars has two key advantages: (1) unbounded lookahead, and (2) support for ambiguous grammars. Unbounded lookahead is achieved by allowing multiple potential parses to coexist for as long as necessary. What's more, the Elkhound implementation of GLR is competitive with good LR implementations (particularly Bison) for grammars and grammar fragments that are LALR(1). The reason I wrote Elkhound is to be able to write a C++ parser. Elkhound is written in C++, and can generate parsers written in either C++ or Ocaml. Smbase, my utility library. ast, a system for making abstract syntax trees. elkhound, a GLR parser generator. elsa, a C/C++ parser. DSL development: 7 recommendations for Domain Specific Language design based on Domain-Driven Design.

The term Domain-Specific Language (DSL) is heard a lot nowadays.

DSL development: 7 recommendations for Domain Specific Language design based on Domain-Driven Design

A DSL is a language developed to address the need of a given domain. This domain can be a problem domain (e.g. insurance, healthcare, transportation) or a system aspect (e.g. data, presentation, business logic, workflow). The idea is to have a language with limited concepts which are all focused on a specific domain. This leads to higher level languages improving developer productivity and communication with domain experts. In a lot of cases it is even possible to let domain experts use the DSL and develop applications. The question for this article is: how to develop a Domain-Specific Language?

I’ll first explain the DSL lifecycle, consisting of the phases: decision, analysis, design, implementation, deployment, and maintenance. The DSL lifecycle According to Mernik et al. [1] the DSL life cycle consists of five development phases: decision, analysis, design, implementation and deployment. Xtext - Language Development Made Easy! Build the Language You Want!

Xtext - Language Development Made Easy!

Xtext can build full-featured text editors for both general-purpose and domain-specific languages. In the background it uses the LL(*) parser generator of ANTLR, allowing to cover a wide range of syntaxes. Xtext editors have already been implemented for JavaScript, VHDL, Xtend, and many other languages. Compile to Whatever You Want! You define the target format to which your language is compiled. Highly Customizable The default behavior of Xtext is optimized to cover a wide range of languages and use cases. Single Sourcing The grammar definition language of Xtext is not just for the parser. Incremental Compiler Xtext is built to scale, so no matter if you have a few source files written in your language or hundreds of them, the IDE remains responsive and reacts smoothly to any text change.

Compatible with Graphical Editors You can combine the text-based formats created with Xtext with many graphical editing frameworks, e.g. CodeWorker: a parsing tool and a source code generator. Model to business: poseidon for dsls. Gentleware proudly presents this new milestone for model driven software development (MDSD).

model to business: poseidon for dsls

Poseidon for DSLs allows to create domain specific modeling languages (DSLs) within hours. The potential of model-driven software development for increasing productivity can be revealed if the model can well define the characteristics of a domain. For that, the best suited vehicle is a language designed for that domain. Professional tool for your DSL Poseidon for DSLs now makes that possible. Follow up Take a tour and follow this tutorial. Obeo Designer: Domain Specific Modeling for Software Architects.

MetaEdit+ Domain-Specific Modeling tools.