The Spoofax Language Workbench Rules for Declarative specification of language and IDEs Lennart C. L. Kats and Eelco Visser Delft University of Technology.

Slides:



Advertisements
Similar presentations
Complexity Metrics for Design & Manufacturability Analysis
Advertisements

1 Hugo Bruneliere (INRIA) MODELPLEX Interim Review, Brussels (Belgium), 27 th of March 2009 WP3 - Model Engineering D3.2.d “Global Model Management Traceability.
Elevator Simulator DSL Project Presented by Miguel Garzón and Stéphane Leblanc 1.
ANTLR in SSP Xingzhong Xu Hong Man Aug Outline ANTLR Abstract Syntax Tree Code Equivalence (Code Re-hosting) Future Work.
Developing Domain-Specific Languages for the JVM Travis Dazell Systems Architect Digi-Key Corporation.
Adaptive Processes Software Processes Adaptive Processes.
LIFE CYCLE MODELS FORMAL TRANSFORMATION
Semantic Mutation Testing John A. Clark, Haitao Dan, Robert M Hierons.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System modeling 2.
Reverse Engineering © SERG Code Cloning: Detection, Classification, and Refactoring.
The Knowledge Industry Survival Strategy (KISS) Tony Clark, Thames Valley University, London, UK Jorn Bettin, Sofismo, Switzerland.
SSP Re-hosting System Development: CLBM Overview and Module Recognition SSP Team Department of ECE Stevens Institute of Technology Presented by Hongbing.
Train Control Language Teaching Computers Interlocking By: J. Endresen, E. Carlson, T. Moen1, K. J. Alme, Haugen, G. K. Olsen & A. Svendsen Synthesizing.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
1/18 CS 693/793 Lecture 09 Special Topics in Domain Specific Languages CS 693/793-1C Spring 2004 Mo, We, Fr 10:10 – 11:00 CH 430.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
1 SWE Introduction to Software Engineering Lecture 5.
End-to-End Design of Embedded Real-Time Systems Kang G. Shin Real-Time Computing Laboratory EECS Department The University of Michigan Ann Arbor, MI
CSCI-383 Object-Oriented Programming & Design Lecture 15.
© 2008 Zend Technologies; made available under the EPL v March 2008 PDT – The PHP Development Toolkit Assaf Almaz, PDT co-Project Leader Zend Technologies.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Type-Directed, Whitespace-Delimited Parsing for Embedded DSLs Cyrus Omar School of Computer Science Carnegie Mellon University [GlobalDSL13] Benjamin ChungAlex.
Bridging the chasm between MDE and the world of compilation Nondini Das 1.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
Xactium xDSLs Run Models Not Code Tony Clark
Sumant Tambe, et. al LEESA DSPD 2008 An Embedded Declarative Language for Hierarchical Object Structure Traversal Sumant Tambe* Aniruddha Gokhale Vanderbilt.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
1 Extending Java And Developing DSLs With Open Source Language Workbench JetBrains MPS Konstantin Solomatov JetBrains Lead Developer for JetBrains MPS.
Mihir Daptardar Software Engineering 577b Center for Systems and Software Engineering (CSSE) Viterbi School of Engineering 1.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Agenda 1. Introduction 2. Overview of SU-MoVal 3. OCL-based Model Validation 4. QVT-based Transformations 5. Demo of SU-MoVal 6. Conclusion and Future.
Mbeddr : AN EXTENSIBLE C-BASED PROGRAMMING LANGUAGE AND IDE FOR EMBEDDED SYSTEMS CISC 836 WINTER 2015 APOORV GOYAL MENG, ECE DEPT QUEEN’S UNIVERSITY.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions.
Computer Concepts 2014 Chapter 12 Computer Programming.
Vision The ultimate IDE/CASE tool should supports all steps in the software development process. Current tools perform only minimal semantic-level analysis.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Chapter 7 System models.
A language to describe software texture in abstract design models and implementation.
System models l Abstract descriptions of systems whose requirements are being analysed.
Software Engineering, 8th edition Chapter 8 1 Courtesy: ©Ian Somerville 2006 April 06 th, 2009 Lecture # 13 System models.
1 A Model-Driven Approach For Information System Migration Raymonde Le Delliou 1, Nicolas Ploquin 2, Mariano Belaunde 3, Reda Bendraou 4, Louis Féraud.
Development Tools © Copyright 2014, Fred McClurg All Rights Reserved.
Automated Transformation of Statements Within Evolving Domain Specific Languages Peter Bell CEO/CTO, SystemsForge 7th OOPSLA Workshop on Domain-Specific.
Protein Manipulation Domain Specific Language Lu Sun Shuo Wu.
Eclipse 24-Apr-17.
Stratego Song Zhou *Include slides from language.org/Stratego/SlidesForSoftwareGeneration2001http:// language.org/Stratego/SlidesForSoftwareGeneration2001.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
December 4, ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development:
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
Semantics for DSL Group Members: Ritu Arora, Diyang Chu, Zekai Demirezen, Jeff Gray, Jacob Gulotta, Luis Pedro, Arturo Sanchez, Greg Sullivan,Ximing Yu.
N NESSTAR: A Semantic Web Application for Statistical Data and Metadata Pasqualino “Titto” Assini Nesstar Ltd - UK.
Gordana Rakić, Zoran Budimac
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Cooperative Computing & Communication Laboratory A Survey on Transformation Tools for Model-Based User Interface Development Robbie Schäfer – Paderborn.
© Fraunhofer IESE Fraunhofer IESE Multi-Language Development of Embedded Systems Dr. Thomas Kuhn Tel.:
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
R-Verify: Deep Checking of Embedded Code James Ezick † Donald Nguyen † Richard Lethin † Rick Pancoast* (†) Reservoir Labs (*) Lockheed Martin The Eleventh.
Connecting Architecture Reconstruction Frameworks Ivan Bowman, Michael Godfrey, Ric Holt Software Architecture Group University of Waterloo CoSET ‘99 May.
FUNCTIONAL PROGRAMING AT WORK - HASKELL AND DOMAIN SPECIFIC LANGUAGES Dr. John Peterson Western State Colorado University.
1 SWE Introduction to Software Engineering Lecture 14 – System Modeling.
Design Pattern Support based on principles of model driven development Zihao Zhao.
Software Architecture for Multimodal Interactive Systems : Voice-enabled Graphical Notebook.
ECE 750 Topic 8 Meta-programming languages, systems, and applications Automatic Program Specialization for J ava – U. P. Schultz, J. L. Lawall, C. Consel.
Part 1 The Basics of Information Systems. Purpose of Information Systems Information systems ◦ Collects, stores and organizes information ◦ Retrieves.
CSCI 383 Object-Oriented Programming & Design Lecture 15 Martin van Bommel.
Abstract descriptions of systems whose requirements are being analysed
Implementing Language Extensions with Model Transformations
DotnetConf 12/3/2018 1:48 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE.
Implementing Language Extensions with Model Transformations
Presentation transcript:

