building DSLs with language workbenches

Size: px
Start display at page:

Download "building DSLs with language workbenches"

Transcription

1 ThoughtWorks building DSLs with language workbenches NEAL FORD software architect / meme wrangler ThoughtWorks nford@thoughtworks.com 3003 Summit Boulevard, Atlanta, GA memeagora.blogspot.com

2 ThoughtWorks

3 overview language workbenches building grammars or pseudo-grammars generation templates generation using workbench DSLs

4 language workbenches a tool that supports language oriented programming Intentional Software (Charles Simonyi) Xtext (openarchitectureware) MPS (JetBrains)

5 compilation since cs-101 Parse Compile class Foo { private int id; } Editable Representation Storage Representation Executable Representation

6

7 post- ide s first java ide to edit the abstract syntax directly enables refactoring

8 workbenches Versioning Storage class Foo { private int id; } Workbench Projections Document Window Tab Tab Tab Label Menu Editable Label Text Representation Field Storage Representation Label Text Field Text Field Text Field Label Text Field Text Field Text Field Executable Representation

9 grammars

10 Ms. Grant s secret panel

11 the DSL events doorclosed D1CL drawopened D2OP end commands unlockpanel PNUL lockpanel PNLK end

12 the grammar list : eventlist commandlist; eventlist : 'events' eventdec* 'end'; eventdec : identifier identifier; commandlist : 'commands' commanddec* 'end'; commanddec : identifier identifier; events doorclosed D1CL drawopened D2OP end commands unlockpanel PNUL lockpanel PNLK end

13 framework/tool for development of external textual DSLs based on openarchitectureware you provide a grammar in their format Xtext produces: ANTLR grammar, parser, abstract syntax tree meta-model, and Eclipse editor

14 Xtext project

15 Xtext artifacts DSL source generated source meta-data for editor plug-in editor plug-in generators

16

17 ANTLR grammar

18 ANTLR grammar...

19 code generation

20 templates

21 template file

22 template

23 main()

24 templates

25 eclipse editor

26 Xtext most mature of the text-based DSL tools still extricating itself from openarchitectureware & MDA background heavily Eclipse based (editors, project structure, etc.) efficient generation of DSL, grammar, code generation, & templates nice editor projection (acts like source file)

27

28 bakery life competition is brutal! incentives to encourage repeat customers......but the other guys do the same thing flexible business rules easy to define & change

29 establishing profiles

30 discounts

31 discount

32 discount implementation

33 getdiscount()

34 internal project by JetBrains based on lessons learned with IntelliJ used internally to build new products created by Sergey Dmitriev & Konstantin Solomatov actively used now for 3+ years

35

36 new MPS project

37 concepts fundamental building block like a class: data, behavior, encapsulation also editors, code generators implemented in base language properties, events, methods, and links

38 concept declaration

39 concept editor

40 concept editor

41 smart help

42 discount

43 reduction rule mapping

44 reduction template

45 discount template

46 using the editor

47 code generation

48

49 grammar? encapsulated within

50 refactoring

51 find usages

52 found usages

53 MPS is written in MPS

54

55 composition

56 composing DSLs

57 comparisons Xtext MPS Intentional grammar EBNF/antlr encapsulated? environment Eclipse MPS? code generation projections project ecosystem availability via Eclipse EMF & text via MPS or IntelliJ text-like (for now) internal rich Eclipse MPS? now! open source soon open source? commercial

58 ThoughtWorks questions? please fill out the session evaluations slides & samples available at nealford.com NEAL FORD software architect / meme wrangler ThoughtWorks This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 2.5 License. nford@thoughtworks.com 3003 Summit Boulevard, Atlanta, GA memeagora.blogspot.com

59 ThoughtWorks resources Xtext MPS Intentional Softare Martin Fowler s DSL Work in Progress

building dsl s in static & dynamic languages

building dsl s in static & dynamic languages ThoughtWorks building dsl s in static & dynamic languages NEAL FORD thoughtworker / meme wrangler ThoughtWorks 14 Wall St, Suite 2019, New York, NY 10005 nford@thoughtworks.com www.nealford.com www.thoughtworks.com

More information

design patterns in ruby

design patterns in ruby ThoughtWorks design patterns in ruby NEAL FORD software architect / meme wrangler ThoughtWorks nford@thoughtworks.com 3003 Summit Boulevard, Atlanta, GA 30319 www.nealford.com www.thoughtworks.com memeagora.blogspot.com

More information

comparing groovy & jruby *

comparing groovy & jruby * ThoughtWorks comparing groovy & jruby * * please check all knives, guns, pitchforks, and torches at the door NEAL FORD software architect / meme wrangler ThoughtWorks nford@thoughtworks.com 3003 Summit

More information

introduction to jruby

