A Framework for Developing Compiler-like Components Jackline Ssanyu ( Software Engineering and Technology Group) Eindhoven University of Technology Supervisors:

Slides:



Advertisements
Similar presentations
Introduction to Compiler Construction
Advertisements

Semantic Analysis Chapter 4. Role of Semantic Analysis Following parsing, the next two phases of the "typical" compiler are – semantic analysis – (intermediate)
Compiler Construction by Muhammad Bilal Zafar (AP)
Goran Šuković, University of Montenegro 1/21 Compiler Construction Course at University of Montenegro 7 th Workshop on “Software Engineering Education.
Query Execution Professor: Dr T.Y. Lin Prepared by, Mudra Patel Class id: 113.
Train Control Language Teaching Computers Interlocking By: J. Endresen, E. Carlson, T. Moen1, K. J. Alme, Haugen, G. K. Olsen & A. Svendsen Synthesizing.
Cpeg421-08S/final-review1 Course Review Tom St. John.
1 Semantic Processing. 2 Contents Introduction Introduction A Simple Compiler A Simple Compiler Scanning – Theory and Practice Scanning – Theory and Practice.
The Data Mining Visual Environment Motivation Major problems with existing DM systems They are based on non-extensible frameworks. They provide a non-uniform.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
C SC 520 Principles of Programming Languages 1 C SC 520: Principles of Programming Languages Peter J. Downey Department of Computer Science Spring 2006.
Query Execution Professor: Dr T.Y. Lin Prepared by, Mudra Patel Class id: 113.
The Query Compiler 16.1 Parsing and Preprocessing Meghna Jain(205) Dr. T. Y. Lin.
SMIILE Finaly COBOL! and what else is new Gordana Rakić, Zoran Budimac.
BİL744 Derleyici Gerçekleştirimi (Compiler Design)1.
1 Ivano Malavolta, University of L’aquila, Computer Science Department Ivano Malavolta DUALLy: an Eclipse platform for architectural languages interoperability.
Bridging the chasm between MDE and the world of compilation Nondini Das 1.
Copyright © 2005 Elsevier Chapter 4 :: Semantic Analysis Programming Language Pragmatics Michael L. Scott.
September 7, September 7, 2015September 7, 2015September 7, 2015 Azusa, CA Sheldon X. Liang Ph. D. Computer Science at Azusa Pacific University.
Workshop on Integrated Application of Formal Languages, Geneva J.Fischer Mappings, Use of MOF for Language Families Joachim Fischer Workshop on.
MDA and QVT  Tom Gullion, Director of Product Management, Together Products.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
Parser-Driven Games Tool programming © Allan C. Milne Abertay University v
MDE Model Driven Engineering Xavier Blanc Université Pierre et Marie Curie
Introduction to Compiler Construction Robert van Engelen COP5621 Compiler Construction Copyright Robert.
Grammar Variation in Compiler Design Carl Wu. Three topics Syntax Grammar vs. AST Component(?)-based grammar Aspect-oriented grammar.
Compiler course 1. Introduction. Outline Scope of the course Disciplines involved in it Abstract view for a compiler Front-end and back-end tasks Modules.
Korea Advanced Institute of Science and Technology, Dept. of EECS, Div. of CS, Information Systems Lab. 1/10 CS204 Course Overview Prof.
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
May 31, May 31, 2016May 31, 2016May 31, 2016 Azusa, CA Sheldon X. Liang Ph. D. Computer Science at Azusa Pacific University Azusa Pacific University,
Towards the better software metrics tool motivation and the first experiences Gordana Rakić Zoran Budimac.
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:
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
Software Design Process
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,
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
Gordana Rakić, Zoran Budimac
Compiler Introduction 1 Kavita Patel. Outlines 2  1.1 What Do Compilers Do?  1.2 The Structure of a Compiler  1.3 Compilation Process  1.4 Phases.
LanguageLab A Meta-modelling Environment Terje Gjøsæter and Andreas Prinz, University of Agder, Norway SDL Forum 2015, Berlin, Germany.
SSQSA present and future Gordana Rakić, Zoran Budimac Department of Mathematics and Informatics Faculty of Sciences University of Novi Sad
ISBN Chapter 4 Lexical and Syntax Analysis.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Compilers: Prelim/0 1 Compiler Structures Objective – –to give some background on the course , Semester 1, Who I am: Andrew Davison.
Object-Oriented Parsing and Transformation Kenneth Baclawski Northeastern University Scott A. DeLoach Air Force Institute of Technology Mieczyslaw Kokar.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 9: Design Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter.
CSC 4181 Compiler Construction
© 2008 UniTESK Lab, ISP RAS; made available under the EPL v1.0 Towards Common Language Toolkit Institute for System Programming of RAS,
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
©SoftMoore ConsultingSlide 1 Teaching Compiler Design.
ICS312 Introduction to Compilers Set 23. What is a Compiler? A compiler is software (a program) that translates a high-level programming language to machine.
AUTOMATIC GENERATION OF MODEL TRAVERSALS FROM METAMODEL DEFINITIONS Authors: Tomaž Lukman, Marjan Mernik, Zekai Demirezen, Barrett Bryant, Jeff Gray ACM.
Design Pattern Support based on principles of model driven development Zihao Zhao.
CS416 Compiler Design1. 2 Course Information Instructor : Dr. Ilyas Cicekli –Office: EA504, –Phone: , – Course Web.
Teaching Compiler Design
PRINCIPLES OF COMPILER DESIGN
Introduction to Compiler Construction
Syntax Analysis Chapter 4.
Compiler Lecture 1 CS510.
4 (c) parsing.
Introduction to Compiler Construction
Implementing Language Extensions with Model Transformations
Evaluating Compuware OptimalJ as an MDA tool
Compiler Construction
Compiler Structures 0. Preliminaries
Introduction to Compiler Construction
Implementing Language Extensions with Model Transformations
Lecture One: Automata Theory Amjad Ali
Introduction to Compiler Construction
Presentation transcript:

