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