introduction to jruby ThoughtWorks introduction to jruby NEAL FORD software architect / meme wrangler ThoughtWorks nford@thoughtworks.com 3003 Summit Boulevard, Atlanta, GA 30319 www.nealford.com www.thoughtworks.com memeagora.blogspot.com

More information

Domain-Specific Languages Language Workbenches

Domain-Specific Languages Language Workbenches Software Engineering with and Domain-Specific Languages Language Workbenches Peter Friese Itemis peter.friese@itemis.de Markus Voelter Independent/itemis voelter@acm.org 1 Programming Languages C# Erlang

More information

Programming Modeling Two Worlds? Programmierung Modellierung Zwei Welten? und. and. Markus Voelter Independent/itemis

Programming Modeling Two Worlds? Programmierung Modellierung Zwei Welten? und. and. Markus Voelter Independent/itemis und Programmierung Modellierung Zwei Welten? and Modeling Two Worlds? Markus Voelter Independent/itemis voelter@acm.org Markus Voelter Independent/itemis voelter@acm.org 1 Languages C# Erlang C++ Python

More information

Extending Java TM TM And Developing DSLs With JetBrains MPS Open- Source Language Workbench

Extending Java TM TM And Developing DSLs With JetBrains MPS Open- Source Language Workbench Extending Java TM TM And Developing DSLs With JetBrains MPS Open- Source Language Workbench Konstantin Solomatov JetBrains Lead Developer for JetBrains MPS Project 1 Agenda > Extending languages. Why bother?

More information

The Curious Clojureist

The Curious Clojureist The Curious Clojureist NEAL FORD director / software architect meme wrangler ThoughtWorks nford@thoughtworks.com 2002 Summit Boulevard, Atlanta, GA 30319 nealford.com thoughtworks.com memeagora.blogspot.com

More information

Rails in the Large: Building the Biggest (Enterprise) Rails Application in the World

Rails in the Large: Building the Biggest (Enterprise) Rails Application in the World ThoughtWorks Rails in the Large: Building the Biggest (Enterprise) Rails Application in the World PAUL GROSS software developer / consultant ThoughtWorks NEAL FORD software architect / meme wrangler ThoughtWorks

More information

Rascal Tutorial. Tijs van der Storm Wednesday, May 23, 12

Rascal Tutorial. Tijs van der Storm Wednesday, May 23, 12 Rascal Tutorial Tijs van der Storm storm@cwi.nl / @tvdstorm About me Researcher at Centrum Wiskunde & Informatica (CWI), Amsterdam, NL Co-designer of Rascal Teacher at Universiteit van Amsterdam (UvA)

More information

Language Extension and Composition with Language Workbenches

Language Extension and Composition with Language Workbenches Language Extension and Composition with Language Workbenches Eelco Visser TU Delft E.Visser@tudelft.nl Markus Voelter Independent/itemis voelter@acm.org Different Worlds Programming Tools!= Modeling Tools

More information

Variability differences among products in PL. Variability in PLE. Language Workbenches. Language Workbenches. Product Line Engineering

Variability differences among products in PL. Variability in PLE. Language Workbenches. Language Workbenches. Product Line Engineering PPL 2009 Keynote Markus Voelter Indepenent/itemis voelter@acm.org http://www.voelter.de Language Workbenches in Product Line Engineering Variability in PLE Language Workbenches in Domain Specific Languages

More information

When Modeling meets Productivity. Sven Efftinge - itemis

When Modeling meets Productivity. Sven Efftinge - itemis When Modeling meets Productivity Sven Efftinge - itemis I Eclipse JDT I GIT So what s the Problem? It s the Language not the Tooling! Level of Abstraction Reuse existing, proven technology and apply

More information

Generic Language Technology

Generic Language Technology Generic Language Technology Working with Xtext Introduction We have used Xtext to define a concrete syntax for a domain-specific language called Simple Language of Communicating Objects (SLCO). This language

More information

Introduction to OpenArchitectureWare

Introduction to OpenArchitectureWare Introduction to OpenArchitectureWare Dr. Neil Loughran Neil.Loughran@sintef.no 20 th April 2009 ICT 1 Objective To give some insights into an alternative model transformation approach i.e. OpenArchitectureWare

More information

the productive programer: mechanics

the productive programer: mechanics ThoughtWorks the productive programer: mechanics NEAL FORD software architect / meme wrangler ThoughtWorks nford@thoughtworks.com 3003 Summit Boulevard, Atlanta, GA 30319 www.nealford.com www.thoughtworks.com

More information

Development of Domain-Specific Languages based on Generic Syntax and Functional Composition

Development of Domain-Specific Languages based on Generic Syntax and Functional Composition Development of Domain-Specific Languages based on Generic Syntax and Functional Composition Sergej Chodarev Department of Computers and Informatics Faculty of Electrical Engineering and Informatics Technical

