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

A Framework for Developing Compiler-like Components

  • Upload
    tatum

  • View
    25

  • Download
    2

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: A Framework for Developing  Compiler-like Components

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

Page 2: A Framework for Developing  Compiler-like Components

Outline

• Research aim• Motivation• The Component Framework• Research Questions• Case study

Page 3: A Framework for Developing  Compiler-like Components

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.

Page 4: A Framework for Developing  Compiler-like Components

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.

Page 5: A Framework for Developing  Compiler-like Components

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.

Page 6: A Framework for Developing  Compiler-like Components

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

Page 7: A Framework for Developing  Compiler-like Components

Proposed of Components

•Front-end compiler components- Scanner

- Parser - Tree-builder - Tree Matcher - Tree Rewriting - Structure Editor - Formatter

Page 8: A Framework for Developing  Compiler-like Components

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)?

Page 9: A Framework for Developing  Compiler-like Components

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).

Page 10: A Framework for Developing  Compiler-like Components

Questions & Suggestions

Thank You!

The End