Research in Compilers and How it Relates to Software Engineering Part III: Relation to SE Tomofumi Yuki EJCP 2015 June 22, Nancy.

Slides:



Advertisements
Similar presentations
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Advertisements

Professor John Hosking, Dean of Engineering and Computer Science Models, Modelling, MBSE.
Hydra (A General Framework for Formalizing UML with Formal Languages for Embedded Systems*) *from the Ph.D. thesis of William E. McUmber Software Engineering.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
Filling the Gap Between System Design & Performance Verification Rafik HENIA, Laurent RIOUX, Nicolas SORDON Thales Research & Technology.
Train Control Language Teaching Computers Interlocking By: J. Endresen, E. Carlson, T. Moen1, K. J. Alme, Haugen, G. K. Olsen & A. Svendsen Synthesizing.
Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
CS 290C: Formal Models for Web Software Lecture 6: Model Driven Development for Web Software with WebML Instructor: Tevfik Bultan.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Mining Metamodels From Instance Models: The MARS System Faizan Javed Department of Computer & Information Sciences, University of Alabama at Birmingham.
Course Instructor: Aisha Azeem
Software Engineering Tools and Methods Presented by: Mohammad Enamur Rashid( ) Mohammad Rashim Uddin( ) Masud Ur Rahman( )
10 December, 2013 Katrin Heinze, Bundesbank CEN/WS XBRL CWA1: DPM Meta model CWA1Page 1.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Spectra Software Defined Radio Products Applying Model Driven Design, Generative Programming, and Agile Software Techniques to the SDR Domain OOPSLA '05.
Foundations of Programming Languages – Course Overview Xinyu Feng Acknowledgments: some slides taken or adapted from lecture notes of Stanford CS242
Romaric GUILLERM Hamid DEMMOU LAAS-CNRS Nabil SADOU SUPELEC/IETR.
PROGRAMMING LANGUAGES The Study of Programming Languages.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Bridging the chasm between MDE and the world of compilation Nondini Das 1.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
Research in Compilers and How it Relates to Software Engineering Part I: Compiler Research Tomofumi Yuki EJCP 2015 June 22, Nancy.
Introduction to MDA (Model Driven Architecture) CYT.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Building Tools by Model Transformations in Eclipse Oskars Vilitis, Audris Kalnins, Edgars Celms, Elina Kalnina, Agris Sostaks, Janis Barzdins Institute.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Verification and Validation in the Context of Domain-Specific Modelling Janne Merilinna.
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
A language to describe software texture in abstract design models and implementation.
Composition of UML Described Refactoring Rules Presented by Chin-Yi Tsai.
An Introduction to Software Engineering. Communication Systems.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
INRIA - LaBRICharles Consel Jan-06 1 Domain-Specific Software Engineering Charles Consel Phoenix Research Group LaBRI /INRIA-Futurs January 2006.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Graphical Modeling Framework (GMF) Richard C. Gronback Project Lead.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
Semantics for DSL Group Members: Ritu Arora, Diyang Chu, Zekai Demirezen, Jeff Gray, Jacob Gulotta, Luis Pedro, Arturo Sanchez, Greg Sullivan,Ximing Yu.
1 Compiler Design (40-414)  Main Text Book: Compilers: Principles, Techniques & Tools, 2 nd ed., Aho, Lam, Sethi, and Ullman, 2007  Evaluation:  Midterm.
Weaving a Debugging Aspect into Domain-Specific Language Grammars SAC ’05 PSC Track Santa Fe, New Mexico USA March 17, 2005 Hui Wu, Jeff Gray, Marjan Mernik,
Architecture Analysis Techniques
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
LanguageLab A Meta-modelling Environment Terje Gjøsæter and Andreas Prinz, University of Agder, Norway SDL Forum 2015, Berlin, Germany.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
Formal Methods in Software Engineering1 Today’s Agenda  Mailing list  Syllabus  Introduction.
Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software.
Software Systems Division (TEC-SW) ASSERT process & toolchain Maxime Perrotin, ESA.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Ch. 31 Software Engineering Principles CSC 3910 Software Engineering Time: 1:30 to 2:20Meeting Days: MWFLocation: Oxendine 1256 Textbook: Fundamentals.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Systems Architectures System Integration & Architecture.
George Edwards Computer Science Department Center for Systems and Software Engineering University of Southern California
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
The PLA Model: On the Combination of Product-Line Analyses 강태준.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Advanced Computer Systems
Object-Oriented Software Engineering Using UML, Patterns, and Java,
课程名 编译原理 Compiling Techniques
Model-Driven Analysis Frameworks for Embedded Systems
The Extensible Tool-chain for Evaluation of Architectural Models
Software Architecture & Design
Presentation transcript:

