Textual Modeling Languages
|
|
- Matthew Rodgers
- 8 years ago
- Views:
Transcription
1 Textual Modeling Languages Slides 4-31 and of this lecture are reused from the Model Engineering course at TU Vienna with the kind permission of Prof. Gerti Kappel (head of the Business Informatics Group) 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 1
2 Workflow Overview Text comprehension + transformation Text Lexing Token stream (tokens = lexical units: comments and whitespaces removed) Parsing Concrete syntax tree (syntactical units: for cycle, if statement) Abstraction Abstract syntax tree (AST) Transformation Model Editor specification How to provide useful feedback to the user in a GUI 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 2
3 Table of Contents EBNF XText ANTLR + M2M transformation Online demo 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 3
4 Language Specification Basics Extended Backus-Naur-Form (EBNF) Originally introduced by Niklaus Wirth to specify the syntax of Pascal In general, they can be used to specify a context-free grammar ISO Standard Fundamental assumption: A text consists of a sequence of terminal symbols (visible characters). EBNF specifies all valid terminal symbol sequences using a compact and finite representation grammar Grammar Terminal symbols (lexical units) Non-terminal symbols (syntactical units) Starting non-terminal symbol (root of the syntax tree) Production rules consist of a left side non-terminal and a right side (valid symbol sequences) 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 4
5 EBNF Production rules consist of: Terminal NonTerminal Choice Optional Repetition Grouping Comment 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 5
6 Example: Entity DSL Language constructs Arbitrary character sequences Keywords Separation characters Scope borders References type String type Boolean entity Conference { property name : String property attendees : Person[] property speakers : Speaker[] } entity Person { property name : String } entity Speaker extends Person { } 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 6
7 Example: Entity DSL II. EBNF grammar Model := Type*; Type := SimpleType Entity; SimpleType := 'type' Identifier; Entity := 'entity' Identifier ('extends' Identifier)? '{' Property* '}'; Property := 'property' Identifier ':' Identifier ('[]')?; Identifier := ('a'..'z' 'A'..'Z' '_') ('a'..'z' 'A'..'Z' '_' '0'..'9'); 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 7
8 Example: Entity DSL III. EBNF-to-Ecore mapping Model := Type*; Type := SimpleType Entity; SimpleType := 'type' Identifier; Entity := 'entity' Identifier ('extends' Identifier)? '{' Property* '}'; Property := 'property' Identifier ':' Identifier ('[]')?; Identifier := ('a'..'z' 'A'..'Z' '_') ('a'..'z' 'A'..'Z' '_' '0'..'9'); 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 8
9 EBNF vs. Ecore EBNF + Specifies concrete syntax + Linear order of elements No reusability Only containment relationships Ecore + Reusability by inheritance + Non-containment references + Predefined data types and user-defined enumerations ~ Specifies only abstract syntax Conclusion A meaningful EBNF cannot be generated from a metamodel and vice versa! Challenge How to overcome the gap between these two worlds? 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 9
10 Solution Overview Generic Syntax Like XML Metamodel is sufficient, i.e., no concrete syntax is needed For instance: HUTN (OMG Standard) - Metamodel First! Step 1: Specify metamodel Step 2: Specify textual syntax additionally For instance: TCS (Eclipse Plug-in) - Grammar First! Step 1: Syntax is specified by a grammar (concrete syntax & abstract sytnax) Step 2: Metamodel is derived from step 1 For instance: Xtext (Eclipse Plugin) - Although Xtext supports importing metamodels in the meanwhile Separate metamodel and grammar 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 10
11 Table of Contents EBNF XText ANTLR + M2M transformation Online demo 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 11
12 XText Introduction XText was originally part of openarchitectureware, now it is more a separate project Used to develop textual domain specific languages Grammar definition similar to EBNF, but with extra features for metamodel generation Creates metamodel, parser, and editor from grammar definition Editor supports syntax check, highlighting, and code completion Context-sensitive constraints on the grammar described in OCL-like language 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 12
13 XText Workflow Overview oaw «artifact» Metamodel «artifact» Grammar «artifact» Constraints Xtext (Textual DSLs) «component» Parser «component» Editor Xpand (M2C) Xtend (M2M) «artifact» Model 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 13
14 XText Grammar I. Xtext grammar similar to EBNF Extended by Object-oriented concepts Information necessary to derive the metamodel Editor Example A A : (type = B); type B Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 14
15 XText Grammar II. Terminal rules Similar to EBNF rules Return value is String by default EBNF expressions Cardinalities Zero to one? Zero to many * One to many + Character range Wildcard Until Token Negated Token Predefined rules ID, String, Int, URI '0'..'9' 'f'.'o' '/*' -> '*/' '#' (!'#')* '#' 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 15
16 XText Grammar III. terminal ID : ('^')?('a'..'z' 'A'..'Z' '_') ('a'..'z' 'A'..'Z' '_' '0'..'9')*; terminal INT returns ecore::eint : ('0'..'9')+; terminal ML_COMMENT : '/*' -> '*/'; 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 16
17 XText Grammar IV. Type rules For each type rule a class is generated in the metamodel Class name corresponds to rule name Type rules contain Terminals -> Keywords Assignments -> Attributes or containment references Cross References -> Non-containment references Assignment Operators Single-valued feature = Multi-valued feature += Boolean features?= Enum rules Map Strings to enumeration literals 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 17
18 XText Grammar V. Assignment State : 'state' name = ID (transitions += Transition)* 'end'; Cross References Transition : event = [Event] '=>' state = [State]; Enum rules enum ChangeKind : ADD MOVE REMOVE; enum ChangeKind : ADD = 'add' ADD = '+' MOVE = 'move' MOVE = '->' REMOVE = 'remove' REMOVE = '-'; 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 18
19 XText Tooling I. Xtext Blueprint Projects Grammar definition Code generator IDE functionality 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 19
20 XText Tooling II. Xtext Grammar Project Workflow File for generating DSL Editor Properties: File Extension, Grammar Definition 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 20
21 XText Tooling III. Xtext Grammar Definition Grammar Name Default Terminals (ID, STRING, ) Metamodel URI 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 21
22 XText Tooling IV. Xtext Grammar Definition for State Machines 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 22
23 XText Tooling V. Generated Ecore-based Metamodel 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 23
24 XText Tooling VI. Generated DSL Editor Outline View Error! Code Completion (Ctrl+Space) Highlighting of keywords Error Description 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 24
25 Entity DSL Example Model := Type*; EBNF Grammar Type := SimpleType Entity; SimpleType := 'type' Identifier; Entity := 'entity' Identifier ('extends' Identifier)? '{' Property* '}'; Property := 'property' Identifier ':' Identifier ('[]')?; Identifier := ('a'..'z' 'A'..'Z' '_') ('a'..'z' 'A'..'Z' '_' '0'..'9'); type String type Boolean Example Model entity Conference { property name : String property attendees : Person[] property speakers : Speaker[] } entity Person { property name : String } entity Speaker extends Person { } 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 25
26 EBNF to XText Transition Model := Type*; EBNF Grammar Type := SimpleType Entity; SimpleType := 'type' Identifier; Entity := 'entity' Identifier ('extends' Identifier)? '{' Property* '}'; Property := 'property' Identifier ':' Identifier ('[]')?; Identifier := ('a'..'z' 'A'..'Z' '_') ('a'..'z' 'A'..'Z' '_' '0'..'9'); XText Grammar grammar MyDsl with org.eclipse.xtext.common.terminal generate mydsl " Model : elements += Type*; Type : SimpleType Entity; SimpleType : 'type' name = ID; Entity : 'entity' name = ID ('extends' extends = [Entity])? '{' properties += Property* '}'; Property : 'property' name = ID ':' type = [Type](many?= '[]')?; 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 26
27 Specifying Context Sensitive Constraints for Textual DSLs I. Examples Entity names must start with an uppercase character Entity names must be unique Property names must be unique within one entity Answer Use the same techniques as for metamodels! XText Grammar grammar MyDsl with org.eclipse.xtext.common.terminal generate mydsl " Model : elements += Type*; Type : SimpleType Entity; SimpleType : 'type' name = ID; Entity : 'entity' name = ID ('extends' extends = [Entity])? '{' properties += Property* '}'; Property : 'property' name = ID ':' type = [Type](many?= '[]')?; 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 27
28 Specifying Context Sensitive Constraints for Textual DSLs II. Examples 1. Entity names must start with an uppercase character 2. Entity names must be unique 3. Property names must be unique within one entity Solutions context mydsl::entity WARNING "Name should start with a capital": name.tofirstupper() == name; context mydsl::entity ERROR "Name must be unique": ((Model)this.eContainer).elements.name.select(e e == this.name).size == 1; context mydsl::property ERROR "Name must be unique": ((Model)this.eContainer.eContainer).properties.name.select(p p == this.name).size == 1; 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 28
29 Specifying Context Sensitive Constraints for Textual DSLs III. Every edit operation for cheap constraints Every save operation for cheap to expensive constraints Every generation operation for very expensive constraints 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 29
30 Specifying Context Sensitive Constraints for Textual DSLs IV. Code Generation Projects are automatically generated Code 2 Model Injector is used in the workflow file <component class="org.eclipse.xtext.mwereader" uri="${modelfile}"> <!-- this class will be generated by the xtext generator --> <register class="org.xtext.example.mydslstandalonesetup"/> </component> Xpand templates can be developed as usual «IMPORT mydsl» «DEFINE main FOR Model» «FOREACH this.elements.typeselect(entity) AS e-» «FILE e.name".class"-» class «e.name»... «ENDFILE» «ENDFOREACH» «ENDDEFINE» 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 30
31 XText: Standard Framework for EMF? Tight integration with Eclipse and oaw Powerful editors, constraint checks, code generation, model transformation, Allows to switch between EMF models and text-based artefacts Both are supported in Eclipse: Textual and Graphical Modeling! Allows to customize the editor by many extension points Pretty printing, code completion, Strong community 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 31
32 Strengths and Weaknesses of XText (+) Compact: Minimal effort for establishing small/simple DSLs EMF/Eclipse integration EBNF like (easy to learn) Editor for free text comprehension transformation editor specification 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 32
33 Strengths and Weaknesses of XText (-) Mixing of concerns: Text comprehension, actual transformation and editor specification are implicit and woven tightly together in one specification with the following consequences: Bidirectionality is hard to support Impossible to reuse e.g., the transformation part with a different textual comprehension part (e.g., for XML, regular expressions, directory structures, handwritten parsers, ). Complex specifications become difficult to maintain as everything becomes complex, i.e., textual comprehension and the transformation. 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 33
34 Strengths and Weaknesses of XText (-) Generality: Not all languages can be expressed (easily) with an Xtext grammar (mixing in Java is not possible!) Target model is usually quite low-level. In general a metamodel first approach for an arbitrary model requires a subsequent M2M transformation leading to a high complexity of the complete transformation chain due to different languages. Fixed interpretation of EBNF Using existing or preferred (e.g., bottom-up) parsers is not possible No parts of the transformation can be reused if the modeling standard (Ecore) is changed 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 34
35 Table of Contents EBNF XText ANTLR + M2M transformation Online demo 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 35
36 Alternative Tree-Based Approach Separate transformation into two distinct parts: 1. Text-to-tree (text comprehension) with a parser (e.g., generated from an EBNF specification) 2. Tree-to-model (actual transformation or interpretation) with a model transformation language (e.g., SDM, TGG) Step (1) can be achieved with just an EBNF specification and no extra effort. Step (2) involves (i) adding extra typing information to the homogeneous tree structure from a parser, and (ii) deducing context-sensitive relationships to yield a (regular) graph structure. Arbitrary metamodels can be targeted with increasing complexity of Step (2) 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 36
37 Workflow with ANTLR + emoflon Simple Tree Metamodel (AST) [Moca Tree] Target Metamodel EBNF SDM, TGG Lexer + Parser Transformation text tree model Text-to-Tree Tree-to-Model 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 37
38 Advantages of Textual DSLs Textual languages have specific strengths compared to graphical languages Scalability Pretty-printing Compact and expressive syntax Productivity for experienced users IDE support softens learning curve Configuration management/versioning Concurrent work on a model, especially with a version control system Diff, merge, search, replace, Working without a sophisticated editor 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 38
39 State-of-the-Art DSL Development Techniques DSLs are very common: CSS, regular expressions, ant, SQL, HQL, Rails Two types of DSLs: internal vs. external Internal DSLs Embedded languages in existing host languages Explicit internal DSLs: becoming mainstream through Ruby and Groovy Implicit internal DSLs: fluent interfaces simulate DSLs in Java and C# External DSLs Have their own custom syntax Own parser to process them Own editor to build sentences Own compiler to executable language or own interpreter Many XML-based languages have ended up as external DSLs (not user friendly) 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 39
40 References XText related Project Site: Xtext Webinar: Text-based language meta-frameworks Monticore: MGrammar: TCS: HUTN: Domain specific (modeling) languages Fowler, M.: Domain Specific Languages Mernik, M., Heering, J., and Sloane, A. M.: When and how to develop domainspecific languages. ACM Computing Surveys 37(4), pp , Kelly, S., and Tolvanen, J.P.: Domain-Specific Modeling: Enabling Full Code Generation. Wiley-IEEE Computer Society, Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 40
41 Table of Contents EBNF XText ANTLR + M2M transformation Online demo 24. Mai 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 41
Model-Driven Development - From Frontend to Code
Model-Driven Development - From Frontend to Code Sven Efftinge sven@efftinge.de www.efftinge.de Bernd Kolb bernd@kolbware.de www.kolbware.de Markus Völter voelter@acm.org www.voelter.de -1- Model Driven
More informationVICCI. The Eclipse Modeling Framework (EMF) A Practical Introduction and Technology Overview. Dipl.-Inf. Christoph Seidl
VICCI Visual and Interactive Cyber-Physical Systems Control and Integration The Eclipse Modeling Framework (EMF) A Practical Introduction and Technology Overview Dipl.-Inf. Christoph Seidl Overview of
More informationImplementation and Integration of a Domain Specific Language with oaw and Xtext
Implementation and Integration of a Domain Specific Language with oaw and Xtext by Volker Koster MT AG, Okt. 2007 www.mt-ag.com info@mt-ag.com Implementation and Integration of a Domain Specific Language
More informationOrganization of DSLE part. Overview of DSLE. Model driven software engineering. Engineering. Tooling. Topics:
Organization of DSLE part Domain Specific Language Engineering Tooling Eclipse plus EMF Xtext, Xtend, Xpand, QVTo and ATL Prof.dr. Mark van den Brand GLT 2010/11 Topics: Meta-modeling Model transformations
More informationDSL Contest - Evaluation and Benchmarking of DSL Technologies. Kim David Hagedorn, Kamil Erhard Advisor: Tom Dinkelaker
DSL Contest - Evaluation and Benchmarking of DSL Technologies Kim David Hagedorn, Kamil Erhard Advisor: Tom Dinkelaker September 30, 2009 Contents 1 Introduction 2 1.1 Domain Specific Languages.....................
More informationCompiler Construction
Compiler Construction Regular expressions Scanning Görel Hedin Reviderad 2013 01 23.a 2013 Compiler Construction 2013 F02-1 Compiler overview source code lexical analysis tokens intermediate code generation
More informationXtext Documentation. September 26, 2014
Xtext Documentation September 26, 2014 Contents I. Getting Started 9 1. 5 Minutes Tutorial 10 1.1. Creating A New Xtext Project........................ 10 1.2. Generating The Language Infrastructure...................
More informationHow to Improve Database Connectivity With the Data Tools Platform. John Graham (Sybase Data Tooling) Brian Payton (IBM Information Management)
How to Improve Database Connectivity With the Data Tools Platform John Graham (Sybase Data Tooling) Brian Payton (IBM Information Management) 1 Agenda DTP Overview Creating a Driver Template Creating a
More informationSyntax Check of Embedded SQL in C++ with Proto
Proceedings of the 8 th International Conference on Applied Informatics Eger, Hungary, January 27 30, 2010. Vol. 2. pp. 383 390. Syntax Check of Embedded SQL in C++ with Proto Zalán Szűgyi, Zoltán Porkoláb
More informationEindhoven University of Technology
Eindhoven University of Technology Department of Mathematics and Computer Science Software Engineering and Technology Group Master Thesis mlbnf A Syntax Formalism for Domain Specific Languages M.W. Manders
More informationScanning and parsing. Topics. Announcements Pick a partner by Monday Makeup lecture will be on Monday August 29th at 3pm
Scanning and Parsing Announcements Pick a partner by Monday Makeup lecture will be on Monday August 29th at 3pm Today Outline of planned topics for course Overall structure of a compiler Lexical analysis
More informationJastEMF: Reference Attribute Grammars for EMF-based DSLs
Fakultät Informatik Institut Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie JastEMF: Reference Attribute Grammars for EMF-based DSLs Sven Karol, Christoff Bürger ACSE 17.12.2012 What s
More information1 Introduction. 2 An Interpreter. 2.1 Handling Source Code
1 Introduction The purpose of this assignment is to write an interpreter for a small subset of the Lisp programming language. The interpreter should be able to perform simple arithmetic and comparisons
More informationArchitectural Design Patterns for Language Parsers
Architectural Design Patterns for Language Parsers Gábor Kövesdán, Márk Asztalos and László Lengyel Budapest University of Technology and Economics Department of Automation and Applied Informatics Magyar
More informationA DSL Toolkit for Deferring Architectural Decisions in DSL-Based Software Design
A DSL Toolkit for Deferring Architectural Decisions in DSL-Based Software Design Uwe Zdun Information Systems Institute Vienna University of Technology Vienna, Austria zdun@infosys.tuwien.ac.at A number
More informationEfficient Editor Generation for Compositional DSLs in Eclipse
Efficient Editor Generation for Compositional DSLs in Eclipse Holger Krahn, Bernhard Rumpe, and Steven Völkel Institute for Software Systems Engineering Niedersächsische Technische Hochschule, Standort
More informationUsing DSLs for Developing Enterprise Systems
Using DSLs for Developing Enterprise Systems Margus Freudenthal Cybernetica AS/University of Tartu Tartu, Estonia Abstract This paper investigates the suitability of contemporary DSL tools in the context
More informationCSCI 3136 Principles of Programming Languages
CSCI 3136 Principles of Programming Languages Faculty of Computer Science Dalhousie University Winter 2013 CSCI 3136 Principles of Programming Languages Faculty of Computer Science Dalhousie University
More informationModeling Cloud Messaging with a Domain-Specific Modeling Language
Modeling Cloud Messaging with a Domain-Specific Modeling Language Gábor Kövesdán, Márk Asztalos and László Lengyel Budapest University of Technology and Economics, Budapest, Hungary {gabor.kovesdan, asztalos,
More informationRoles in Software Development using Domain Specific Modelling Languages
Roles in Software Development using Domain Specific Modelling Languages Holger Krahn Bernhard Rumpe Steven Völkel Institute for Software Systems Engineering Technische Universität Braunschweig, Braunschweig,
More informationProgrammers rejoice: QML makes business people understand. Qt Developer Days 2014 Hinrich Specht 2. September 2014 Folie 1
Programmers rejoice: QML makes business people understand Qt Developer Days 2014 Hinrich Specht 2. September 2014 Folie 1 About me My company What I do at work Where I live What is it all about? Agenda
More informationMassachusetts Institute of Technology Department of Electrical Engineering and Computer Science
Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Fall 2005 Handout 7 Scanner Parser Project Wednesday, September 7 DUE: Wednesday, September 21 This
More informationYouTrack MPS case study
YouTrack MPS case study A case study of JetBrains YouTrack use of MPS Valeria Adrianova, Maxim Mazin, Václav Pech What is YouTrack YouTrack is an innovative, web-based, keyboard-centric issue and project
More informationLanguage-Driven, Technology-Enhanced Instructional Systems Design
Language-Driven, Technology-Enhanced Instructional s Design Iván Martínez-Ortiz, José-Luis Sierra, Baltasar Fernández-Manjón Fac. Informática. Universidad Complutense de Madrid C/ Prof. José García Santesmases
More informationA Web Specific Language for Content Management Systems
A Web Specific Language for Content Management Systems Viðar Svansson and Roberto E. Lopez-Herrejon Computing Laboratory, University of Oxford, England Abstract. Many web applications can be specified
More informationAn Approach for the Systematic Development of Domain-Specific Languages
An Approach for the Systematic Development of Domain-Specific Languages Mark Strembeck 1, Uwe Zdun 2 1 Institute of Information Systems, New Media Lab Vienna University of Economics and BA, Austria mark.strembeck@wu-wien.ac.at
More informationIntegrating Content Assist into Textual Modelling Editors
Integrating Content Assist into Textual Modelling Editors Markus Scheidgen scheidge@informatik.hu-berlin.de Abstract: Intelligent, context sensitive content assist (also known as code completion) plays
More informationImplementing reusable software components for SNOMED CT diagram and expression concept representations
1028 e-health For Continuity of Care C. Lovis et al. (Eds.) 2014 European Federation for Medical Informatics and IOS Press. This article is published online with Open Access by IOS Press and distributed
More informationUML PROFILING AND DSL
UML PROFILING AND DSL version 17.0.1 user guide No Magic, Inc. 2011 All material contained herein is considered proprietary information owned by No Magic, Inc. and is not to be shared, copied, or reproduced
More informationDevelopment of Tool Extensions with MOFLON
Development of Tool Extensions with MOFLON Ingo Weisemöller, Felix Klar, and Andy Schürr Fachgebiet Echtzeitsysteme Technische Universität Darmstadt D-64283 Darmstadt, Germany {weisemoeller klar schuerr}@es.tu-darmstadt.de
More informationCOMP 356 Programming Language Structures Notes for Chapter 4 of Concepts of Programming Languages Scanning and Parsing
COMP 356 Programming Language Structures Notes for Chapter 4 of Concepts of Programming Languages Scanning and Parsing The scanner (or lexical analyzer) of a compiler processes the source program, recognizing
More informationProgramming Project 1: Lexical Analyzer (Scanner)
CS 331 Compilers Fall 2015 Programming Project 1: Lexical Analyzer (Scanner) Prof. Szajda Due Tuesday, September 15, 11:59:59 pm 1 Overview of the Programming Project Programming projects I IV will direct
More informationProgramming Languages CIS 443
Course Objectives Programming Languages CIS 443 0.1 Lexical analysis Syntax Semantics Functional programming Variable lifetime and scoping Parameter passing Object-oriented programming Continuations Exception
More informationJos Warmer, Independent jos.warmer@openmodeling.nl www.openmodeling.nl
Domain Specific Languages for Business Users Jos Warmer, Independent jos.warmer@openmodeling.nl www.openmodeling.nl Sheet 2 Background Experience Business DSLs Insurance Product Modeling (structure) Pattern
More informationProgramming Assignment II Due Date: See online CISC 672 schedule Individual Assignment
Programming Assignment II Due Date: See online CISC 672 schedule Individual Assignment 1 Overview Programming assignments II V will direct you to design and build a compiler for Cool. Each assignment will
More informationLecture 9. Semantic Analysis Scoping and Symbol Table
Lecture 9. Semantic Analysis Scoping and Symbol Table Wei Le 2015.10 Outline Semantic analysis Scoping The Role of Symbol Table Implementing a Symbol Table Semantic Analysis Parser builds abstract syntax
More informationA domain specific language for extracting models in software modernization
A domain specific language for extracting models in software modernization Javier Luis Cánovas Izquierdo and Jesús García Molina University of Murcia {jlcanovas,jmolina}@um.es Abstract. Model-driven engineering
More informationOn General-purpose Textual Modeling Languages. On General-purpose Textual Modeling Languages
On General-purpose Textual Modeling Languages On General-purpose Textual Modeling Languages Martin Mazanec and Ondřej Macek Martin Mazanec and Ondřej Macek Department of Computer Science, FEL, Czech Technical
More informationCOCOVILA Compiler-Compiler for Visual Languages
LDTA 2005 Preliminary Version COCOVILA Compiler-Compiler for Visual Languages Pavel Grigorenko, Ando Saabas and Enn Tyugu 1 Institute of Cybernetics, Tallinn University of Technology Akadeemia tee 21 12618
More informationUsing Ontologies in the Domain Analysis of Domain-Specific Languages
Using Ontologies in the Domain Analysis of Domain-Specific Languages Robert Tairas 1, Marjan Mernik 2, Jeff Gray 1 1 University of Alabama at Birmingham, Birmingham, Alabama, USA {tairasr,gray}@cis.uab.edu
More informationMassachusetts Institute of Technology Department of Electrical Engineering and Computer Science
Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Spring 2013 Handout Scanner-Parser Project Thursday, Feb 7 DUE: Wednesday, Feb 20, 9:00 pm This project
More informationIntroduction. Compiler Design CSE 504. Overview. Programming problems are easier to solve in high-level languages
Introduction Compiler esign CSE 504 1 Overview 2 3 Phases of Translation ast modifled: Mon Jan 28 2013 at 17:19:57 EST Version: 1.5 23:45:54 2013/01/28 Compiled at 11:48 on 2015/01/28 Compiler esign Introduction
More informationTowards More Security in Data Exchange
Towards More Security in Data Exchange Defining Unparsers with Context-Sensitive Encoders for Context-Free Grammars Lars Hermerschmidt, Stephan Kugelmann, Bernhard Rumpe Software http://www.se-rwth.de/
More informationmbeddr: an Extensible MPS-based Programming Language and IDE for Embedded Systems
mbeddr: an Extensible MPS-based Programming Language and IDE for Embedded Systems Markus Voelter independent/itemis voelter@acm.org Daniel Ratiu Bernhard Schaetz Fortiss {ratiu schaetz}@fortiss.org Bernd
More informationA Model-Driven Approach for the Development of an IDE for Spacecraft On-Board Software
A Model-Driven Approach for the Development of an IDE for Spacecraft On-Board Software Luigi Pomante Sante Candia Emilio Incerto Università degli Studi dell Aquila Center of Excellence DEWS - ITALY luigi.pomante@univaq.it
More information03 - Lexical Analysis
03 - Lexical Analysis First, let s see a simplified overview of the compilation process: source code file (sequence of char) Step 2: parsing (syntax analysis) arse Tree Step 1: scanning (lexical analysis)
More informationsql-schema-comparer: Support of Multi-Language Refactoring with Relational Databases
sql-schema-comparer: Support of Multi-Language Refactoring with Relational Databases Hagen Schink Institute of Technical and Business Information Systems Otto-von-Guericke-University Magdeburg, Germany
More informationContext free grammars and predictive parsing
Context free grammars and predictive parsing Programming Language Concepts and Implementation Fall 2012, Lecture 6 Context free grammars Next week: LR parsing Describing programming language syntax Ambiguities
More informationAn approach for the systematic development of domain-specific languages
SOFTWARE PRACTICE AND EXPERIENCE Softw. Pract. Exper. 2009; 39:1253 1292 Published online 28 August 2009 in Wiley InterScience (www.interscience.wiley.com)..936 An approach for the systematic development
More informationFoundations of Model-Driven Software Engineering
Model-Driven Software Engineering Foundations of Model-Driven Software Engineering Dr. Jochen Küster (jku@zurich.ibm.com) Contents Introduction to Models and Modeling Concepts of Model-Driven Software
More informationDSL Design. Model Transformations. Model Transformations. Language g Implementation Strategies
DSL Design Generic Language g Technology 2IS15 Model Transformations Language g Implementation Strategies Stand-alone Marcel van Amstel Embedding Translation / Software Engineering and Technology 9-1-2012
More informationModellrepository @ T-Mobile Umsetzung und Einsatz
1 Modellrepository @ T-Mobile Umsetzung und Einsatz ix CeBIT Forum 2009 Carsten Sensler, T-Mobile Deutschland GmbH 3/9/09 1 Table of Contents!! SOA Backplane overview!! Model repository @ T-Mobile!! Domain
More informationOpenEmbeDD basic demo
OpenEmbeDD basic demo A demonstration of the OpenEmbeDD platform metamodeling chain tool. Fabien Fillion fabien.fillion@irisa.fr Vincent Mahe vincent.mahe@irisa.fr Copyright 2007 OpenEmbeDD project (openembedd.org)
More informationclooca : Web based tool for Domain Specific Modeling
clooca : Web based tool for Domain Specific Modeling Shuhei Hiya, Kenji Hisazumi, Akira Fukuda, and Tsuneo Nakanishi Kyushu University 744 Motooka Nishi-ku, Fukuoka 819-0395, Japan {hiya,nel,fukuda,tun@f.ait.kyushu-u.ac.jp
More information5HFDOO &RPSLOHU 6WUXFWXUH
6FDQQLQJ 2XWOLQH 2. Scanning The basics Ad-hoc scanning FSM based techniques A Lexical Analysis tool - Lex (a scanner generator) 5HFDOO &RPSLOHU 6WUXFWXUH 6RXUFH &RGH /H[LFDO $QDO\VLV6FDQQLQJ 6\QWD[ $QDO\VLV3DUVLQJ
More informationCompiler Construction
Compiler Construction Lecture 1 - An Overview 2003 Robert M. Siegfried All rights reserved A few basic definitions Translate - v, a.to turn into one s own language or another. b. to transform or turn from
More informationDynamic website development using the Grails Platform. Joshua Davis Senior Architect Cognizant Technology Solutions joshua.davis@cognizant.
Dynamic website development using the Grails Platform Joshua Davis Senior Architect Cognizant Technology Solutions joshua.davis@cognizant.com Topics Covered What is Groovy? What is Grails? What are the
More informationCompilation 2012 Domain-Specific Languages and Syntax Extensions
Compilation 2012 and Syntax Extensions Jan Midtgaard Michael I. Schwartzbach Aarhus University GPL Problem Solving The General Purpose Language (GPL) approach: analyze the problem domain express the conceptual
More informationCompiler I: Syntax Analysis Human Thought
Course map Compiler I: Syntax Analysis Human Thought Abstract design Chapters 9, 12 H.L. Language & Operating Sys. Compiler Chapters 10-11 Virtual Machine Software hierarchy Translator Chapters 7-8 Assembly
More informationImplementing a Bidirectional Model Transformation Language as an Internal DSL in Scala
Implementing a Bidirectional Model Transformation Language as an Internal DSL in Scala BX 14: 3rd International Workshop on Bidirectional Transformations @EDBT/ICDT 14, Athens, Greece Arif Wider Humboldt-University
More informationBuilding industrial sensors with MDSD
Building industrial sensors with MDSD Bernhard Merkle Central Department Research & Development Software-Engineering SICK-AG Waldkirch mailto: Bernhard.Merkle@sick.de mailto: Bernhard.Merkle@gmail.com
More informationCedalion A Language Oriented Programming Language (Extended Abstract)
Cedalion A Language Oriented Programming Language (Extended Abstract) David H. Lorenz Boaz Rosenan The Open University of Israel Abstract Implementations of language oriented programming (LOP) are typically
More informationPolyglot Multi-Paradigm. Modeling. MDA in the Real World. Stefan Tilkov stefan.tilkov@innoq.com
Polyglot Multi-Paradigm Modeling MDA in the Real World Stefan Tilkov stefan.tilkov@innoq.com What I ll Talk About How I define MDA What a typical tool chain looks like Real-world examples How UML/MOD,
More informationTeaching Pragmatic Model-Driven Software Development
Computer Science and Information Systems 12(2):683 705 DOI: 10.2298/CSIS140107022P Teaching Pragmatic Model-Driven Software Development Jaroslav Porubän, Michaela Bačíková, Sergej Chodarev and Milan Nosál
More informationCOURSE GUIDE:Model-Driven Software Development (MDE)
COURSE GUIDE:Model-Driven Software Development (MDE) Academic year: 2015-2016 Program: Center: University: Communication Technologies (I 2 -CIT) Universidad Autónoma de Madrid Last modified: 2015/18/05
More informationtoday 1,700 special programming languages used to communicate in over 700 application areas.
today 1,700 special programming languages used to communicate in over 700 application areas. Computer Software Issues, an American Mathematical Association Prospectus, July 1965, quoted in P. J. Landin
More informationAn Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases
An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases Paul L. Bergstein, Priyanka Gariba, Vaibhavi Pisolkar, and Sheetal Subbanwad Dept. of Computer and Information Science,
More informationUPROM Tool: A Unified Business Process Modeling Tool for Generating Software Life Cycle Artifacts
UPROM Tool: A Unified Business Process Modeling Tool for Generating Software Life Cycle Artifacts Banu Aysolmaz 1 and Onur Demirörs 2 1, 2 Informatics Institute, Middle East Technical University, Ankara,
More informationCommentTemplate: A Lightweight Code Generator for Java built with Eclipse Modeling Technology
CommentTemplate: A Lightweight Code Generator for Java built with Eclipse Modeling Technology Jendrik Johannes, Mirko Seifert, Christian Wende, Florian Heidenreich, and Uwe Aßmann DevBoost GmbH D-10179,
More informationHow To Transform Business Rules Into Optimized Processes
Automatic generation of optimal business processes from business rules Bas Steen, Luís Ferreira Pires and Maria-Eugenia Iacob Centre for Telematics and Information Technology University of Twente Enschede,
More informationEmbedded Software Development with MPS
Embedded Software Development with MPS Markus Voelter independent/itemis The Limitations of C and Modeling Tools Embedded software is usually implemented in C. The language is relatively close to the hardware,
More informationProgramming Languages
Programming Languages Programming languages bridge the gap between people and machines; for that matter, they also bridge the gap among people who would like to share algorithms in a way that immediately
More informationProceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010)
Electronic Communications of the EASST Volume 34 (2010) Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010) Position Paper: m2n A Tool for Translating
More informationX-ABNF: Name-Bindings of ABNF specifications for custom code generation
X-ABNF: Name-Bindings of ABNF specifications for custom code generation Thomas Kistel and Ralf Vandenhouten University of Applied Sciences Wildau Institute of Telematics Bahnhofstrasse, 15745 Wildau, Germany
More informationAutomatic Generation of Consistency-Preserving Edit Operations for MDE Tools
Automatic Generation of Consistency-Preserving Edit Operations for MDE Tools Michaela Rindt, Timo Kehrer, Udo Kelter Software Engineering Group University of Siegen {mrindt,kehrer,kelter}@informatik.uni-siegen.de
More informationestatistik.core: COLLECTING RAW DATA FROM ERP SYSTEMS
WP. 2 ENGLISH ONLY UNITED NATIONS STATISTICAL COMMISSION and ECONOMIC COMMISSION FOR EUROPE CONFERENCE OF EUROPEAN STATISTICIANS Work Session on Statistical Data Editing (Bonn, Germany, 25-27 September
More informationA tool environment for quality assurance based on the Eclipse Modeling Framework
Autom Softw Eng (2013) 20:141 184 DOI 10.1007/s10515-012-0114-7 A tool environment for quality assurance based on the Eclipse Modeling Framework Thorsten Arendt Gabriele Taentzer Received: 30 March 2012
More informationtoday 1,700 special programming languages used to communicate in over 700 application areas.
today 1,700 special programming languages used to communicate in over 700 application areas. Computer Software Issues, an American Mathematical Association Prospectus, July 1965, quoted in P. J. Landin
More informationUNIVERSITY OF OSLO Department of Informatics. Domain Specific Languages versus Frameworks. Master Thesis. 60 credits. Martin Fagereng Johansen
UNIVERSITY OF OSLO Department of Informatics Domain Specific Languages versus Frameworks Master Thesis 60 credits Martin Fagereng Johansen May 4, 2009 Preface This thesis was written at the Department
More informationTool Suite for Virtual Service Platform Engineering (Final)
Engineering Virtual Domain-Specific Service Platforms Specific Targeted Research Project: FP7-ICT-2009-5 / 257483 Tool Suite for Virtual Service Platform Engineering (Final) Abstract In INDENICA, the notion
More informationTransforming PICTURE to BPMN 2.0 as Part of the Model-driven Development of Electronic Government Systems
Heitkötter, Henning, Transforming PICTURE to BPMN 2.0 as Part of the Model-Driven Development of Electronic Government Systems, 44th Hawaii International Conference on System Sciences (HICSS), pp. 1 10,
More informationSemester Review. CSC 301, Fall 2015
Semester Review CSC 301, Fall 2015 Programming Language Classes There are many different programming language classes, but four classes or paradigms stand out:! Imperative Languages! assignment and iteration!
More informationCOS 333: Advanced Programming Techniques
COS 333: Advanced Programming Techniques How to find me bwk@cs, www.cs.princeton.edu/~bwk 311 CS Building 609-258-2089 (but email is always better) TA's: Stephen Beard, Chris Monsanto, Srinivas Narayana,
More informationModern PL/SQL Code Checking and Dependency Analysis
Modern PL/SQL Code Checking and Dependency Analysis Philipp Salvisberg Senior Principal Consultant BASEL BERN BRUGG LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MUNICH STUTTGART VIENNA
More informationSimplified Game Specific Description Language for Rapid Game Server Development using LDD (Language Driven Development) Framework
, pp.123-130 http://dx.doi.org/10.14257/astl.2013.39.23 Simplified Game Specific Description Language for Rapid Game Server Development using LDD (Language Driven Development) Framework Hwan-Soo Yoo and
More informationA Framework for Creating Domain-specific Process Modeling Languages
A Framework for Creating Domain-specific Process Modeling Languages Henning Heitkötter Department of Information Systems, University of Münster, Münster, Germany heitkoetter@wi.uni-muenster.de Keywords:
More informationCo-Creation of Models and Metamodels for Enterprise. Architecture Projects.
Co-Creation of Models and Metamodels for Enterprise Architecture Projects Paola Gómez pa.gomez398@uniandes.edu.co Hector Florez ha.florez39@uniandes.edu.co ABSTRACT The linguistic conformance and the ontological
More informationStatic Analyzers. Context. Learning Objectives
Static Analyzers Wolfgang Emmerich Professor of Distributed Computing University College London http://sse.cs.ucl.ac.uk Context Requirements Inception Elaboration Construction Transition Analysis Design
More informationLecture 1: Introduction
Programming Languages Lecture 1: Introduction Benjamin J. Keller Department of Computer Science, Virginia Tech Programming Languages Lecture 1 Introduction 2 Lecture Outline Preview History of Programming
More informationAutomatic Test Data Generation for TTCN-3 using CTE
Automatic Test Data Generation for TTCN-3 using CTE Zhen Ru Dai, Peter H. Deussen, Maik Busch, Laurette Pianta Lacmene, Titus Ngwangwen FraunhoferInstitute for Open Communication Systems (FOKUS) Kaiserin-Augusta-Allee
More informationIntegrate your tools to help integrate your stakeholders
Integrate your tools to help integrate your stakeholders Stephan Herrmann EclipseCon Europe 2013 Stephan Herrmann: Integrate your Tools... - EclipseCon Europe 2013 3 Why, exactly, develop DSLs? Remember
More informationLexical analysis FORMAL LANGUAGES AND COMPILERS. Floriano Scioscia. Formal Languages and Compilers A.Y. 2015/2016
Master s Degree Course in Computer Engineering Formal Languages FORMAL LANGUAGES AND COMPILERS Lexical analysis Floriano Scioscia 1 Introductive terminological distinction Lexical string or lexeme = meaningful
More informationLexical Analysis and Scanning. Honors Compilers Feb 5 th 2001 Robert Dewar
Lexical Analysis and Scanning Honors Compilers Feb 5 th 2001 Robert Dewar The Input Read string input Might be sequence of characters (Unix) Might be sequence of lines (VMS) Character set ASCII ISO Latin-1
More informationSyntaktická analýza. Ján Šturc. Zima 208
Syntaktická analýza Ján Šturc Zima 208 Position of a Parser in the Compiler Model 2 The parser The task of the parser is to check syntax The syntax-directed translation stage in the compiler s front-end
More informationA QUICK OVERVIEW OF THE OMNeT++ IDE
Introduction A QUICK OVERVIEW OF THE OMNeT++ IDE The OMNeT++ 4.x Integrated Development Environment is based on the Eclipse platform, and extends it with new editors, views, wizards, and additional functionality.
More informationXFlash A Web Application Design Framework with Model-Driven Methodology
International Journal of u- and e- Service, Science and Technology 47 XFlash A Web Application Design Framework with Model-Driven Methodology Ronnie Cheung Hong Kong Polytechnic University, Hong Kong SAR,
More informationThe Design Maintenance System (DMS ) A Tool for Automating Software Quality Enhancement
The Design Maintenance System (DMS ) A Tool for Automating Software Quality Enhancement Ira D. Baxter, Ph.D. Semantic Designs, Inc. www.semdesigns.com Keywords software quality, design capture, knowledge
More informationExtensible Validation Framework for DSLs using MontiCore on the Example of Coding Guidelines
Extensible Validation Framework for DSLs using MontiCore on the Example of Coding Guidelines Christian Berger, Bernhard Rumpe, and Steven Völkel Rheinisch Westfälische Technische Hochschule (RWTH) Aachen
More informationA Model-Driven Approach for Graph Visualization
A Model-Driven Approach for Graph Visualization Celal Çığır, Alptuğ Dilek, Akif Burak Tosun Department of Computer Engineering, Bilkent University 06800, Bilkent, Ankara {cigir, alptug, tosun}@cs.bilkent.edu.tr
More informationThe Mjølner BETA system
FakePart I FakePartTitle Software development environments CHAPTER 2 The Mjølner BETA system Peter Andersen, Lars Bak, Søren Brandt, Jørgen Lindskov Knudsen, Ole Lehrmann Madsen, Kim Jensen Møller, Claus
More information