A Framework for Developing Compiler-like Components Jackline Ssanyu ( Software Engineering and Technology Group) Eindhoven University of Technology Supervisors: 1. Mark Van De Brand 2. Kees Hemeric

Outline Research aim Motivation The Component Framework Research Questions Case study

Research Aim Design and develop a framework for developing compiler- like components - based-on existing theory, techniques and tools. - by applying MDSD and CBSD design principles.

Motivation Compiler construction has well-defined tasks – scanning, parsing, tree building, tree Rewriting, ……. – tasks are used in other applications, not necessarily compilers – suitable to be defined as components with simple interfaces. – can combine components in different ways to build applications for different purposes. Compiler field started in 1950’s – before use of components and models in software construction. – CBSD and MDSD came later. – existing compiler-related tools have not really utilized them. Example 1 – Many tools are based on one parsing algorithm – LL, LR,..... – E.g Lex/Yacc, JavaCC, Eli, Antlr, Grammatica – Would like to have a grammar component connected to parser components of different algorithms.

Motivation Example 2 - Tools require effort to learn them in order to use them – input specifications are mixture of grammar and code – no clear separation between PIM and PSM – would like to define algorithms for developing different components at a high level of abstraction. – To enable users provide input specifications in the usual mathematical notation. – use model transformations to later realize the specifications and algorithms into a specific programming language.

The Component Framework Characteristics - components will be described at a high-level of abstraction. - components of the same type but using different algorithms to solve a problem. - users will be able to adjust attributes of the components to generate applications of their choice. - ability to combine components in different ways to get different applications. - embed the framework in existing frameworks such as Eclipse or.NET

Proposed of Components Front-end compiler components - Scanner - Parser - Tree-builder - Tree Matcher - Tree Rewriting - Structure Editor - Formatter

Research Questions What are the right abstractions and notions for components at PIM level that can later be realized into different PSMs? What kind of transformations do we need to obtain concrete applications from the models of abstraction? How will the components be organized(Architecture)?

Case Study Will consider one or more of the following: - Grammar Workbench. - A toolkit for a compiler course. - Processing Natural language into SQL queries for data manipulation. - Processing of XML - Small programming language for a teaching environment. - Small mathematical language (grammar for sets, propositions, Boolean Algebra).

Questions & Suggestions Thank You! The End