Research in Compilers and How it Relates to Software Engineering Part III: Relation to SE Tomofumi Yuki EJCP 2015 June 22, Nancy

What is Software Engineering? Can you describe SE? Engineering applied to software What is engineering? Goals of SE easy to understand easy to modify easy to debug with little cost in performance 2 EJCP 2015, June 22, Nancy

The Problem Building software pyramids EJCP 2015, June 22, Nancy 3

If software developers built the pyramids … EJCP 2015, June 22, Nancy 4

Software Engineering Programmer s Software Engineers SE Researchers no goto class hierarchy generics design patterns development cycles UML specifications generative methods Application (Local) Application (Local) Application (Global) Application (Global) Develop/Invent Techniques Develop/Invent Techniques structured prog. software coverage fault injection product-lines find cause of failure 5 compiler techniques compiler techniques EJCP 2015, June 22, Nancy 5

Quick and Dirty View Compiler is all about abstraction Software Engineering is all about abstraction  Compiler = Software Engineering it is a stretch (of course) Programming Languages probably a better intersection how to better write in a language how to design a language to ease programming 6 EJCP 2015, June 22, Nancy

Example 1: Object-Orientation Initial motivation was modularity More SE developments later on design patterns polymorphism 7 op1 a, b, c op2 a, d, e op3 f, c, e... op1 a, b, c op2 a, d, e op3 f, c, e... main() {... foo(..);... bar(..);... } main() {... foo(..);... bar(..);... } class A {... foo()... } class B {...} class A {... foo()... } class B {...} EJCP 2015, June 22, Nancy

Example 2: Deadlock Detection Many approaches check if a problem can deadlock ensure its absence by language design ensure its absence by coding principles catch and resolve at run-time Is it SE problem or PL problem? papers appear in both domains 8 EJCP 2015, June 22, Nancy

Today’s Focus: MDE Specific instance where compiler and SE meet Model Driven Engineering Key Connection 9 EJCP 2015, June 22, Nancy Model Instance = Program Instance Model = Grammar Many Tools and Problems are Shared

MDE: A Solution Goal of MDE: reducing accidental complexities bridging wide abstraction gaps Key Element: support rigorous transformation of abstractions to software implementations MDE is concerned with developing software tools to support the work of software developers 10 MDE helps make a software developer a software engineer EJCP 2015, June 22, Nancy

What is a Model? A description of an aspect of a software-based system that may or may not exist. A model is created to serve one or more purposes. 11 EJCP 2015, June 22, Nancy

Early focus of MDE Models for documentation/communication Foundation: early work on CASE Models for generating implementations OMG’s work on UML and MDA Model Transformations Software development viewed as a transformative process Key enablers of MDA 12 EJCP 2015, June 22, Nancy

MDE Example 1 Discuss the desired software with model stay high-level easy to visualize model Transform to another model fill some details check for properties Generate code (skeleton) implement the details EJCP 2015, June 22, Nancy 13 Model Model’ Code

Evolution of MDE Breathing life into models Models as analyzable artifacts Foundation from formal specification Models for managing runtime behavior Supporting domain-specific software development Applying MDE technologies in other CS domains 14 EJCP 2015, June 22, Nancy

MDE Example 2 There exists a software corresponding model Develop another one similar but different How to maximize reuse productivity reliability... EJCP 2015, June 22, Nancy 15 Model A Tool A Model B Tool B

Tools for MDE Mapping concrete syntax parser generation graphical language Constraint checking check if rules of the model is satisfied more advanced check (e.g., cycles) Code generation from model EJCP 2015, June 22, Nancy 16

Optimizing Compilers Goal: generate “efficient” code Execution time Energy consumption Code size Wide range of optimizations Register allocation Dead code elimination Automatic parallelization Run-time optimizations 17 EJCP 2015, June 22, Nancy

Optimizing Compiler Research Prototype implementations “Proof of Concept” Evaluation Compilers are complicated pieces of software Need for rapid development Development spans generations of students Performance of compiler prototype not critical 18 EJCP 2015, June 22, Nancy

