very important article on Quant Research methods
# port for a singleton editing domain (keep all semantic and diagram resources in the same resource set)
# Support for non-canonical diagrams (multiple diagrams for the same semantic model)
# Enable the OpenDiagramEditPolicy
Textual DSLs - Concepts and Tooling (Tutorial 9)
Room: 104 Date: Oct 19, 2008 Time: 13:30 - 17:00
Markus Voelter
Independent
Peter Friese
itemis AG
Bernd Kolb
Independent
Abstract
Domain Specific Languages are becoming important ingredients of software developers' tool chests. The mainstream is divided into two camps: external graphical DSLs (aka Modeling) and internal textual DSLs (via meta programming in languages like Ruby). As experience shows however, a sweet spot for DSLs is textual external DSLs: you can define any grammar you want, you can have domain specific constraint checks and error messages, and processing models is straight forward: generate code or interpret them based on the AST derived from the grammar. Another advantage - especially compared to graphical DSLs - is that they integrate natively with today's development infrastructure (CVS/SVN diff/merge). In this tutorial, I introduce DSLs in general, talk about advantages of textual external DSLs and explain how the Eclipse Xtext tool is used to develop editors for your custom DSLs that resemble modern IDEs with features such as syntax coloring, code completion, real-time constraint checking, customized outlines and inter-file navigation. I will also discuss how to process the models created with the editor. The goal is to provide you with all the concepts, tooling and pointers you need to build your own textual DSLs in a way that is efficient enough for practical project reality.
Objectives
Model-Driven Development and DSLs is clearly a useful technique for software engineering. The ability to describe and analyse aspects/concerns/viewpoints of systems in a formal language that is processable by tools in a great advantage when building systems. One could even argue it is the essence of software development: describing something formally and then systematically and automatically transforming it into executable code. One of the biggest barriers to adoption of the approach (except the traditional skepticism that objects any new development) are
OCaml is a general purpose programming language that combines functional, imperative, and object-oriented programming.
The following links provide background information on the OCaml language and on functional programming:
| Document description | Format | Size | Last update |
OCaml Language Web site. | HTML | ||
| Book: Emmanuel Chailloux, Pascal Manoury, and Bruno Pagano, Developing Applications with Objective Caml. | HTML | ||
| Book: Joshua Smith, Practical OCaml, Apress, 2006, ISBN: 1-59059-620-x. | HTML | ||
| Book: Pierre Weis and Xavier Leroy, Le Langage Caml, Second Edition, Dunod, Paris, 1999, ISBN:2100043838, in French. | |||
| Objective Caml tutorial available in English, French, German, Italian, Japanese, and Korean. | HTML | ||
| Objective Caml course material. | HTML | ||
| Objective Caml 3.10 documentation. | HTML | | |
| Presentation by Alain Frisch on the use of OCaml at LexiFi (in French) | Dec 2008 | ||
| LexiFi is a member of the Caml Consortium, which also includes CEA, Citrix, Dassault Aviation, Dassault Systèmes, Intel, Jane Street Capital, Microsoft, and SimCorp. | HTML | Mar 2009 | |
| Paper by Simon Frankau et al. on a Haskell application, developed at Barclays Capital, that uses an embedded domain specific functional language to represent and process exotic financial derivatives. | Jul 2008 |