C-language code generator for SOFA 2
C-language code generator for SOFA 2
diploma thesis (DEFENDED)
View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/49603Identifiers
Study Information System: 76440
Collections
- Kvalifikační práce [11217]
Author
Advisor
Referee
Bulej, Lubomír
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Software Systems
Department
Department of Software Engineering
Date of defense
5. 9. 2011
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Excellent
Keywords (Czech)
komponeny, softwarové konektory, generátor kódu, abstraktní syntaktický strom, Stratego, XTKeywords (English)
components, software connectors, code generator, abstract syntax trees, Stratego, XTSOFA 2 je komponentový systém založený na hierarchickém komponentovém modelu. K návrhu aplikace slouží jazyk ADL, chování komponent je popsáno behaviorálními protokoly, dále systém umožňuje dynamickou rekonfiguraci komponet a modeluje propojení mezi jednotlivými komponentami pomocí softwarových konektorů. Ty umožňují transparentní rozdistribuování vyvíjené aplikace mezi více počítačů. Implementace konektorů může být automaticky generována, SOFA 2 je primárně vyvíjena pro jazyk Java, proto obsahuje generátor Javovských konektorů. Cílem této magisterské práce je navrhnout generátor kódu pro jazyk C a zaintegrovat tento generátor do stávající struktury generátoru konektorů v systému SOFA 2. Automatické generování konektorů v jazyce C by mělo umožnit transparentní propojení komponent implementovaných v jazyce C. Navržený generátor C kódu je založený na konceptu transformace šablon, kde je vstupní šablona, která obsahuje kombinaci cílového C kódu a speciálně vyvinutého skriptovacího jazyka, převedena na čistý C kód. Pro vyhodnocení šablon je použito strategické přepisování abstraktních syntaktických stromů poskytnuté frameworkem Stratego/XT.
SOFA 2 is a component system employing hierarchically composed components. It provides ADL-based design, behavior specification using behavior protocols, dynamic reconfiguration of the components, and modeling of the component communication by software connectors. This allows seamless and transparent distribution of component applications. The connectors can be automatically generated, SOFA 2 contains Java connector generator allowing to connect components with Java interfaces. The aim of this thesis is to implement C code generator and integrate it into the current SOFA 2 connector generator framework, so that C connectors can be automatically generated and thus components written in C language can be transparently connected in distributed environment. The proposed C code generator is based on the concept of template transformation, where templates containing mixture of C code and a scripting Domain Specific Language are transformed to a pure C code. Strategic term rewriting method provided by Stratego/XT framework is used for evaluation of the scripts within the templates.