100 likes | 751 Views
A Framework for Developing Compiler-like Components. Jackline Ssanyu ( Software Engineering and Technology Group) Eindhoven University of Technology Supervisors: 1. Mark Van De Brand
E N D
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).
The End Questions & Suggestions Thank You!