SOFA 2 runtime support for dynamic languages
Běhová podpora dynamických jazyků v SOFA 2
diploma thesis (DEFENDED)
![Document thumbnail](/bitstream/handle/20.500.11956/34203/thumbnail.png?sequence=7&isAllowed=y)
View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/34203Identifiers
Study Information System: 76387
Collections
- Kvalifikační práce [11266]
Author
Advisor
Referee
Hnětynka, Petr
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Software Systems
Department
Department of Software Engineering
Date of defense
7. 9. 2010
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Excellent
Komponentové systémy umožňují vytvářet rozsáhlé aplikace složené ze znovupoužitelných softwarových komponent. Vývoj těchto komponent je ovšem v mnoha dnešních komponentových systémech složitý, především díky zdlouhavému vývojovému cyklu. Jednou z možností, jak urychlit vývoj komponent, je využít dynamické jazyky umožňující změnit implementaci za běhu bez nutnosti kompilace a restartování. Podpora komponent implementovaných v těchto jazycích by mohla zjednodušit vývoj prototypů komponentových aplikací a rozšířit možnosti komponentových aplikací o další výhody dynamických jazyků (dynamické typování proměnných atd.). Cílem této práce je rozšířit komponentový systém SOFA 2 o podporu pro primitivní komponenty implementované pomocí dynamických jazyků. Toto rozšíření je založeno na mechanismu komponentových aspektů a je implementováno tak, aby co nejméně modifikovalo běhové prostředí SOFA 2. Kromě základní podpory jsou součásti implementace i nástroje pro dynamické změny kódu běžících skriptovaných komponent. Na základě tohoto rozšíření práce vyhodnocuje potenciál kontrolní části systému SOFA 2 (postavené na koncepci mikrokomponent) pro implementaci rozšíření běhového prostředí. A to především takových rozšíření, která integrují nové implementační technologie jako například dynamické jazyky.
Component systems allow to build large scale applications from reusable components. However, many of the contemporary component systems have an extensive component development cycle with a long turnaround time. To speed up the component development, the dynamic languages, which allow to change the implementation at runtime without compilation and restarting, could be used. Therefore, the support of components implemented in dynamic languages could simplify development of application prototypes and add other advantages of interpreted dynamic languages (dynamic typing etc.). The aim of this thesis is to extend the SOFA 2 component system runtime to support primitive components implemented in dynamic languages. The extension is based on the SOFA 2 component aspect mechanism and it focuses on minimal changes of the existing core runtime implementation. The presented implementation also provides tools for interaction with running scripted components in order to allow dynamic implementation changes. On the basis of this extension, the thesis evaluates potential of the SOFA 2 microcomponent-based controller part for building runtime extensions, particularly extensions integrating new runtime technologies such as dynamic languages.