Programming Modeling Two Worlds? Programmierung Modellierung Zwei Welten? und. and. Markus Voelter Independent/itemis
|
|
- Rosamund Horn
- 6 years ago
- Views:
Transcription
1 und Programmierung Modellierung Zwei Welten? and Modeling Two Worlds? Markus Voelter Independent/itemis Markus Voelter Independent/itemis 1
2 Languages C# Erlang C++ Python Ruby Java Groovy Fortran C Languages are not expressive enough. C# Erlang C++ Python Ruby Java Groovy Fortran C Languages are not high-level enough. C# Erlang C++ Python Ruby Java Groovy Fortran C 2
3 Languages are not abstract enough. C# Erlang C++ Python Ruby Java Groovy Fortran C Languages are not domain-specific enough. C# Erlang C++ Python Ruby Java Groovy Fortran C Languages are not enough. C# Erlang C++ Python Ruby Java Groovy Fortran C Languages Formats C# Erlang C++ Python Ruby Java Groovy json Fortran HTML C yaml CSS XML Languages Formats Frameworks C# Erlang C++ Ruby Java json Python Django Groovy Fortran C JEE WPF JMS yaml CSS Rails lift HTML XML Languages Formats Frameworks are not enough. C# Erlang C++ Ruby Java json Python Django Groovy Fortran C JEE WPF JMS yaml CSS Rails lift HTML XML 3
4 So? Modeling Higher Level Domain Specific Concepts & Notations Code Generation Interpretation Solves the Problem! DSL general purpose domain specific tailor made effective++ specialized, limited used by experts together with other specialized tools 4
5 But: Different Worlds Tools!= Modeling Tools Modeling Modeling (Mostly) Textual Notations Concrete Syntax Storage (Fancy) ASCII Editors Read-Only Visualizations Modeling (Mostly) Graphical Notations Abstract Syntax Storage Projecting Editors Different editable views for model (Mostly) Textual Notations Concrete Syntax Storage (Fancy) ASCII Editors Read-Only Visualizations Why the difference? 5
6 History? Why the difference? It is time for a Different Perspective Modeling == == Modeling modeling == programming 6
7 modeling == programming at different levels of abstraction from different viewpoints integrated! modeling == programming with different degrees of domain-specificity with suitable notations with suitable expressiveness modeling == programming And always: precise and tool processable Language Workbench (Martin Fowler) Language Workbench (Martin Fowler) Freely define languages and integrate them 7
8 Language Workbench (Martin Fowler)? use persistent abstract representation Language Workbench (Martin Fowler) language ::= + schema + editors generators Language Workbench (Martin Fowler)? projectional editing Language Workbench (Martin Fowler) persist incomplete or contradictory information Language Workbench (Martin Fowler) + powerful editing testing refactoring debugging groupware language definition implies IDE definition Language Workbench (Martin Fowler) support for classical classical and+ modeling programming 8
9 Syntax primarily textual Syntax primarily textual with more symbols think: mathematics Syntax primarily textual sometimes box&line style When a graphical notation is better, you can visualize. 9
10 Available Tooling Eclipse Xtext Modeling as Programmig (Mostly) Textual Notations Concrete Syntax Storage (Fancy) ASCII Editors Read-Only Visualizations Custom Syntax Graphical Textual Symbolic++ IDE Support Teamwork Debugging Custom Editors Complete Symbolic Integration Goto Def Find Refs Refactoring Infrastructure Integration storage not text diff/merge with existing tools existing text work well! 10
11 Language Composition Limited to Unicode Grammar composition with traditional parsers is tough! More advanced parsers currently resarch how to handle non-character symbols Graphics!= Text two worlds separate editors per syntax/viewpoint models can still be ref integrated
12 Xtext: Specify Grammar Xtext: Generated Editor Xtext: Generated Editor Xtext: Generated Editor Code Completion Syntax Coloring Custom Keyword Coloring Xtext: Generated Editor Realtime Constraint Validation Xtext: Generated Editor Customizable Outlines 12
13 Xtext: Generated Editor Code Folding Xtext: Generated Editor Goto Definition Find References Cross-File References Model as EMF DEMO I Building DSLs with Eclipse Xtext Available Tooling Jetbrains Meta System 13
14 Parser-based text to tree to text Projectional tree to text-lookalike (editor) to other trees **+ to text as Modeling (Mostly) Graphical Notations Abstract Syntax Storage Projecting Editors Different editable views for model as Modeling (Mostly) Graphical Any kind of Notations Abstract Syntax Storage Projecting Editors Different editable views for model Language Composition There s no parsing. Unique Language Element Identity. Unlimted language composition. Flexible Notations Textual } like ASCII box & line mathematical Graphical Semi-Graphical treated the same can be mixed 14
15 Automatic IDE Extension tool support is inherent for languages build with projectional tools language definition implies IDE definition Multiple Notations for the same concepts e.g. in different contexts or for different tasks Tree Editing is different from editing text try to make it feel like text takes some getting used to but: for more flexible notations a more general editing paradigm is needed Infrastructure Integration storage is not text diff/merge must be in tool existing text tools don t work Proprietary Tools no standards no interop 15
16 Build new standalone DSLs licensed under Apache 2.0 released in Q currently 1.1 RC1 Build new standalone DSLs Build DSLs that reuse parts of other languages Build new standalone DSLs Build DSLs that reuse parts of other languages (MPS comes with BaseLanguage) extend base language Java++ Build new standalone DSLs Build DSLs that reuse parts of other languages Language Extension Example Java + Extension (MPS comes with BaseLanguage) extend base language build DSLs that reuse parts of BaseLanguage Java++ 16
17 Language Extension Example Old Java ReadWriteLock l = l.readlock().lock(); try { //code } finally { l.readlock().unlock(); } Java + Extension Language Extension Example Old Java ReadWriteLock l = l.readlock().lock(); try { //code } finally { l.readlock().unlock(); } New Java + Extension ReadWriteLock l = lock (l) { //code } Structure Editor Typesystem Generator Structure Editor Typesystem Generator Structure Editor Typesystem Generator 17
18 Structure Editor Typesystem Generator Structure Editor Typesystem Generator Structure Editor Typesystem Generator Structure Editor Typesystem Generator Structure Editor Typesystem Generator Structure Editor Typesystem Generator 18
19 Language Extension Example Result behaves like a native base language construct Language Extension Example Result behaves like a native base language construct Language Extension Example Translated to regular Java code based on the generator package jaxdemo.sandbox.sandbox; import java.util.concurrent.locks.lock; public class DemoClass { private Lock lock; public DemoClass() { try { this.getlock().lock(); SharedResouce.instance().doSomething(); } finally { this.getlock().unlock(); } } private Lock getlock() { return this.lock; } } DEMO II Building DSLs with JetBrains MPS 19
20 A vision for Languages are not MODULAR enough. Languages are not COMPOSABLE enough. Languages are not CONFIGURABLE enough. Languages are not ADAPTABLE enough. Language Syntax is not FLEXIBLE enough. 20
21 Big Language? o a b n c m k L d e j f i g h with many first class concepts! Small Language? Modular Language L my L a b c d e f g h i j k l with a few, orthogonal and poweful concepts with many optional, composable concepts Modular Language Modular Language Like frameworks and libraries, Like frameworks and libraries, but with syntax and IDE support 21
22 Not a new idea Growing A Language (Guy L Steele) 22
23 Example Languages 23
24 24
25 25
26 26
27 (Seemingly) Simple Example Adding matrices to C in an embedded environment. Currently: Currently: Declare Data Structures in XML Generate Headers Implement manually in C Matrices not supported in XML format and generator Currently: Tool team would have to do the extension a lot of work busy one central tool Currently: No real compiler support in the resulting C code type checks operator overloading generics (matrix<int>) matrix syntax? 27
28 Better Solution Better Solution Better Solution generic matrix and vector types real matrix and vector literals Better Solution Better Solution syntax highlights for vectors and matrices operator overloading 28
29 Better Solution Better Solution operator overloading static optimization symmetrical matrices identity matrix diagonal matrices math notation Better Solution a separate language module used only by those who really need it Available Tooling Intentional Software Domain Workbench 29
30 Commercial Product Eval available upon request Eval available upon request Pension Workbench Example Pension Workbench Example Text Editing Domain Insurance Mathematics Domain Pension Workbench Example Pension Workbench Example Pension Contract Rules Domain All in one Document 30
31 Pension Workbench Example Symbolically integrated THE END. THE END..coordinates web skype schogglad xing linkedin web skype schogglad xing linkedin web skype schogglad xing linkedin
32 .coordinates web skype schogglad xing linkedin
Domain-Specific Languages Language Workbenches
Software Engineering with and Domain-Specific Languages Language Workbenches Peter Friese Itemis peter.friese@itemis.de Markus Voelter Independent/itemis voelter@acm.org 1 Programming Languages C# Erlang
More 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 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 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 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 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 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 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 informationA conceptual framework for building good DSLs. Markus Voelter independent/itemis
DSL Design A conceptual framework for building good DSLs Markus Voelter independent/itemis voelter@acm.org www.voelter.de voelterblog.blogspot.de @markusvoelter +Markus Voelter based on material from a
More informationExtending Java TM TM And Developing DSLs With JetBrains MPS Open- Source Language Workbench
Extending Java TM TM And Developing DSLs With JetBrains MPS Open- Source Language Workbench Konstantin Solomatov JetBrains Lead Developer for JetBrains MPS Project 1 Agenda > Extending languages. Why bother?
More 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 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 informationbuilding DSLs with language workbenches
ThoughtWorks building DSLs with language workbenches NEAL FORD software architect / meme wrangler ThoughtWorks nford@thoughtworks.com 3003 Summit Boulevard, Atlanta, GA 30319 www.nealford.com www.thoughtworks.com
More informationUsing Scala for building DSL s
Using Scala for building DSL s Abhijit Sharma Innovation Lab, BMC Software 1 What is a DSL? Domain Specific Language Appropriate abstraction level for domain - uses precise concepts and semantics of domain
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 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 informationCSSE 490 Model-Based Software Engineering: Domain Specific Language Introduction
CSSE 490 Model-Based Software Engineering: Domain Specific Language Introduction Shawn Bohner Office: Moench Room F212 Phone: (812) 877-8685 Email: bohner@rose-hulman.edu Plan for the Day Introduction
More 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 informationABAP DSL Workbench SAP TechED 2016
ABAP DSL Workbench SAP TechED 2016 Barcelona, November 2016-0 - Hello. Hello. Example Asia Diner Yes? Number 77. Take away? No. Hello. Hello. Hello. Hello. As always? Yes. As always? Yes. Where are the
More 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 informationXtext. Introduction and Real World Samples. Hendrik Bünder, itemis AG. itemis AG
Xtext Introduction and Real World Samples Hendrik Bünder, itemis AG Who is this guy? Hendrik Bünder IT-Consultant Agenda Introduction to Xtext What, How, Why? Common DSLs DSLs that no longer impress anybody.
More 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 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 informationPractical DSL Design. Groovy Sydney Meetup May 4th, Peter Bell CEO/CTO SystemsForge
Practical DSL Design Groovy Sydney Meetup May 4th, 2010 Peter Bell CEO/CTO SystemsForge Overview Before DSLs... What is a DSL? Creating a DSL Good DSL Design Key Concepts Implementing DSLs in Groovy Testing
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 informationINT NTION L. Domain Expert DSLs
INT NTION L S O F T W A R E E A Domain Expert DSLs Magnus Christerson Intentional Software Corporation Henk Kolk CTO Financial Services, Capgemini The Challenge Business to accelerate Collabora ation Business
More informationLanguage 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 informationAn Evaluation of Domain-Specific Language Technologies for Code Generation
An Evaluation of Domain-Specific Language Technologies for Code Generation Christian Schmitt, Sebastian Kuckuk, Harald Köstler, Frank Hannig, Jürgen Teich Hardware/Software Co-Design, System Simulation,
More 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 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 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 informationSOA = Same Old Architecture?
SOA = Same Old Architecture? Gregor Hohpe Software Engineer www.eaipatterns.com Could It Be So Easy? WSDL SOAP WS-* Int MyMethod(String text) { } WebMethod Cut Copy Paste Buzzword compliant, but not a
More 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 informationDomain-Specific. Languages. Martin Fowler. AAddison-Wesley. Sydney Tokyo. With Rebecca Parsons
Domain-Specific Languages Martin Fowler With Rebecca Parsons AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Paris Madrid Sydney Tokyo Singapore
More 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 informationopenarchitectureware 4.1 An introduction
openarchitectureware 4.1 An introduction Markus Voelter, www.voelter.de, openarchitectureware (oaw) is a suite of tools and components assisting with model driven software development, more precisely it
More informationbuilding dsl s in static & dynamic languages
ThoughtWorks building dsl s in static & dynamic languages NEAL FORD thoughtworker / meme wrangler ThoughtWorks 14 Wall St, Suite 2019, New York, NY 10005 nford@thoughtworks.com www.nealford.com www.thoughtworks.com
More 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 informationIntroduction to XML. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University
Introduction to XML Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University http://gear.kku.ac.th/~krunapon/xmlws 1 Topics p What is XML? p Why XML? p Where does XML
More informationDániel Darvas Domain-specific languages (DSLs): what, how and when?
Dániel Darvas Domain-specific languages (DSLs): what, how and when? ICE Tea 21/02/2014 Outline Theory Concept of DSLs Technology Support for DSLs Reality Some details of the ST Example DSL Theory / Concept
More informationAutomatized Generating of GUIs for Domain-Specific Languages
Automatized Generating of GUIs for Domain-Specific Languages Michaela Bačíková, Dominik Lakatoš, and Milan Nosáľ Technical University of Košice, Letná 9, 04200 Košice, Slovakia, (michaela.bacikova, dominik.lakatos,
More informationDeveloping Web-Based Applications Using Model Driven Architecture and Domain Specific Languages
Proceedings of the 8 th International Conference on Applied Informatics Eger, Hungary, January 27 30, 2010. Vol. 2. pp. 287 293. Developing Web-Based Applications Using Model Driven Architecture and Domain
More informationComparing graphical DSL editors
Comparing graphical DSL editors AToM 3 vs GMF & MetaEdit+ Nick Baetens Outline Introduction MetaEdit+ Specifications Workflow GMF Specifications Workflow Comparison 2 Introduction Commercial Written in
More informationIntroduction to XML 3/14/12. Introduction to XML
Introduction to XML Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University http://gear.kku.ac.th/~krunapon/xmlws 1 Topics p What is XML? p Why XML? p Where does XML
More informationCS Exam #1-100 points Spring 2011
CS 4700 - Exam #1-100 points Spring 2011 Fill in the blanks (1 point each) 1. syntactic sugar is a term coined for additions to the syntax of a computer language that do not affect its expressiveness but
More informationSoftware Language Engineering of Architectural Viewpoints
Software Language Engineering of Architectural Viewpoints Elif Demirli and Bedir Tekinerdogan Department of Computer Engineering, Bilkent University, Ankara 06800, Turkey {demirli,bedir}@cs.bilkent.edu.tr
More informationA Family of Languages for Architecture Description
A Family of Languages for Architecture Description Markus Voelter Independent Consultant, Grabenstrasse 4, 73033 Goeppingen, Germany voelter@acm.org, http://www.voelter.de Abstract In this paper I describe
More informationPEG-Based Language Workbench
PEG-Based Language Workbench Yuriy Korenkov, Ivan Loginov, Arthur Lazdin Saint Petersburg National Research University of Information Technologies, Mechanics and Optics Saint Petersburg, Russia ged.yuko,
More informationScala, Your Next Programming Language
Scala, Your Next Programming Language (or if it is good enough for Twitter, it is good enough for me) WORLDCOMP 2011 By Dr. Mark C. Lewis Trinity University Disclaimer I am writing a Scala textbook that
More informationBridgePoint Roadmap Possibilities
BridgePoint Roadmap Possibilities September 2017 BridgePoint Roadmap - Background Need for excellent xtuml tools forever Balancing Needs of existing projects Community growth Technology convergence Vision
More informationStructured Data Representation for Multiple Programming Languages on Java VM
Structured Data Representation for Multiple Programming Languages on Java VM Kazuaki Maeda Abstract This paper describes RugsOn, a new representation written in a text-based data format. The design principle
More informationDSL vs. Library API Shootout
DSL vs. Library API Shootout Rich Unger Salesforce.com Jaroslav Tulach Oracle Agenda What do we mean by DSL? What do we mean by library? When is it good to use a DSL? When is it a bad idea? Evolution Versioning
More 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 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 informationTurning a Suite of Modeling and Processing Tools Into a Production Grade System
Turning a Suite of Modeling and Processing Tools Into a Production Grade System Pascal Rivière 1, Olivier Rosec 1 1 Caisse nationale d assurance vieillesse (Cnav) 110 112 avenue de Flandre, F-75019 Paris
More informationAssigns a number to 110,000 letters/glyphs U+0041 is an A U+0062 is an a. U+00A9 is a copyright symbol U+0F03 is an
Unicode Unicode Assigns a number to 110,000 letters/glyphs U+0041 is an A U+0062 is an a UTF U+00A9 is a copyright symbol U+0F03 is an Universal Character Set Transformation Format describes how zeroes
More informationTransition from EBNF to Xtext
Transition from EBNF to Xtext Jianan Yue State Key Laboratory for Novel Software Technology, Nanjing University Department of Computer Science & Technology, Nanjing University 210023 Nanjing, China b111220168@smail.nju.edu.cn
More informationMatrex Table of Contents
Matrex Table of Contents Matrex...1 What is the equivalent of a spreadsheet in Matrex?...2 Why I should use Matrex instead of a spreadsheet application?...3 Concepts...4 System architecture in the future
More informationChristian Doppler Laboratory
Christian Doppler Laboratory Software Engineering Integration For Flexible Automation Systems AutomationML Models (in EMF and EA) for Modelers and Software Developers Emanuel Mätzler Institute of Software
More informationRaising the Level of Development: Models, Architectures, Programs
IBM Software Group Raising the Level of Development: Models, Architectures, Programs Dr. James Rumbaugh IBM Distinguished Engineer Why Is Software Difficult? Business domain and computer have different
More informationWhat is a compiler? Xiaokang Qiu Purdue University. August 21, 2017 ECE 573
What is a compiler? Xiaokang Qiu Purdue University ECE 573 August 21, 2017 What is a compiler? What is a compiler? Traditionally: Program that analyzes and translates from a high level language (e.g.,
More informationProgramming in Scala Second Edition
Programming in Scala Second Edition Martin Odersky, Lex Spoon, Bill Venners artima ARTIMA PRESS WALNUT CREEK, CALIFORNIA Contents Contents List of Figures List of Tables List of Listings Foreword Foreword
More informationJRuby. A Ruby VM in Java jruby.sourceforge.net Charles Oliver Nutter, presenting
JRuby A Ruby VM in Java jruby.sourceforge.net Charles Oliver Nutter, presenting Who Am I? Charles Oliver Nutter: headius@headius.com Senior Architect/Technologist at Ventera Corp (gov t, financial, telecom
More informationTools to Develop New Linux Applications
Tools to Develop New Linux Applications IBM Software Development Platform Tools for every member of the Development Team Supports best practices in Software Development Analyst Architect Developer Tester
More informationCS1102: What is a Programming Language?
CS1102: What is a Programming Language? Kathi Fisler, WPI September 13, 2007 1 The Design and Programming Perspectives To start to understand what comprises a programming language, let s consider sample
More informationSyntax and Grammars 1 / 21
Syntax and Grammars 1 / 21 Outline What is a language? Abstract syntax and grammars Abstract syntax vs. concrete syntax Encoding grammars as Haskell data types What is a language? 2 / 21 What is a language?
More informationIntroduction to Model Driven Engineering using Eclipse. Frameworks
Introduction to Model Driven Engineering using Eclipse Model Driven Development Generator s Bruce Trask Angel Roman MDE Systems Abstraction Model Driven Development Refinement 1 Part I Agenda What is Model
More informationThe Unified Modelling Language. Example Diagrams. Notation vs. Methodology. UML and Meta Modelling
UML and Meta ling Topics: UML as an example visual notation The UML meta model and the concept of meta modelling Driven Architecture and model engineering The AndroMDA open source project Applying cognitive
More informationThe Next Generation of Eclipse: e4. Mike Milinkovich Executive Director Eclipse Foundation
The Next Generation of Eclipse: e4 Mike Milinkovich Executive Director Eclipse Foundation 1 Changing Environment New Technologies: RIA Applications and Cloud Computing AJAX, Flash, Silverlight Amazon E2
More informationFunctional Programming Lecture 1: Introduction
Functional Programming Lecture 1: Introduction Viliam Lisý Artificial Intelligence Center Department of Computer Science FEE, Czech Technical University in Prague viliam.lisy@fel.cvut.cz Acknowledgements
More informationEclipse technology in IFMS Interface Management System
Eclipse Finance Day 2013 Eclipse technology in IFMS Interface Management System Marc Schlienger A story today about Eclipse and IFMS SOA at Credit Suisse The construction of a System MDD in the large Leveraging
More informationDefining Domain-Specific Modeling Languages
Defining Domain-Specific Modeling Languages 1 st Oct 2008 Juha-Pekka Tolvanen MetaCase 1 Relevant language classifications to start with General-Purpose / Domain-Specific Narrow area of interest Often
More informationADT: Eclipse development tools for ATL
ADT: Eclipse development tools for ATL Freddy Allilaire (freddy.allilaire@laposte.net) Tarik Idrissi (tarik.idrissi@laposte.net) Université de Nantes Faculté de Sciences et Techniques LINA (Laboratoire
More informationDesign Principles that Make the Difference
Design Principles that Make the Difference Franz Nelissen: FNelissen@gams.com GAMS Development Corp. GAMS Software GmbH www.gams.com Company Background Roots: World Bank, 1976 GAMS Development Corporation
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 informationSpoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT
Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT Karl Trygve Kalleberg 1 Department of Informatics, University of Bergen, P.O. Box 7800, N-5020 BERGEN,
More informationCSE341: Programming Languages Lecture 26 Course Victory Lap. Dan Grossman Spring 2016
CSE341: Programming Languages Lecture 26 Course Victory Lap Dan Grossman Spring 2016 Final Exam As also indicated in class-list email: Next Monday, 8:30-10:20 Intention is to focus primarily on material
More informationIntroduction to OpenArchitectureWare
Introduction to OpenArchitectureWare Dr. Neil Loughran Neil.Loughran@sintef.no 20 th April 2009 ICT 1 Objective To give some insights into an alternative model transformation approach i.e. OpenArchitectureWare
More informationBig forms with JSON schemas and Transcrypt. November 15th, 2018 Philippe Entzmann
Big forms with JSON schemas and Transcrypt November 15th, 2018 Philippe Entzmann Reinsurance of car insurers pyparis 2018 big forms with json-schema and transcrypt 2 Victim s injuries follow-up Yearly
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 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 informationElliotte Rusty Harold August From XML to Flat Buffers: Markup in the Twenty-teens
Elliotte Rusty Harold elharo@ibiblio.org August 2018 From XML to Flat Buffers: Markup in the Twenty-teens Warning! The Contenders XML JSON YAML EXI Protobufs Flat Protobufs XML JSON YAML EXI Protobuf Flat
More informationComparison and merge use-cases from practice with EMF Compare
Comparison and merge use-cases from practice with EMF Compare Laurent Delaigue Philip Langer EMF Compare Working with models Comparing text files EMF Compare Working with models Comparing models EMF Compare
More informationWhole Platform Foundation. The Long Way Toward Language Oriented Programming
Whole Platform Foundation The Long Way Toward Language Oriented Programming 2008 by Riccardo Solmi made available under the Creative Commons License last updated 22 October 2008 Outline Aim: Engineering
More informationBIG MODELS AN ALTERNATIVE APPROACH
2. BIG MODELS AN ALTERNATIVE APPROACH Whitepaper Eclipse Summit 2008 Modeling Symposium Jos Warmer, Ordina (jos.warmer@ordina.nl) Abstract Scaling up modeling within project runs into many practical problems.
More informationx ide xml Integrated Development Environment Specifications Document 1 Project Description 2 Specifi fications
x ide xml Integrated Development Environment Specifications Document Colin Hartnett (cphartne) 7 February 2003 1 Project Description There exist many integrated development environments that make large
More informationFunctional Programming and the Web
June 13, 2011 About Me Undergraduate: University of Illinois at Champaign-Urbana PhD: Penn State University Retrofitting Programs for Complete Security Mediation Static analysis, type-based compiler Racker:
More informationA Domain-Specific Language for Cross- Platform Smartphone Application Development
Master s Thesis A Domain-Specific Language for Cross- Platform Smartphone Application Development Kristoffer Rosén Department of Computer Science Faculty of Engineering LTH Lund University, 2013 ISSN 1650-2884
More informationWhen Modeling meets Productivity. Sven Efftinge - itemis
When Modeling meets Productivity Sven Efftinge - itemis I Eclipse JDT I GIT So what s the Problem? It s the Language not the Tooling! Level of Abstraction Reuse existing, proven technology and apply
More informationSOAPScript For squeaky-clean code, use SOAPScript Language Summary Bob Nisco Version 0.5 β
SOAPScript For squeaky-clean code, use SOAPScript Language Summary Bob Nisco Version 0.5 β This page intentionally left blank? It s a paradox more so than a question. Nisco 2 Nisco 3 1. Introduction SOAPScript,
More informationDynamic Languages Toolkit. Presented by Andrey Tarantsov
Dynamic Languages Toolkit Presented by Andrey Tarantsov Dynamic Languages Toolkit Serves as a foundation for scripting and dynamically-typed language IDEs Generalizes JDT code and follows its architecture
More informationGrading for Assignment #1
Grading for Assignment #1-4 -35 Out of 100 points points off for not following directions Name in wrong place Wrong dimensions in image or html no name, weird links Linking to whatever page had a picture
More informationRubyMine, the most advanced Ruby and Rails IDE
RubyMine, the most advanced Ruby and Rails IDE JetBrains RubyMine is a powerful Integrated development environment (IDE) built specifically for Ruby and Rails developers. How does RubyMine match up against
More 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 informationDDI more than just an XML-metadata-standard. Marcel Hebing (DIW Berlin) Vancouver, April 2014
DDI more than just an XML-metadata-standard Marcel Hebing (DIW Berlin) Vancouver, April 2014 Two separate thoughts 1. DDI is more than the XML implementation. 2. DDI is more than an standard for metadata.
More informationCS2900 Introductory Programming with Python and C++ Kevin Squire LtCol Joel Young Fall 2007
CS2900 Introductory Programming with Python and C++ Kevin Squire LtCol Joel Young Fall 2007 Course Web Site http://www.nps.navy.mil/cs/facultypages/squire/cs2900 All course related materials will be posted
More informationSERG. Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT
Delft University of Technology Software Engineering Research Group Technical Report Series Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT Karl Trygve
More informationCSE450. Translation of Programming Languages. Lecture 11: Semantic Analysis: Types & Type Checking
CSE450 Translation of Programming Languages Lecture 11: Semantic Analysis: Types & Type Checking Structure Project 1 - of a Project 2 - Compiler Today! Project 3 - Source Language Lexical Analyzer Syntax
More information