A conceptual framework for building good DSLs. Markus Voelter independent/itemis
|
|
- Ashlyn Charles
- 5 years ago
- Views:
Transcription
1 DSL Design A conceptual framework for building good DSLs Markus Voelter independent/itemis voelter@acm.org +Markus Voelter based on material from a paper written with Eelco Visser E.Visser@tudelft.nl
2
3 This material is part of my upcoming (Feb. 2013) book DSL Engineering Designing, Implementing and Using Domain-Specific Laguages Stay in touch; it will be cheap :-)
4
5 Introduction
6 A DSL is a focussed, processable language for describing a specific concern when building a system in a specific domain. The abstractions and notations used are natural/suitable for the stakeholders who specify that particular concern.
7 General Purpose C Components State Machines Domain Specific Sensor Access LEGO Robot Control
8 Modular Language my L a b c d e f g h i j k l with many optional, composable modules
9
10 Case Studies
11 Example Compo nents
12 Example Compo nents
13 Example Refrigerators Refrige rators
14 Example Refrige rators
15 Example Refrige rators
16 Example Exten ded C
17 Example Pension Plans
18 Example Pension Plans
19 Example Web DSL
20
21 Terms & Concepts
22 Domain
23 deductive top down body of knowledge in the real world Domain Example Example Refrigerators Penion Plans Refrige rators
24 Domain Domain existing software inductive bottom up Example Example (family) Exten ded C Compo netns
25
26 Programs are trees element
27 Programs are graphs, really. reference
28 Fragments are subtrees w/ root fragment root fragment f
29 Languages are sets of concepts C 1 C 2 C 3 C n L
30 Languages are sets of concepts C 1 C 2 C 3 C n L
31 Programs and languages C 1 C 2 C 3 C n
32 Language: concept inheritance L 1 C 1 C 2 L 2 C 1 C 3
33 Language does not depend on any other language Independence Fragment does not depend on any other fragment
34 Independence Example Refrige rators
35 Homogeneous Fragment everything expressed with one language
36 Heterogeneous C Statemachines Testing Example Exten ded C
37 Domain Hierarchy
38 Domain Hierarchy automotive avionics embedded software all programs Example Exten ded C
39
40 Design Dimensions expressivity coverage semantics separation of concerns completeness paradigms modularity concrete syntax process
41 Expressivity expressivity coverage semantics separation of concerns completeness paradigms modularity concrete syntax process
42 Shorter Programs More Accessible Semantics
43 For a limited Domain! Domain Knowledge encapsulated in language
44 Smaller Domain More Specialized Language Shorter Programs
45 The do-what-i-want language Ѱ
46 Single Program vs. Class/Domain No Variability! Ѱ
47 Domain Hierarchy more specialized domains more specialized languages
48 Reification D n
49 Reification D n+1 == D n
50 Reification Transformation/ Generation Language Definition ==
51
52 Overspecification! Requires Semantic Analysis!
53 Linguistic Abstraction Declarative! Directly represents Semantics.
54 Def: DSL A DSL is a language at D that provides linguistic abstractions for common patterns and idioms of a language at D-1 when used within the domain D.
55 Def: DSL cont d A good DSL does not require the use of patterns and idioms to express semantically interesting concepts in D. Processing tools do not have to do semantic recovery on D programs. Declarative!
56
57 Semantics & Execution expressivity coverage semantics separation of concerns completeness paradigms modularity concrete syntax process
58 Static Semantics Execution Semantics
59 Static Semantics Execution Semantics
60 Static Semantics Constraints Type Systems
61 Unique State Names Unreachable States Dead End States Example Exten ded C
62 Unique State Names Unreachable States Dead End States Easier to do on a declarative Level! Example Exten ded C
63 Unique State Names Unreachable States Dead End States Easier to do on a declarative Level! Thinking of all constraints is a coverage problem! Example Exten ded C
64
65 Assign fixed types Derive Types Calculate Common Types Check Type Consistency What does a type system do?
66 Intent + Derive Check
67 Intent + Derive Check More code Better error messages Better Performance
68 Intent + Derive Check More code Better error messages Better Performance More convenient More complex checkers Harder to understand for users
69 What does it all mean? Execution Semantics
70 Def: Semantics via mapping to lower level OB: Observable Behaviour (Test Cases)
71 Def: Semantics via mapping to lower level L D Transformation Interpretation L D-1
72 Transformation D n+1 D n
73 Transformation Example Exten ded C
74 Transformation L D L D-1 Transformation Known Semantics!
75 Transformation L D Correct!? L D-1 Transformation
76 Transformation Tests (D) Tests (D-1) L D L D-1 Transformation Run tests on both levels; all pass. Coverage Problem!
77 Example Refrige rators
78 Transformation Example Pension Plans
79 Behavior Example Refrige rators
80 Multi-Stage L 3 L 2 Modularization L 1 L 0
81 Multi-Stage: Reuse L 3 L 2 L 5 L 1 Reusing Later Stages L 0 Optimizations!
82 Multi-Stage: Reuse L 3 Robot Control State Machine L 2 L 5 Components L 1 C (MPS tree) L 0 C Text Example Exten ded C
83 Multi-Stage: Reuse L 3 L 2 L 5 Robot Control State Machine Consistency Model Checking Components Efficient Mappings L 0 L 1 C Type System C (MPS tree) Syntactic Correctness, Headers C Text Example Exten ded C
84 Multi-Stage: Reuse L 3 Reusing Early Stages L 2 Portability L 1 L 1b L 0 L 0b
85 Multi-Stage: Reuse L 3 L 2 L 1 L 1b Java C# Example L 0 L 0b Exten ded C
86 Multi-Stage: Preprocess Adding an optional, modular emergency stop feature
87 Interpretation A program at D 0 that acts on the structure of an input program at D >0
88 Interpretation A program at D 0 that acts on the structure of an input program at D >0 imperative step through functional eval recursively declarative? solver?
89 Example Pension Plans
90 Example Refrige rators
91 Behavior Example Refrige rators
92 Transformation Interpretation
93 Transformation Interpretation + Code Inspection
94 Transformation Interpretation + Code Inspection OSGi Generators Example Compo nents
95 Transformation Interpretation + Code Inspection + Debugging
96 Transformation Interpretation + Code Inspection + Debugging Platform Interactions Example Refrige rators
97 Transformation Interpretation + Code Inspection + Debugging + Performance & Optimization
98 Transformation Interpretation + Code Inspection + Debugging + Performance & Optimization Efficiency for Real-Time S/w Memory Use Example Exten ded C
99 Transformation Interpretation + Code Inspection + Debugging + Performance & Optimization + Platform Conformance
100 Transformation Interpretation + Code Inspection + Debugging + Performance & Optimization + Platform Conformance Web Frameworks and Standards Example Web DSL
101 Transformation + Code Inspection Interpretation + Turnaround Time + Debugging + Performance & Optimization + Platform Conformance
102 Transformation + Code Inspection + Debugging Interpretation + Turnaround Time Testing + Performance & Optimization + Platform Conformance Example Pension Plans Example Refrige rators
103 Transformation + Code Inspection + Debugging Interpretation + Turnaround Time + Runtime Change + Performance & Optimization + Platform Conformance
104 Transformation + Code Inspection + Debugging + Performance & Optimization + Platform Conformance Interpretation + Turnaround Time + Runtime Change Change Business Rules without Redeployment Example Pension Plans
105 Def: Semantics via mapping to lower level L D Transformation Interpretation L D-1
106 Multiple Mappings at the same time L D L x L y L z Similar Semantics?
107 Multiple Mappings at the same time L D T Similar Semantics? L x L y L z T T T all green!
108 Example Pension Plans
109 Example Refrige rators
110
111 Reduced Expressiveness bad? maybe. good? maybe!
112 Reduced Expressiveness bad? maybe. good? maybe! Model Checking SAT Solving Exhaustive Search, Proof!
113 Unique State Names Unreachable States Dead End States Guard Decidability Reachability Exhaustive Search, Proof!
114 Example Exten ded C
115 Example Exten ded C
116
117 Separation of Concerns expressivity coverage semantics separation of concerns completeness paradigms modularity concrete syntax process
118 Several Concerns in one domain
119 Several Concerns in one domain integrated into one fragment separated into several fragments
120 Viewpoints independent dependent
121 Viewpoints Hardware Behavior Tests Example Refrige rators
122 Viewpoints: Why? Sufficiency Different Stakeholders Different Steps in Process VCS unit!
123 Viewpoints Hardware Product Management Behaviour Thermodynamics- Experts Tests Example Refrige rators
124 Viewpoints independent sufficient? contains all the data for running a meaningful transformation
125 Viewpoints sufficient Hardware structure documentation sufficient implementation code Example Refrige rators
126 Viewpoints: Why? 1:n Relationships
127 Viewpoints Hardware 1:n Behaviour Tests Example Refrige rators
128 Viewpoints Well-defined Dependencies No Cycles! Avoid Synchronization! (unless you use a projectional editor)
129
130 Language Modularity expressivity coverage semantics separation of concerns completeness paradigms modularity concrete syntax process
131 Language Modularity, Behavior Composition and Reuse (LMR&C) increase efficiency of DSL development
132 Language Modularity, Behavior Composition and Reuse (LMR&C) increase efficiency of DSL development 4 ways of composition: Referencing Reuse Extension Reuse
133 Language Modularity, Behavior Composition and Reuse (LMR&C) increase efficiency of DSL development 4 ways of composition: distinguished regarding dependencies and fragment structure
134 Dependencies: Behavior do we have to know about the reuse when designing the languages?
135 Dependencies: Behavior do we have to know about the reuse when designing the languages? Fragment Structure: homogeneous vs. heterogeneous ( mixing languages )
136 Behavior Dependencies & Fragment Structure:
137
138 Referencing
139 Referencing Dependent No containment
140 Referencing Used in Viewpoints
141 Referencing Fragment Fragment Fragment
142 Referencing Example Refrige rators
143
144 Extension
145 Extension Dependent Containment
146 Extension more specialized domains more specialized languages
147 Extension D n+1 == D n
148 Extension D n+1 == D n
149 Extension Good for bottom-up (inductive) domains, and for use by technical DSLs (people) D n ==
150 Extension Behavior Drawbacks tightly bound to base potentially hard to analyze the combined program
151 Extension Example Exten ded C
152 Extension Example Exten ded C
153
154 Embedding
155 Embedding
156 Embedding Independent Containment
157 Embedding Example Pension Plans
158 Embedding Behavior Embedding often uses Extension to extend the embedded language to adapt it to its new context.
159
160 Concrete Syntax expressivity coverage semantics separation of concerns completeness paradigms modularity concrete syntax process
161 UI for the language! Important for acceptance by users! Textual Symbolic Tabular Graphical
162 Reuse existing syntax of domain, if any! Tools let you freely combine all kinds.
163 Default: Text Editors simple to build Productive Easy to integrate w/ tools Easy to evolve programs
164 Default: Text Editors simple to build Productive Easy to integrate w/ tools Easy to evolve programs then add other forms, if really necessary
165 Graphical in case Relationships
166 Graphical in case Flow and Depenency
167 Graphical in case Causality and Timing
168 Symbolic Either Mathematical, or often highly inspired by domain
169 Tables
170 Combinations
171 Combinations
172 Combinations
173 Combinations
174
175 The +Markus Voelter
Language Workbenches, Embedded Software and Formal Verification
Language Workbenches, Embedded Software and Formal Verification Markus Voelter independent/itemis voelter@acm.org www.voelter.de voelterblog.blogspot.de @markusvoelter +Markus Voelter Daniel Ratiu ForTISS
More informationA little History Domain Specific Languages Examples Tools Benefits A more theoretical View Programming and Modeling The LWES Project Bonus: Best
Domain Specific Languages Markus Voelter Independent/itemis voelter@acm.org A little History Domain Specific Languages Examples Tools Benefits A more theoretical View Programming and Modeling The LWES
More information10 Thoughts 2 Demos * Discussions
Developing Embedded software with Language Workbenches Stuttgart, 20.09.2011 Markus Voelter Independent/itemis voelter@acm.org 10 Thoughts 2 Demos * Discussions 1 1 Embedded Development Two Classes in
More informationTesting DSLs How to test DSLs, their IDEs and Programs
Testing DSLs How to test DSLs, their IDEs and Programs Markus Voelter independent/itemis voelter@acm.org www.voelter.de voelterblog.blogspot.de @markusvoelter +Markus Voelter A DSL is a focussed, processable
More informationDomain Specific Languages. Product Line Engineering
Using Domain Specific Languages in the context of Product Line Engineering Markus Voelter Independent/itemis voelter@acm.org Using Domain Specific Languages in the context of Product Line Engineering DSLs
More informationLanguage Extension and Composition with Language Workbenches
Language Extension and Composition with Language Workbenches Eelco Visser TU Delft E.Visser@tudelft.nl Markus Voelter Independent/itemis voelter@acm.org Different Worlds Programming Tools!= Modeling Tools
More informationProgramming Modeling Two Worlds? Programmierung Modellierung Zwei Welten? und. and. Markus Voelter Independent/itemis
und Programmierung Modellierung Zwei Welten? and Modeling Two Worlds? Markus Voelter Independent/itemis voelter@acm.org Markus Voelter Independent/itemis voelter@acm.org 1 Languages C# Erlang C++ Python
More informationWhat are Requirements?
Domain Specific Languages and Requirements (Engineering) Markus Voelter www.voelter.de voelter@acm.org What are Requirements? 1 a requirement is a singular documented need of what a particular product
More informationProgramming Languages
Trends in Programming Languages ICALEPCS 2011 Markus Voelter Independent/itemis voelter@acm.org A single language to rule them all An ecosystem of languages An ecosystem of languages The Pendulum Swings
More informationchallenges in domain-specific modeling raphaël mannadiar august 27, 2009
challenges in domain-specific modeling raphaël mannadiar august 27, 2009 raphaël mannadiar challenges in domain-specific modeling 1/59 outline 1 introduction 2 approaches 3 debugging and simulation 4 differencing
More informationDomain Specific - a Binary Decision?
Domain Specific - a Binary Decision? Markus Voelter independent/itemis Ötztaler Strasse 38 70327 Stuttgart, Germany voelter@acm.org Bernhard Merkle SICK AG R&D Software Engineering Erwin-Sick-Str.1 79183
More informationVariability differences among products in PL. Variability in PLE. Language Workbenches. Language Workbenches. Product Line Engineering
PPL 2009 Keynote Markus Voelter Indepenent/itemis voelter@acm.org http://www.voelter.de Language Workbenches in Product Line Engineering Variability in PLE Language Workbenches in Domain Specific Languages
More informationCompositional Model Based Software Development
Compositional Model Based Software Development Prof. Dr. Bernhard Rumpe http://www.se-rwth.de/ Seite 2 Our Working Groups and Topics Automotive / Robotics Autonomous driving Functional architecture Variability
More informationDomain-Specific Languages Language Workbenches
Software Engineering with and Domain-Specific Languages Language Workbenches Peter Friese Itemis peter.friese@itemis.de Markus Voelter Independent/itemis voelter@acm.org 1 Programming Languages C# Erlang
More informationDomain Specific Languages. Requirements (Engineering)
Domain Specific Languages and Requirements (Engineering) Andreas Graf Andreas.graf@itemis.de Markus Voelter www.voelter.de voelter@acm.org What are Requirements? a requirement is a singular documented
More informationDSL Implementation. ... with language Workbenches. v1.1 Jan 16, Markus Voelter independent/itemis
DSL Implementation... with language Workbenches. v1.1 Jan 16, 2013 Markus Voelter independent/itemis voelter@acm.org www.voelter.de voelterblog.blogspot.de @markusvoelter +Markus Voelter Last Year s Talk
More informationSoftware Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.
Software Design Patterns Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University J. Maletic 1 Background 1 Search for recurring successful designs emergent designs from practice
More informationLanguage engineering and Domain Specific Languages
Language engineering and Domain Specific Languages Perdita Stevens School of Informatics University of Edinburgh Plan 1. Defining languages 2. General purpose languages vs domain specific languages 3.
More informationObject-oriented Compiler Construction
1 Object-oriented Compiler Construction Extended Abstract Axel-Tobias Schreiner, Bernd Kühl University of Osnabrück, Germany {axel,bekuehl}@uos.de, http://www.inf.uos.de/talks/hc2 A compiler takes a program
More informationLet s build. like they build. Markus Völter Bernd Kolb
Let s build like they build Markus Völter voelter@acm.org www.voelter.de @markusvoelter Bernd Kolb kolb@itemis.de www.itemis.de @berndkolb B 0 Motivation Examples 1 M Healthcare Context & Motivation Mobile
More informationIntroduction to Dependable Systems: Meta-modeling and modeldriven
Introduction to Dependable Systems: Meta-modeling and modeldriven development http://d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics 3 Software development Automated software
More informationPlan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language
Plan Language engineering and Domain Specific Languages Perdita Stevens School of Informatics University of Edinburgh 1. Defining languages 2. General purpose languages vs domain specific languages 3.
More informationMarkus Völter
of Markus Völter voelter@acm.org www.voelter.de @markusvoelter Examples 1 Healthcare Context & Motivation Mobile Apps that help patients w/ treatments Monitor side-effects and recommend actions Manage
More informationDeclarative. Contracts
Declarative Smart Contracts Markus Völter voelter@acm.org www.voelter.de @markusvoelter 1 Context SMART An actual contract, executed automatically. CONTRACT Any Turing Complete Program running on a Blockchain.
More informationCoding and Unit Testing! The Coding Phase! Coding vs. Code! Coding! Overall Coding Language Trends!
Requirements Spec. Design Coding and Unit Testing Characteristics of System to be built must match required characteristics (high level) Architecture consistent views Software Engineering Computer Science
More informationDesign Pattern and Software Architecture: IV. Design Pattern
Design Pattern and Software Architecture: IV. Design Pattern AG Softwaretechnik Raum E 3.165 Tele.. 60-3321 hg@upb.de IV. Design Pattern IV.1 Introduction IV.2 Example: WYSIWYG Editor Lexi IV.3 Creational
More informationCIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions)
By the end of this course, students should CIS 1.5 Course Objectives a. Understand the concept of a program (i.e., a computer following a series of instructions) b. Understand the concept of a variable
More informationProgramming Assignment IV
Programming Assignment IV 1 Introduction In this assignment, you will implement the static semantics of Cool. You will use the abstract syntax trees (AST) built by the parser to check that a program conforms
More informationLanguage Shapes (Architectural) Thought Markus Völter
Language Shapes (Architectural) Thought Markus Völter voelter@acm.org www.voelter.de @markusvoelter Language Shapes (Architectural) Thought Sapir Whorf hypothesis aka Whorfianism The principle of linguis;c
More informationProgramming Assignment IV Due Monday, November 8 (with an automatic extension until Friday, November 12, noon)
Programming Assignment IV Due Monday, November 8 (with an automatic extension until Friday, November 12, noon) Thus spake the master programmer: A well-written program is its own heaven; a poorly written
More informationGoals. Greater Geate Abstraction work on a higher level do more with less insulate from technology. Increase Value. Reduce lossiness.
MDD: the Good, the Bad and the Ugly Steven Kelly CTO, MetaCase www.metacase.com com stevek@metacase.com Markus Voelter Independent/itemis AG www.voelter.de voelter@acm.org Part 1 1 Goals Goals Greater
More informationDESIGN, EVOLUTION AND USE
DESIGN, EVOLUTION AND USE of KernelF voelter@acm.org www.voelter.de @markusvoelter Markus Völter Check out the paper! http://voelter.de/data /pub/kernelf-icmt.pdf EXAMPLE 1 Healthcare 1 Context Mobile
More informationDesign Patterns. An introduction
Design Patterns An introduction Introduction Designing object-oriented software is hard, and designing reusable object-oriented software is even harder. Your design should be specific to the problem at
More informationREVIEW AND OUTLOOKS OF THE MEANS FOR VISUALIZATION OF SYNTAX SEMANTICS AND SOURCE CODE. PROCEDURAL AND OBJECT ORIENTED PARADIGM DIFFERENCES
REVIEW AND OUTLOOKS OF THE MEANS FOR VISUALIZATION OF SYNTAX SEMANTICS AND SOURCE CODE. PROCEDURAL AND OBJECT ORIENTED PARADIGM DIFFERENCES Hristo Hristov Abstract. In the article, we have reviewed the
More informationContemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.
Contemporary Design We have been talking about design process Let s now take next steps into examining in some detail Increasing complexities of contemporary systems Demand the use of increasingly powerful
More informationCSSE 490 Model-Based Software Engineering: Software Factories
CSSE 490 Model-Based Software Engineering: Software Factories Shawn Bohner Office: Moench Room F212 Phone: (812) 877-8685 Email: bohner@rose-hulman.edu Learning Outcomes: MBE Discipline Relate Model-Based
More informationTopic 1: Introduction
Recommended Exercises and Readings Topic 1: Introduction From Haskell: The craft of functional programming (3 rd Ed.) Readings: Chapter 1 Chapter 2 1 2 What is a Programming Paradigm? Programming Paradigm:
More informationArchiMate 2.0. Structural Concepts Behavioral Concepts Informational Concepts. Business. Application. Technology
ArchiMate Core Structural Concepts Behavioral Concepts Informational Concepts interaction Technology Application Layer Concept Description Notation Concept Description Notation Actor An organizational
More informationSemantic Modularization Techniques in Practice: A TAPL case study
1 Semantic Modularization Techniques in Practice: A TAPL case study Bruno C. d. S. Oliveira Joint work with Weixin Zhang, Haoyuan Zhang and Huang Li July 17, 2017 Text 2 EVF: An Extensible and Expressive
More informationDescribing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms?
Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms? CIS 8690 Enterprise Architectures Duane Truex, 2013 Cognitive Map of 8090
More informationThe PISA Project A Model Driven Development case study
In collaboration with The PISA Project A Model Driven Development case study Pedro J. Molina, PhD. May 19 th, 2007 Contents Introduction Goals Foundations Design aspects & Trade-offs Demo Problems found
More informationProjecting a Modular Future
Projecting a Modular Future Markus Voelter 1, Jos Warmer 2, and Bernd Kolb 3 1 independent/itemis, voelter@acm.org 2 independent, jos.warmer@openmodeling.nl 3 itemis, bernd.kolb@itemis.de Abstract. We
More informationLectures 20, 21: Axiomatic Semantics
Lectures 20, 21: Axiomatic Semantics Polyvios Pratikakis Computer Science Department, University of Crete Type Systems and Static Analysis Based on slides by George Necula Pratikakis (CSD) Axiomatic Semantics
More informationAutomated Testing of DSL Implementations
Software Quality Journal manuscript No. (will be inserted by the editor) Automated Testing of DSL Implementations Experiences from Building mbeddr Daniel Ratiu Markus Voelter Domenik Pavletic Received:
More informationVerification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1
Verification and Validation 1 Objectives To introduce software verification and validation and to discuss the distinction between them To describe the program inspection process and its role in V & V To
More informationCMPT Data and Program Organization
CMPT-201 - Data and Program Organization Professor: Bill Havens Office: APSC-10828 Lectures: MWF 2:30pm - 3:20pm Venue: C-9002 WWW: http://www.cs.sfu.ca/coursecentral/201 Office Hours: Monday @3:30pm January
More informationConcepts of Programming Languages
Concepts of Programming Languages Lecture 1 - Introduction Patrick Donnelly Montana State University Spring 2014 Patrick Donnelly (Montana State University) Concepts of Programming Languages Spring 2014
More informationDesign Pattern: Composite
Design Pattern: Composite Intent Compose objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individual objects and compositions of objects uniformly. Motivation
More informationTopics in Object-Oriented Design Patterns
Software design Topics in Object-Oriented Design Patterns Material mainly from the book Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides; slides originally by Spiros Mancoridis;
More informationFrustrated by all the hype?
Fundamentals of Software Architecture Looking beyond the hype Markus Völter (voelter@acm.org) Introduction Frustrated by all the hype? If so this presentation is for you. Otherwise you should leave People
More informationIntroduction to MDE and Model Transformation
Vlad Acretoaie Department of Applied Mathematics and Computer Science Technical University of Denmark rvac@dtu.dk DTU Course 02291 System Integration Vlad Acretoaie Department of Applied Mathematics and
More informationModelica Change Proposal MCP-0019 Flattening (In Development) Proposed Changes to the Modelica Language Specification Version 3.
Modelica Change Proposal MCP-0019 Flattening (In Development) Proposed Changes to the Modelica Language Specification Version 3.3 Revision 1 Table of Contents Preface 3 Chapter 1 Introduction 3 Chapter
More informationProgramming Languages (PL)
1 2 3 4 5 6 7 8 9 10 11 Programming Languages (PL) Programming languages are the medium through which programmers precisely describe concepts, formulate algorithms, and reason about solutions. In the course
More informationPrinciples of Programming Languages
Principles of Programming Languages www.cs.bgu.ac.il/~ppl172 Collaboration and Management Dana Fisman Lesson 2 - Types with TypeScript 1 Types What are types in programming languages? What types are you
More informationProgramming Languages 2nd edition Tucker and Noonan"
Programming Languages 2nd edition Tucker and Noonan" " Chapter 1" Overview" " A good programming language is a conceptual universe for thinking about programming. " " " " " " " " " " " " "A. Perlis" "
More informationextensible Markup Language
extensible Markup Language XML is rapidly becoming a widespread method of creating, controlling and managing data on the Web. XML Orientation XML is a method for putting structured data in a text file.
More informationComp 411 Principles of Programming Languages Lecture 7 Meta-interpreters. Corky Cartwright January 26, 2018
Comp 411 Principles of Programming Languages Lecture 7 Meta-interpreters Corky Cartwright January 26, 2018 Denotational Semantics The primary alternative to syntactic semantics is denotational semantics.
More informationApplying Model Driven Technologies in the Creation. of Domain Specific Modeling Languages
Applying Model Driven Technologies in the Creation Model Driven Development Language Editor Generator Abstraction Model Driven Development Refinement of Domain Specific Modeling Languages Bruce Trask Angel
More informationAn Information Model for High-Integrity Real Time Systems
An Information Model for High-Integrity Real Time Systems Alek Radjenovic, Richard Paige, Philippa Conmy, Malcolm Wallace, and John McDermid High-Integrity Systems Group, Department of Computer Science,
More informationMDSE USE CASES. Chapter #3
Chapter #3 MDSE USE CASES Teaching material for the book Model-Driven Software Engineering in Practice by Morgan & Claypool, USA, 2012. www.mdse-book.com MDSE GOES FAR BEYOND CODE-GENERATION www.mdse-book.com
More informationWhat do Compilers Produce?
What do Compilers Produce? Pure Machine Code Compilers may generate code for a particular machine, not assuming any operating system or library routines. This is pure code because it includes nothing beyond
More informationG Programming Languages Spring 2010 Lecture 4. Robert Grimm, New York University
G22.2110-001 Programming Languages Spring 2010 Lecture 4 Robert Grimm, New York University 1 Review Last week Control Structures Selection Loops 2 Outline Subprograms Calling Sequences Parameter Passing
More informationCSc 372. Comparative Programming Languages. 2 : Functional Programming. Department of Computer Science University of Arizona
1/37 CSc 372 Comparative Programming Languages 2 : Functional Programming Department of Computer Science University of Arizona collberg@gmail.com Copyright c 2013 Christian Collberg 2/37 Programming Paradigms
More informationPart 5. Verification and Validation
Software Engineering Part 5. Verification and Validation - Verification and Validation - Software Testing Ver. 1.7 This lecture note is based on materials from Ian Sommerville 2006. Anyone can use this
More informationModel-Driven Engineering (MDE) Lecture 1: Metamodels and Xtext Regina Hebig, Thorsten Berger
Model-Driven Engineering (MDE) Lecture 1: Metamodels and Xtext Regina Hebig, Thorsten Berger Reuses some material from: Andrzej Wasowski, Model-Driven Development, ITU Copenhagen Where I am from WASP 2017
More informationInheritance (Chapter 7)
Inheritance (Chapter 7) Prof. Dr. Wolfgang Pree Department of Computer Science University of Salzburg cs.uni-salzburg.at Inheritance the soup of the day?! Inheritance combines three aspects: inheritance
More informationAADL Graphical Editor Design
AADL Graphical Editor Design Peter Feiler Software Engineering Institute phf@sei.cmu.edu Introduction An AADL specification is a set of component type and implementation declarations. They are organized
More informationPrinciples of Programming Languages
Principles of Programming Languages www.cs.bgu.ac.il/~ppl172 Collaboration and Management Dana Fisman Lesson 5 - Data Types and Operations on Data 1 Types - what we already know Types define sets of values
More informationA Multi-layered Domain-specific Language for Stencil Computations
A Multi-layered Domain-specific Language for Stencil Computations Christian Schmitt Hardware/Software Co-Design, University of Erlangen-Nuremberg SPPEXA-Kolloquium, Erlangen, Germany; July 09, 2014 Challenges
More informationDistributed Systems Programming (F21DS1) Formal Verification
Distributed Systems Programming (F21DS1) Formal Verification Andrew Ireland Department of Computer Science School of Mathematical and Computer Sciences Heriot-Watt University Edinburgh Overview Focus on
More informationLecture 13: Expression Evaluation
The University of North Carolina at Chapel Hill Spring 2002 Lecture 13: Expression Evaluation Feb 8 1 Control Flow Control flow refers to the order in which a program executes This is fundamental in the
More informationObject Oriented Programming in Java. Jaanus Pöial, PhD Tallinn, Estonia
Object Oriented Programming in Java Jaanus Pöial, PhD Tallinn, Estonia Motivation for Object Oriented Programming Decrease complexity (use layers of abstraction, interfaces, modularity,...) Reuse existing
More informationRuntime Checking for Program Verification Systems
Runtime Checking for Program Verification Systems Karen Zee, Viktor Kuncak, and Martin Rinard MIT CSAIL Tuesday, March 13, 2007 Workshop on Runtime Verification 1 Background Jahob program verification
More informationG Programming Languages - Fall 2012
G22.2110-003 Programming Languages - Fall 2012 Lecture 4 Thomas Wies New York University Review Last week Control Structures Selection Loops Adding Invariants Outline Subprograms Calling Sequences Parameter
More informationCompilers and Interpreters
Overview Roadmap Language Translators: Interpreters & Compilers Context of a compiler Phases of a compiler Compiler Construction tools Terminology How related to other CS Goals of a good compiler 1 Compilers
More informationArchitecture-driven development of Climate Control Software LMS Imagine.Lab Embedded Software Designer Siemens DF PL
Architecture-driven development of Climate Control Software LMS Imagine.Lab Embedded Software Designer Siemens DF PL Restricted Siemens AG 2017 Realize innovation. Content 1 Overview 3 2 LMS Imagine.Lab
More informationa paradigm for the Introduction to Semantic Web Semantic Web Angelica Lo Duca IIT-CNR Linked Open Data:
Introduction to Semantic Web Angelica Lo Duca IIT-CNR angelica.loduca@iit.cnr.it Linked Open Data: a paradigm for the Semantic Web Course Outline Introduction to SW Give a structure to data (RDF Data Model)
More informationDomain-Specific Languages for Composable Editor Plugins
Domain-Specific Languages for Composable Editor Plugins LDTA 2009, York, UK Lennart Kats (me), Delft University of Technology Karl Trygve Kalleberg, University of Bergen Eelco Visser, Delft University
More informationReading assignment: Reviews and Inspections
Foundations for SE Analysis Reading assignment: Reviews and Inspections M. E. Fagan, "Design and code inspections to reduce error in program development, IBM Systems Journal, 38 (2&3), 1999, pp. 258-287.
More informationDefinition of Information Systems
Information Systems Modeling To provide a foundation for the discussions throughout this book, this chapter begins by defining what is actually meant by the term information system. The focus is on model-driven
More informationVerification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1
Verification and Validation Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1 Verification vs validation Verification: "Are we building the product right?. The software should
More informationSemester (kick-off) project: The BRAINF CK Language
Semester (kick-off) project: The BRAINF CK Language Sébastien Mosser mosser@i3s.unice.fr 2016 Third Year Polytech Nice Sophia Antipolis 1 Introduction & Objectives The goal of this project is to leverage
More informationFeature Modeling. Krzysztof Czarnecki & Simon Helsen University of Waterloo
Feature Modeling Krzysztof Czarnecki & Simon Helsen University of Waterloo czarnecki@acm.org www.generative-programming.org Overview Basic Feature Modeling Concepts Exercise AmiEddi-XML 1.3 Captain Feature
More informationwith openarchitectureware
Model-Driven Development with openarchitectureware Markus Völter voelter@acm.orgorg www.voelter.de Sven Efftinge sven@efftinge.de www.efftinge.de Bernd Kolb bernd@kolbware.de www.kolbware.de 2006-7 Völter,
More informationPage 1. Reading assignment: Reviews and Inspections. Foundations for SE Analysis. Ideally want general models. Formal models
Reading assignment: Reviews and Inspections Foundations for SE Analysis M. E. Fagan, "Design and code inspections to reduce error in program development, IBM Systems Journal, 38 (2&3), 999, pp. 258-28.
More informationVerification and Validation
Lecturer: Sebastian Coope Ashton Building, Room G.18 E-mail: coopes@liverpool.ac.uk COMP 201 web-page: http://www.csc.liv.ac.uk/~coopes/comp201 Verification and Validation 1 Verification and Validation
More informationThink of drawing/diagramming editors. ECE450 Software Engineering II. The problem. The Composite pattern
Think of drawing/diagramming editors ECE450 Software Engineering II Drawing/diagramming editors let users build complex diagrams out of simple components The user can group components to form larger components......which
More informationThe etrice Eclipse Project Proposal
The etrice Eclipse Project Proposal Dipl.-Ing. Thomas Schütz, Protos Software GmbH Eclipse Embedded Day 2010, Stuttgart Agenda Motivation Scope of etrice ROOM Language Codegenerators Middleware Realization
More informationTypes II. Hwansoo Han
Types II Hwansoo Han Arrays Most common and important composite data types Homogeneous elements, unlike records Fortran77 requires element type be scalar Elements can be any type (Fortran90, etc.) A mapping
More informationMetamodeling. Janos Sztipanovits ISIS, Vanderbilt University
Metamodeling Janos ISIS, Vanderbilt University janos.sztipanovits@vanderbilt.edusztipanovits@vanderbilt edu Content Overview of Metamodeling Abstract Syntax Metamodeling Concepts Metamodeling languages
More informationAbout the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Compiler Design
i About the Tutorial A compiler translates the codes written in one language to some other language without changing the meaning of the program. It is also expected that a compiler should make the target
More informationCSE 12 Abstract Syntax Trees
CSE 12 Abstract Syntax Trees Compilers and Interpreters Parse Trees and Abstract Syntax Trees (AST's) Creating and Evaluating AST's The Table ADT and Symbol Tables 16 Using Algorithms and Data Structures
More informationSDC Design patterns GoF
SDC Design patterns GoF Design Patterns The design pattern concept can be viewed as an abstraction of imitating useful parts of other software products. The design pattern is a description of communicating
More informationWritten Presentation: JoCaml, a Language for Concurrent Distributed and Mobile Programming
Written Presentation: JoCaml, a Language for Concurrent Distributed and Mobile Programming Nicolas Bettenburg 1 Universitaet des Saarlandes, D-66041 Saarbruecken, nicbet@studcs.uni-sb.de Abstract. As traditional
More informationCS558 Programming Languages
CS558 Programming Languages Fall 2016 Lecture 3a Andrew Tolmach Portland State University 1994-2016 Formal Semantics Goal: rigorous and unambiguous definition in terms of a wellunderstood formalism (e.g.
More informationGoals: Define the syntax of a simple imperative language Define a semantics using natural deduction 1
Natural Semantics Goals: Define the syntax of a simple imperative language Define a semantics using natural deduction 1 1 Natural deduction is an instance of first-order logic; that is, it is the formal
More informationStatic Analysis by A. I. of Embedded Critical Software
Static Analysis by Abstract Interpretation of Embedded Critical Software Julien Bertrane ENS, Julien.bertrane@ens.fr Patrick Cousot ENS & CIMS, Patrick.Cousot@ens.fr Radhia Cousot CNRS & ENS, Radhia.Cousot@ens.fr
More informationCSCI B522 Lecture 11 Naming and Scope 8 Oct, 2009
CSCI B522 Lecture 11 Naming and Scope 8 Oct, 2009 Lecture notes for CS 6110 (Spring 09) taught by Andrew Myers at Cornell; edited by Amal Ahmed, Fall 09. 1 Static vs. dynamic scoping The scope of a variable
More informationAn Introduction to Software Engineering. David Greenstein Monta Vista High School
An Introduction to Software Engineering David Greenstein Monta Vista High School Software Today Software Development Pre-1970 s - Emphasis on efficiency Compact, fast algorithms on machines with limited
More informationVisitor Pattern.» Represent an operation to be performed on all of the components of an object structure
Visitor Pattern Intent» Represent an operation to be performed on all of the components of an object structure» Define new operations on a structure without changing the classes representing the components
More information