More information

Introduction to Dependable Systems: Meta-modeling and modeldriven

Introduction to Dependable Systems: Meta-modeling and modeldriven Introduction to Dependable Systems: Meta-modeling and modeldriven development http://d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics 3 Software development Automated software

More information

Dániel Darvas Domain-specific languages (DSLs): what, how and when?

Dániel Darvas Domain-specific languages (DSLs): what, how and when? Dániel Darvas Domain-specific languages (DSLs): what, how and when? ICE Tea 21/02/2014 Outline Theory Concept of DSLs Technology Support for DSLs Reality Some details of the ST Example DSL Theory / Concept

More information

10 Thoughts 2 Demos * Discussions

10 Thoughts 2 Demos * Discussions Developing Embedded software with Language Workbenches Stuttgart, 20.09.2011 Markus Voelter Independent/itemis voelter@acm.org 10 Thoughts 2 Demos * Discussions 1 1 Embedded Development Two Classes in

More information

New and Noteworthy. Peter Friese Bernd Kolb

New and Noteworthy. Peter Friese  Bernd Kolb New and Noteworthy Peter Friese peter.friese@gentleware.com http://www.gentleware.com Bernd Kolb b.kolb@kolbware.de http://www.kolbware.de What is openarchitectureware? oaw Languages New: AOP Mechanisms

More information

A little History Domain Specific Languages Examples Tools Benefits A more theoretical View Programming and Modeling The LWES Project Bonus: Best

A little History Domain Specific Languages Examples Tools Benefits A more theoretical View Programming and Modeling The LWES Project Bonus: Best Domain Specific Languages Markus Voelter Independent/itemis voelter@acm.org A little History Domain Specific Languages Examples Tools Benefits A more theoretical View Programming and Modeling The LWES

More information

Domain Specific - a Binary Decision?

Domain Specific - a Binary Decision? Domain Specific - a Binary Decision? Markus Voelter independent/itemis Ötztaler Strasse 38 70327 Stuttgart, Germany voelter@acm.org Bernhard Merkle SICK AG R&D Software Engineering Erwin-Sick-Str.1 79183

More information

Automatized Generating of GUIs for Domain-Specific Languages