Optimizing Compiler Examples High-level flow of two research compilers: 19 1.Parse source language 2.Transform intermediate representations (IRs) for efficiency. May take domain specific knowledge as additional inputs. 3.Output code or binary EJCP 2015, June 22, Nancy

Research Compiler Challenges Maintainable and Sustainable Code Developers may not have good SE background Structural Validity of IR Is the IR consistent after parsing/transformation? Complex Querying of IR Find where to apply transformations Interfacing with External Tools Avoid as much re-implementation as possible 20 EJCP 2015, June 22, Nancy

More Challenges Semantics Preserving Transformations Compilers should not alter semantics Use of Domain Specific Knowledge How to incorporate domain specific knowledge Code Generation Generate code for different target architecture programming model 21 EJCP 2015, June 22, Nancy

Bridging with MDE View compiler IRs as models 22 DSLs and Tooling Model Transformations and Analyses Code Generation EJCP 2015, June 22, Nancy

Challenges Analyses and Manipulation of IRs 23 Structural Validation Complex Querying and Transformation s EJCP 2015, June 22, Nancy

Challenges and MDE Solutions Analyses and Manipulation of IRs 24 Structural Validation Complex Querying and Transformation s Structural Properties on models (conformity) OCL constraints Structural Properties on models (conformity) OCL constraints OCL queries M2M tools Rewriting rules OCL queries M2M tools Rewriting rules EJCP 2015, June 22, Nancy

Challenges Domain specific knowledge is heavily utilized 25 Domain Specific Knowledge Representation EJCP 2015, June 22, Nancy

Challenges and MDE Solutions Domain specific knowledge is heavily utilized 26 Domain Specific Knowledge Representation MDE-based DSLs Generative approaches (editor, parser) MDE-based DSLs Generative approaches (editor, parser) EJCP 2015, June 22, Nancy

Challenges Code generation and external tools 27 Domain Specific Knowledge as additional inputs Code Generation Use of External Tools (term rewriting, ML, LP, CSP, …) Use of External Tools (term rewriting, ML, LP, CSP, …) Code Generation Use of External Tools (term rewriting, ML, LP, CSP, …) Use of External Tools (term rewriting, ML, LP, CSP, …) Use of External Tools (term rewriting, ML, LP, CSP, …) Use of External Tools (term rewriting, ML, LP, CSP, …) EJCP 2015, June 22, Nancy

Challenges and MDE Solutions Code generation and external tools 28 Domain Specific Knowledge as additional inputs Code Generation Use of External Tools (term rewriting, ML, LP, CSP, …) Use of External Tools (term rewriting, ML, LP, CSP, …) Code Generation Use of External Tools (term rewriting, ML, LP, CSP, …) Use of External Tools (term rewriting, ML, LP, CSP, …) Use of External Tools (term rewriting, ML, LP, CSP, …) Use of External Tools (term rewriting, ML, LP, CSP, …) M2T tools (Xpand/Xtend) Metatools Metamodel instrumentation Defining new generative tools Metatools Metamodel instrumentation Defining new generative tools EJCP 2015, June 22, Nancy

Limitations of MDE MDE does not let you do something “new” It may take more time, but you can do it MDE does not help if your idea isn’t right You may have your prototype in 2 weeks but, it does not help you get good numbers 29 EJCP 2015, June 22, Nancy

Some Remaining Challenges Model transformation verification and testing Property preserving model transformations Coping with a multitude of DSLs Avoid defining and tooling of a DSL from scratch Inter-language reasoning Scalability Compilers handle large models Maturity of MDE tools 30 EJCP 2015, June 22, Nancy

Perspectives MDE can learn from optimizing compilers in: Knowledge of the platform (PDM) Efficiency and scalability culture Anticipate use of DSLs to grow Thus, every software engineer will have to deal with compilation chains for DSLs 31 EJCP 2015, June 22, Nancy

Main Message Compiler may not be so far away from you! 3 years is short, but don’t just look at your tiny little domain many fields are closely connected of course, sometimes it’s good to focus 32 EJCP 2015, June 22, Nancy

Acknowledgements Some slides in this talk was taken from my a talk for our paper done by Robert France Benoit Combemale Steven Derrien Sanjay Rajopadhye Clement Guy Antoine Floch EJCP 2015, June 22, Nancy 33