The Spoofax Language Workbench Rules for Declarative specification of language and IDEs Lennart C. L. Kats and Eelco Visser Delft University of Technology Presented by: Samta Garg MEng (ECE) CISC 836: Models in Software Development: Methods, Techniques and Tools

Evolution of Software Engineering High level languages reduced the gap b/w problem and solution Domain specific Languages further reduced the gap b/w problem and implementation

Making langugages should be cheap

How can we make these things cheaply? Syntax definition Static semantics Model-to-model transformation Code generation Syntactic Editor Services Semantic Editor Services } Language Workbenches (Fowler ‘05) Fowler described that language workbenches greatly increase the cost effectiveness of developing a new language, perhaps even to the point that they can be developed for a single application as sometimes strived for in language-oriented programming.

Martin Fowler says: I use Language Oriented Programming to mean the general style of development which operates about the idea of building software around of a set of DSLs. I use Language Workbench as a generic term for this new breed of tools. It is one way to do language oriented programming

The Spoofax Language Workbench It is an integrated environment for the specification of languages with IDE support in Eclipse It supports language definition with declarative domain specific languages It enables efficient, agile development of software languages. SDF is used for supporting language extensions and embeddings Stratego is a transformation language which supports analysis, transformation, and code generation

For the definition of generic IDE components

Syntactic Editor Services Syntax highlighting Code folding Outline view Bracket highlighting and insertion Syntax completion

SDF: Declarative Syntax Definition

Content Completion

Semantic Analysis Stratego ( Error Markings) Desugaring (Simplify abstract representation) Reporting Warnings (Transformational process) Code Generation

Stratego: Rewriting Language Error Markings with Rewrite Rules

Code Generation with Rewrite Rules

Conclusion

Positive Points Improvements Comparison to similar tools Coherent flow Future work is explanatory Impactful Conclusion Practical comparison based on performance and precision is not included Error marking is tedious

Demo time