Automatized Generating of GUIs for Domain-Specific Languages Automatized Generating of GUIs for Domain-Specific Languages Michaela Bačíková, Dominik Lakatoš, and Milan Nosáľ Technical University of Košice, Letná 9, 04200 Košice, Slovakia, (michaela.bacikova, dominik.lakatos,

More information

SOA = Same Old Architecture?

SOA = Same Old Architecture? SOA = Same Old Architecture? Gregor Hohpe Software Engineer www.eaipatterns.com Could It Be So Easy? WSDL SOAP WS-* Int MyMethod(String text) { } WebMethod Cut Copy Paste Buzzword compliant, but not a

More information

Domain-Specific. Languages. Martin Fowler. AAddison-Wesley. Sydney Tokyo. With Rebecca Parsons

Domain-Specific. Languages. Martin Fowler. AAddison-Wesley. Sydney Tokyo. With Rebecca Parsons Domain-Specific Languages Martin Fowler With Rebecca Parsons AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Paris Madrid Sydney Tokyo Singapore

More information

Software Factories Application within the ASE5 project

Software Factories Application within the ASE5 project 22 nd - 24 th October 2013 Software Factories Application within the ASE5 project Nieves Salor Moral (n.salor_moral@vitrocisetbelgium.com) ESTEC, Noordwijk, The Netherlands Agenda Software Factories Decision

More information

Xtext. Introduction and Real World Samples. Hendrik Bünder, itemis AG. itemis AG

Xtext. Introduction and Real World Samples. Hendrik Bünder, itemis AG. itemis AG Xtext Introduction and Real World Samples Hendrik Bünder, itemis AG Who is this guy? Hendrik Bünder IT-Consultant Agenda Introduction to Xtext What, How, Why? Common DSLs DSLs that no longer impress anybody.

More information

Introduction to Model Driven Engineering using Eclipse. Frameworks

Introduction to Model Driven Engineering using Eclipse. Frameworks Introduction to Model Driven Engineering using Eclipse Model Driven Development Generator s Bruce Trask Angel Roman MDE Systems Abstraction Model Driven Development Refinement 1 Part I Agenda What is Model

More information

ADT: Eclipse development tools for ATL

ADT: Eclipse development tools for ATL ADT: Eclipse development tools for ATL Freddy Allilaire (freddy.allilaire@laposte.net) Tarik Idrissi (tarik.idrissi@laposte.net) Université de Nantes Faculté de Sciences et Techniques LINA (Laboratoire

More information

ABAP DSL Workbench SAP TechED 2016

ABAP DSL Workbench SAP TechED 2016 ABAP DSL Workbench SAP TechED 2016 Barcelona, November 2016-0 - Hello. Hello. Example Asia Diner Yes? Number 77. Take away? No. Hello. Hello. Hello. Hello. As always? Yes. As always? Yes. Where are the

More information

with openarchitectureware

with openarchitectureware Model-Driven Development with openarchitectureware Markus Völter voelter@acm.orgorg www.voelter.de Sven Efftinge sven@efftinge.de www.efftinge.de Bernd Kolb bernd@kolbware.de www.kolbware.de 2006-7 Völter,

More information

Compositional Model Based Software Development

Compositional Model Based Software Development Compositional Model Based Software Development Prof. Dr. Bernhard Rumpe http://www.se-rwth.de/ Seite 2 Our Working Groups and Topics Automotive / Robotics Autonomous driving Functional architecture Variability

More information

DSL vs. Library API Shootout

DSL vs. Library API Shootout DSL vs. Library API Shootout Rich Unger Salesforce.com Jaroslav Tulach Oracle Agenda What do we mean by DSL? What do we mean by library? When is it good to use a DSL? When is it a bad idea? Evolution Versioning

More information

The Eclipse Modeling Framework and MDA Status and Opportunities

The Eclipse Modeling Framework and MDA Status and Opportunities The Eclipse Modeling Framework and MDA Status and Opportunities David Frankel Consulting df@davidfrankelconsulting.com www.davidfrankelconsulting.com Portions adapted from the book Model Driven Architecture:

More information

project in an industrial context

project in an industrial context Anatomy of a domain-specific language project in an industrial context Development and examination of a DSL demonstrator for elevator controllers Software Engineering, Architecture and Platform Technologies

More information

Advanced Enterprise Debugging

Advanced Enterprise Debugging ThoughtWorks Neal Ford TS-4588 Advanced Enterprise Debugging ThoughtWorker/Meme Wrangler ThoughtWorks www.thoughtworks.com 2007 JavaOne SM Conference TS-4588 What This Session Covers Forensic debugging

More information

DSL Implementation. ... with language Workbenches. v1.1 Jan 16, Markus Voelter independent/itemis

DSL Implementation. ... with language Workbenches. v1.1 Jan 16, Markus Voelter independent/itemis DSL Implementation... with language Workbenches. v1.1 Jan 16, 2013 Markus Voelter independent/itemis voelter@acm.org www.voelter.de voelterblog.blogspot.de @markusvoelter +Markus Voelter Last Year s Talk

More information

the productive programmer

the productive programmer ThoughtWorks the productive programmer NEAL FORD software architect / meme wrangler ThoughtWorks nford@thoughtworks.com 3003 Summit Boulevard, Atlanta, GA 30319 www.nealford.com www.thoughtworks.com memeagora.blogspot.com

More information

arxiv: v1 [cs.se] 30 Mar 2011

arxiv: v1 [cs.se] 30 Mar 2011 A Comparative Case Study of Code Reuse With Language Oriented Programming David H. Lorenz 1 and Boaz Rosenan 2 Open University of Israel, 1 University Rd., P.O.Box 808, Raanana 43107 Israel, arxiv:1103.5901v1

More information

What Every Xtext User Wished to Know Industry Experience of Implementing 80+ DSLs

What Every Xtext User Wished to Know Industry Experience of Implementing 80+ DSLs What Every Xtext User Wished to Know Industry Experience of Implementing 80+ DSLs EclipseCon Europe 2016 2016-10-26 Roman Mitin Avaloq Evolution AG Allmendstrasse 140 8027 Zurich Switzerland T +41 58 316

More information

Model driven Engineering & Model driven Architecture

Model driven Engineering & Model driven Architecture Model driven Engineering & Model driven Architecture Prof. Dr. Mark van den Brand Software Engineering and Technology Faculteit Wiskunde en Informatica Technische Universiteit Eindhoven Model driven software

More information

Transition from EBNF to Xtext

Transition from EBNF to Xtext Transition from EBNF to Xtext Jianan Yue State Key Laboratory for Novel Software Technology, Nanjing University Department of Computer Science & Technology, Nanjing University 210023 Nanjing, China b111220168@smail.nju.edu.cn

More information

Install and Configure ANTLR 4 on Eclipse and Ubuntu

Install and Configure ANTLR 4 on Eclipse and Ubuntu Install and Configure ANTLR 4 on Eclipse and Ubuntu Ronald Mak Department of Computer Engineering Department of Computer Science January 20, 2019 Introduction ANTLR 4 ( Another Tool for Language Recognition

More information

PEG-Based Language Workbench

PEG-Based Language Workbench PEG-Based Language Workbench Yuriy Korenkov, Ivan Loginov, Arthur Lazdin Saint Petersburg National Research University of Information Technologies, Mechanics and Optics Saint Petersburg, Russia ged.yuko,

More information

openarchitectureware 4.1 An introduction

openarchitectureware 4.1 An introduction openarchitectureware 4.1 An introduction Markus Voelter, www.voelter.de, openarchitectureware (oaw) is a suite of tools and components assisting with model driven software development, more precisely it

More information

Dottorato di Ricerca in Informatica. Università di Bologna e Padova. Whole Platform. Riccardo Solmi. March 2005

Dottorato di Ricerca in Informatica. Università di Bologna e Padova. Whole Platform. Riccardo Solmi. March 2005 Dottorato di Ricerca in Informatica Università di Bologna e Padova Whole Platform Riccardo Solmi March 2005 Coordinatore: Prof. Özalp Babaoğlu Tutore: Prof. Andrea Asperti To my mother and my grandmother

More information

Comparing graphical DSL editors

Comparing graphical DSL editors Comparing graphical DSL editors AToM 3 vs GMF & MetaEdit+ Nick Baetens Outline Introduction MetaEdit+ Specifications Workflow GMF Specifications Workflow Comparison 2 Introduction Commercial Written in

More information

BIG MODELS AN ALTERNATIVE APPROACH

BIG MODELS AN ALTERNATIVE APPROACH 2. BIG MODELS AN ALTERNATIVE APPROACH Whitepaper Eclipse Summit 2008 Modeling Symposium Jos Warmer, Ordina (jos.warmer@ordina.nl) Abstract Scaling up modeling within project runs into many practical problems.

More information

CISC836: Models in Software Development: Methods, Techniques and Tools

CISC836: Models in Software Development: Methods, Techniques and Tools CISC836: Models in Software Development: Methods, Techniques and Tools Topic 4: Code Generation with EMF Meta modeling Languages for meta models: Ecore Using EMF and Ecoreto define a data model Using EMF

More information

Language engineering and Domain Specific Languages

Language engineering and Domain Specific Languages Language engineering and Domain Specific Languages Perdita Stevens School of Informatics University of Edinburgh Plan 1. Defining languages 2. General purpose languages vs domain specific languages 3.

More information

What are Requirements?

What are Requirements? Domain Specific Languages and Requirements (Engineering) Markus Voelter www.voelter.de voelter@acm.org What are Requirements? 1 a requirement is a singular documented need of what a particular product

More information

POLITECNICO DI TORINO Repository ISTITUZIONALE

POLITECNICO DI TORINO Repository ISTITUZIONALE POLITECNICO DI TORINO Repository ISTITUZIONALE Tool-automation for supporting the DSL learning process Original Tool-automation for supporting the DSL learning process / Tomassetti F.; Figueroa C.; Ratiu

More information

Comparison and merge use-cases from practice with EMF Compare

Comparison and merge use-cases from practice with EMF Compare Comparison and merge use-cases from practice with EMF Compare Laurent Delaigue Philip Langer EMF Compare Working with models Comparing text files EMF Compare Working with models Comparing models EMF Compare

More information

Plan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language

Plan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language Plan Language engineering and Domain Specific Languages Perdita Stevens School of Informatics University of Edinburgh 1. Defining languages 2. General purpose languages vs domain specific languages 3.

More information

Language Oriented Modularity: From Theory to Practice

Language Oriented Modularity: From Theory to Practice Language Oriented Modularity: From Theory to Practice Arik Hadas Dept. of Mathematics and Computer Science The Open University of Israel Joint Work With: David H. Lorenz Language Oriented Modularity (LOM)

More information

INT NTION L. Domain Expert DSLs

INT NTION L. Domain Expert DSLs INT NTION L S O F T W A R E E A Domain Expert DSLs Magnus Christerson Intentional Software Corporation Henk Kolk CTO Financial Services, Capgemini The Challenge Business to accelerate Collabora ation Business

More information

Eclipse technology in IFMS Interface Management System

Eclipse technology in IFMS Interface Management System Eclipse Finance Day 2013 Eclipse technology in IFMS Interface Management System Marc Schlienger A story today about Eclipse and IFMS SOA at Credit Suisse The construction of a System MDD in the large Leveraging

More information

A Domain-Specific Language for Cross- Platform Smartphone Application Development

A Domain-Specific Language for Cross- Platform Smartphone Application Development Master s Thesis A Domain-Specific Language for Cross- Platform Smartphone Application Development Kristoffer Rosén Department of Computer Science Faculty of Engineering LTH Lund University, 2013 ISSN 1650-2884

More information

Java Program Structure and Eclipse. Overview. Eclipse Projects and Project Structure. COMP 210: Object-Oriented Programming Lecture Notes 1

Java Program Structure and Eclipse. Overview. Eclipse Projects and Project Structure. COMP 210: Object-Oriented Programming Lecture Notes 1 COMP 210: Object-Oriented Programming Lecture Notes 1 Java Program Structure and Eclipse Robert Utterback In these notes we talk about the basic structure of Java-based OOP programs and how to setup and

More information

Exercise ANTLRv4. Patryk Kiepas. March 25, 2017

Exercise ANTLRv4. Patryk Kiepas. March 25, 2017 Exercise ANTLRv4 Patryk Kiepas March 25, 2017 Our task is to learn ANTLR a parser generator. This tool generates parser and lexer for any language described using a context-free grammar. With this parser

More information

Introduction to Software Engineering 10. Software Architecture

Introduction to Software Engineering 10. Software Architecture Introduction to Software Engineering 10. Software Architecture Roadmap > What is Software Architecture? > Coupling and Cohesion > Architectural styles: Layered Client-Server Blackboard, Dataflow,... >

More information

Model Driven Development in industrial practice. Dr. Martin Girschick February 2018

Model Driven Development in industrial practice. Dr. Martin Girschick February 2018 in industrial practice Dr. Martin Girschick February 2018 Study and PhD at TU Darmstadt Since 2008 working for Capgemini Projects in Public Sector, Telecommunications, Finance, Logistics Different Roles:

More information

SERG. Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT

SERG. Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT Delft University of Technology Software Engineering Research Group Technical Report Series Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT Karl Trygve

More information

A Product Derivation Tool Based on Model-Driven Techniques and Annotations

A Product Derivation Tool Based on Model-Driven Techniques and Annotations Journal of Universal Computer Science, vol. 14, no. 8 (2008), 1344-1367 submitted: 15/11/07, accepted: 25/3/08, appeared: 28/4/08 J.UCS A Product Derivation Tool Based on Model-Driven Techniques and Annotations

More information

Applying Model Driven Technologies in the Creation. of Domain Specific Modeling Languages

Applying Model Driven Technologies in the Creation. of Domain Specific Modeling Languages Applying Model Driven Technologies in the Creation Model Driven Development Language Editor Generator Abstraction Model Driven Development Refinement of Domain Specific Modeling Languages Bruce Trask Angel

More information

Migration of Pogo7 Templates

Migration of Pogo7 Templates Migration of Pogo7 Templates Summary: A new version of Pogo the Tango device server code generator based on Xtext2/Xtend2 will be presented Why do Pogo7 templates have to migrate? Pogo7 is based on Xpand

More information

Heat An Interactive Development Environment for Learning & Teaching Haskell

Heat An Interactive Development Environment for Learning & Teaching Haskell Heat An Interactive Development Environment for Learning & Teaching Haskell Olaf Chitil 11 th September 2008 Olaf Chitil (University of Kent) Heat An IDE for Learning Haskell 11 th September 2008 1 / 17

More information

Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT

Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT Karl Trygve Kalleberg 1 Department of Informatics, University of Bergen, P.O. Box 7800, N-5020 BERGEN,

More information

WebStorm, intelligent IDE for JavaScript development

WebStorm, intelligent IDE for JavaScript development , intelligent IDE for JavaScript development JetBrains is a powerful Integrated development environment (IDE) built specifically for JavaScript developers. How does match up against competing tools? Product

More information

Representing Software using a Domain Workbench (is software same as programming?) Charles Simonyi CEO Intentional Software February 2008

Representing Software using a Domain Workbench (is software same as programming?) Charles Simonyi CEO Intentional Software February 2008 Representing Software using a Domain Workbench (is software same as programming?) Charles Simonyi CEO Intentional Software February 2008 Summary Software and its problems Advantages of Input + Process

More information

Domain Specific Languages. Requirements (Engineering)

Domain Specific Languages. Requirements (Engineering) Domain Specific Languages and Requirements (Engineering) Andreas Graf Andreas.graf@itemis.de Markus Voelter www.voelter.de voelter@acm.org What are Requirements? a requirement is a singular documented

More information

An Evaluation of Domain-Specific Language Technologies for Code Generation

An Evaluation of Domain-Specific Language Technologies for Code Generation An Evaluation of Domain-Specific Language Technologies for Code Generation Christian Schmitt, Sebastian Kuckuk, Harald Köstler, Frank Hannig, Jürgen Teich Hardware/Software Co-Design, System Simulation,

More information

How we reached 0 technical debt in our Eclipse project

How we reached 0 technical debt in our Eclipse project How we reached 0 technical debt in our Eclipse project Lorenzo Bettini Dip. DISIA, University of Firenze, Italy Vincenzo Caselli, Francesco Guidieri RCP-Vision, Firenze, Italy EclipseCon Europe, 2016 Our

More information

Experience from Implementing a Complex Eclipse Extension for Software Product Line Engineering

Experience from Implementing a Complex Eclipse Extension for Software Product Line Engineering Experience from Implementing a Complex Eclipse Extension for Software Product Line Engineering Sascha El-Sharkawy, Christian Kröher, Holger Eichelberger, Klaus Schmid University of Hildesheim, Universitätsplatz

More information

Towards Generating Domain-Specific Model Editors with Complex Editing Commands

Towards Generating Domain-Specific Model Editors with Complex Editing Commands Towards Generating Domain-Specific Model Editors with Complex Editing Commands Gabriele Taentzer Technical University of Berlin Germany gabi@cs.tu-berlin.de May 10, 2006 Abstract Domain specific modeling

More information

JBPM Course Content. Module-1 JBPM overview, Drools overview

JBPM Course Content. Module-1 JBPM overview, Drools overview JBPM Course Content Module-1 JBPM overview, Drools overview JBPM overview Drools overview Community projects Vs Enterprise projects Eclipse integration JBPM console JBPM components Getting started Downloads

More information

Small is Beautiful Building a flexible software factory using small DSLs and Small Models

Small is Beautiful Building a flexible software factory using small DSLs and Small Models Small is Beautiful Building a flexible software factory using small DSLs and Small Models Jos Warmer Partner, Ordina jos.warmer@ordina.nl 1 Modeling Maturity Levels MML 0: No specification MML 1: Textual

More information

Language Oriented Programming: The Next Programming Paradigm Sergey Dmitriev, JetBrains

Language Oriented Programming: The Next Programming Paradigm Sergey Dmitriev, JetBrains november 2004 Language Oriented Programming: The Next Programming Paradigm It is time to begin the next technology revolution in software development, and the shape of this revolution is becoming more

More information

Semantic Modularization Techniques in Practice: A TAPL case study

Semantic Modularization Techniques in Practice: A TAPL case study 1 Semantic Modularization Techniques in Practice: A TAPL case study Bruno C. d. S. Oliveira Joint work with Weixin Zhang, Haoyuan Zhang and Huang Li July 17, 2017 Text 2 EVF: An Extensible and Expressive

More information

An IDE for the Grammatical Framework John J. Camilleri University of Gothenburg

An IDE for the Grammatical Framework John J. Camilleri University of Gothenburg Chapter 1 An IDE for the Grammatical Framework John J. Camilleri University of Gothenburg Abstract The GF Eclipse Plugin provides an integrated development environment (IDE) for developing grammars in

More information

RubyMine, the most advanced Ruby and Rails IDE

RubyMine, the most advanced Ruby and Rails IDE RubyMine, the most advanced Ruby and Rails IDE JetBrains RubyMine is a powerful Integrated development environment (IDE) built specifically for Ruby and Rails developers. How does RubyMine match up against

More information

Building an IDE with Rascal

Building an IDE with Rascal Building an IDE with Rascal Mark Hills CWI & INRIA ATEAMS 18 May 2011 Hills Building an IDE with Rascal 1/23 Outline Setting the Stage 1 Setting the Stage Hills Building an IDE with Rascal 2/23 Outline

More information

Generating Programs with Grammars and ASTGen

Generating Programs with Grammars and ASTGen Generating Programs with Grammars and ASTGen 598DM Guest Lecture Brett Daniel Tuesday, March 11, 2008 1 Overview Grammar AST Nodes language for composed of Program Text parsed by Parser produces Parse

More information

CS664 Compiler Theory and Design LIU 1 of 16 ANTLR. Christopher League* 17 February Figure 1: ANTLR plugin installer

CS664 Compiler Theory and Design LIU 1 of 16 ANTLR. Christopher League* 17 February Figure 1: ANTLR plugin installer CS664 Compiler Theory and Design LIU 1 of 16 ANTLR Christopher League* 17 February 2016 ANTLR is a parser generator. There are other similar tools, such as yacc, flex, bison, etc. We ll be using ANTLR

More information

Model-Driven Engineering (MDE) Lecture 1: Metamodels and Xtext Regina Hebig, Thorsten Berger

Model-Driven Engineering (MDE) Lecture 1: Metamodels and Xtext Regina Hebig, Thorsten Berger Model-Driven Engineering (MDE) Lecture 1: Metamodels and Xtext Regina Hebig, Thorsten Berger Reuses some material from: Andrzej Wasowski, Model-Driven Development, ITU Copenhagen Where I am from WASP 2017

More information

Introduction to Android

Introduction to Android Introduction to Android Ambient intelligence Alberto Monge Roffarello Politecnico di Torino, 2017/2018 Some slides and figures are taken from the Mobile Application Development (MAD) course Disclaimer

More information

Model Transformations for Embedded System Design and Virtual Platforms

Model Transformations for Embedded System Design and Virtual Platforms 1 Model Transformations for Embedded System Design and Virtual Platforms Nikos Matragkas, Ian Gray, Richard Paige, Dimitris Kolovos, Neil Audsley, Leandro Indrusiak Department of Computer Science The University

More information

Interactive Disambiguation of Meta Programs with Concrete Object Syntax

Interactive Disambiguation of Meta Programs with Concrete Object Syntax Interactive Disambiguation of Meta Programs with Concrete Object Syntax Lennart Kats Karl T. Kalleberg Eelco Visser (TUDelft) (KolibriFX) (TUDelft) Meta-programming Meta-programming with Template Engines

More information

SERG. The Spoofax Language Workbench Rules for Declarative Specification of Languages and IDEs

SERG. The Spoofax Language Workbench Rules for Declarative Specification of Languages and IDEs Delft University of Technology Software Engineering Research Group Technical Report Series The Spoofax Language Workbench Rules for Declarative Specification of Languages and IDEs Lennart C. L. Kats, Eelco

More information

Repeating patterns of boilerplate code (like parent/child navigation, Visitor pattern implementation, factory methods for parser tree construction)

Repeating patterns of boilerplate code (like parent/child navigation, Visitor pattern implementation, factory methods for parser tree construction) Gymnast overview Study of org.eclipse.jdt.core.dom.astnode and subclasses reveals Repeating patterns of boilerplate code (like parent/child navigation, Visitor pattern implementation, factory methods for

More information

SilabMDD - Model Driven Approach

SilabMDD - Model Driven Approach SilabMDD - Model Driven Approach Dušan Savić, Siniša Vlajić, Saša Lazarević, Vojislav Stanojević, Ilija Antović, Miloš Milić 1, Alberto Rodrigues da Silva 2 Faculty of Organizational Sciences, University

More information

JUnit A Cook's Tour. Kent Beck and Erich Gamma. Renaat Verbruggen 1#

JUnit A Cook's Tour. Kent Beck and Erich Gamma. Renaat Verbruggen 1# JUnit A Cook's Tour Kent Beck and Erich Gamma Renaat Verbruggen 1# JUnit advice "Whenever you are tempted to type something into a print statement or a debugger expression, write it as a test instead."

More information

Software Language Engineering of Architectural Viewpoints

Software Language Engineering of Architectural Viewpoints Software Language Engineering of Architectural Viewpoints Elif Demirli and Bedir Tekinerdogan Department of Computer Engineering, Bilkent University, Ankara 06800, Turkey {demirli,bedir}@cs.bilkent.edu.tr

More information

Portable Editor Services

Portable Editor Services Portable Editor Services Master s Thesis Daniël Pelsmaeker Portable Editor Services THESIS submitted in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE in COMPUTER SCIENCE

More information

MDD with OMG Standards MOF, OCL, QVT & Graph Transformations

MDD with OMG Standards MOF, OCL, QVT & Graph Transformations 1 MDD with OMG Standards MOF, OCL, QVT & Graph Transformations Andy Schürr Darmstadt University of Technology andy. schuerr@es.tu-darmstadt.de 20th Feb. 2007, Trento Outline of Presentation 2 Languages

More information

Domain-Specific Languages for Composable Editor Plugins

Domain-Specific Languages for Composable Editor Plugins Domain-Specific Languages for Composable Editor Plugins LDTA 2009, York, UK Lennart Kats (me), Delft University of Technology Karl Trygve Kalleberg, University of Bergen Eelco Visser, Delft University

More information

Developing Web-Based Applications Using Model Driven Architecture and Domain Specific Languages

Developing Web-Based Applications Using Model Driven Architecture and Domain Specific Languages Proceedings of the 8 th International Conference on Applied Informatics Eger, Hungary, January 27 30, 2010. Vol. 2. pp. 287 293. Developing Web-Based Applications Using Model Driven Architecture and Domain

More information

CSSE 490 Model-Based Software Engineering: Software Factories

CSSE 490 Model-Based Software Engineering: Software Factories CSSE 490 Model-Based Software Engineering: Software Factories Shawn Bohner Office: Moench Room F212 Phone: (812) 877-8685 Email: bohner@rose-hulman.edu Learning Outcomes: MBE Discipline Relate Model-Based

More information

CSSE 490 Model-Based Software Engineering: Domain Specific Language Introduction

CSSE 490 Model-Based Software Engineering: Domain Specific Language Introduction CSSE 490 Model-Based Software Engineering: Domain Specific Language Introduction Shawn Bohner Office: Moench Room F212 Phone: (812) 877-8685 Email: bohner@rose-hulman.edu Plan for the Day Introduction

More information