Textual Modeling Languages

Size: px
Start display at page:

Download "Textual Modeling Languages"

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 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 information

VICCI. The Eclipse Modeling Framework (EMF) A Practical Introduction and Technology Overview. Dipl.-Inf. Christoph Seidl

VICCI. 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 information

Implementation and Integration of a Domain Specific Language with oaw and Xtext

Implementation 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 information

Organization of DSLE part. Overview of DSLE. Model driven software engineering. Engineering. Tooling. Topics:

Organization 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 information

DSL 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 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 information

Compiler Construction

Compiler 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 information

Xtext Documentation. September 26, 2014

Xtext 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 information

How 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) 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 information

Syntax Check of Embedded SQL in C++ with Proto

Syntax 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 information

Eindhoven University of Technology

Eindhoven 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 information

Scanning and parsing. Topics. Announcements Pick a partner by Monday Makeup lecture will be on Monday August 29th at 3pm

Scanning 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 information

JastEMF: Reference Attribute Grammars for EMF-based DSLs

JastEMF: 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 information

1 Introduction. 2 An Interpreter. 2.1 Handling Source Code

1 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 information

Architectural Design Patterns for Language Parsers

Architectural 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 information

A DSL Toolkit for Deferring Architectural Decisions in DSL-Based Software Design

A 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 information

Efficient Editor Generation for Compositional DSLs in Eclipse

Efficient 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 information

Using DSLs for Developing Enterprise Systems

Using 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 information

CSCI 3136 Principles of Programming Languages

CSCI 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 information

Modeling Cloud Messaging with a Domain-Specific Modeling Language

Modeling 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 information

Roles in Software Development using Domain Specific Modelling Languages

Roles 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 information

Programmers 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 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 information

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science

Massachusetts 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 information

YouTrack MPS case study

YouTrack 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 information

Language-Driven, Technology-Enhanced Instructional Systems Design

Language-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 information

A Web Specific Language for Content Management Systems

A 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 information

An Approach for the Systematic Development of Domain-Specific Languages

An 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 information

Integrating Content Assist into Textual Modelling Editors

Integrating 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 information

Implementing reusable software components for SNOMED CT diagram and expression concept representations

Implementing 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 information

UML PROFILING AND DSL

UML 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 information

Development of Tool Extensions with MOFLON

Development 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 information

COMP 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 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 information

Programming Project 1: Lexical Analyzer (Scanner)

Programming 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 information

Programming Languages CIS 443

Programming 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 information

Jos Warmer, Independent jos.warmer@openmodeling.nl www.openmodeling.nl

Jos 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 information

Programming Assignment II Due Date: See online CISC 672 schedule Individual Assignment

Programming 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 information

Lecture 9. Semantic Analysis Scoping and Symbol Table

Lecture 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 information

A domain specific language for extracting models in software modernization

A 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 information

On General-purpose Textual Modeling Languages. On General-purpose Textual Modeling Languages

On 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 information

COCOVILA Compiler-Compiler for Visual Languages

COCOVILA 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 information

Using Ontologies in the Domain Analysis of Domain-Specific Languages

Using 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 information

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science

Massachusetts 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 information

Introduction. Compiler Design CSE 504. Overview. Programming problems are easier to solve in high-level languages

Introduction. 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 information

Towards More Security in Data Exchange

Towards 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 information

mbeddr: an Extensible MPS-based Programming Language and IDE for Embedded Systems

mbeddr: 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 information

A 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 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 information

03 - Lexical Analysis

03 - 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 information

sql-schema-comparer: Support of Multi-Language Refactoring with Relational Databases

sql-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 information

Context free grammars and predictive parsing

Context 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 information

An approach for the systematic development of domain-specific languages

An 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 information

Foundations of Model-Driven Software Engineering

Foundations 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 information

DSL Design. Model Transformations. Model Transformations. Language g Implementation Strategies

DSL 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 information

Modellrepository @ T-Mobile Umsetzung und Einsatz

Modellrepository @ 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 information

OpenEmbeDD basic demo

OpenEmbeDD 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 information

clooca : Web based tool for Domain Specific Modeling

clooca : 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 information

5HFDOO &RPSLOHU 6WUXFWXUH

5HFDOO &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 information

Compiler Construction

Compiler 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 information

Dynamic 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. 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 information

Compilation 2012 Domain-Specific Languages and Syntax Extensions

Compilation 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 information

Compiler I: Syntax Analysis Human Thought

Compiler 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 information

Implementing a Bidirectional Model Transformation Language as an Internal DSL in Scala

Implementing 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 information

Building industrial sensors with MDSD

Building 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 information

Cedalion A Language Oriented Programming Language (Extended Abstract)

Cedalion 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 information

Polyglot 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 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 information

Teaching Pragmatic Model-Driven Software Development

Teaching 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 information

COURSE GUIDE:Model-Driven Software Development (MDE)

COURSE 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 information

today 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. 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 information

An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases

An 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 information

UPROM 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 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 information

CommentTemplate: A Lightweight Code Generator for Java built with Eclipse Modeling Technology

CommentTemplate: 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 information

How To Transform Business Rules Into Optimized Processes

How 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 information

Embedded Software Development with MPS

Embedded 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 information

Programming Languages

Programming 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 information

Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010)

Proceedings 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 information

X-ABNF: Name-Bindings of ABNF specifications for custom code generation

X-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 information

Automatic Generation of Consistency-Preserving Edit Operations for MDE Tools

Automatic 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 information

estatistik.core: COLLECTING RAW DATA FROM ERP SYSTEMS

estatistik.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 information

A tool environment for quality assurance based on the Eclipse Modeling Framework

A 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 information

today 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. 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 information

UNIVERSITY 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 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 information

Tool Suite for Virtual Service Platform Engineering (Final)

Tool 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 information

Transforming PICTURE to BPMN 2.0 as Part of the Model-driven Development of Electronic Government Systems

Transforming 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 information

Semester Review. CSC 301, Fall 2015

Semester 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 information

COS 333: Advanced Programming Techniques

COS 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 information

Modern PL/SQL Code Checking and Dependency Analysis

Modern 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 information

Simplified Game Specific Description Language for Rapid Game Server Development using LDD (Language Driven Development) Framework

Simplified 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 information

A Framework for Creating Domain-specific Process Modeling Languages

A 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 information

Co-Creation of Models and Metamodels for Enterprise. Architecture Projects.

Co-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 information

Static Analyzers. Context. Learning Objectives

Static 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 information

Lecture 1: Introduction

Lecture 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 information

Automatic Test Data Generation for TTCN-3 using CTE

Automatic 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 information

Integrate your tools to help integrate your stakeholders

Integrate 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 information

Lexical analysis FORMAL LANGUAGES AND COMPILERS. Floriano Scioscia. Formal Languages and Compilers A.Y. 2015/2016

Lexical 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 information

Lexical Analysis and Scanning. Honors Compilers Feb 5 th 2001 Robert Dewar

Lexical 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 information

Syntaktická analýza. Ján Šturc. Zima 208

Syntaktická 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 information

A QUICK OVERVIEW OF THE OMNeT++ IDE

A 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 information

XFlash A Web Application Design Framework with Model-Driven Methodology

XFlash 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 information

The Design Maintenance System (DMS ) A Tool for Automating Software Quality Enhancement

The 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 information

Extensible 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 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 information

A Model-Driven Approach for Graph Visualization

A 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 information

The Mjølner BETA system

The 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