The Chair for Operating Systems (Univ.-Prof. Dr. habil. Th. Bemmerl) provides the following
student thesis (Studienarbeit) or project (Projektarbeit) in the range of
Parallel and Real-Time Systems on x86 hardware:
Embedding a Scripting Language into a C Program
Background
Several scripting languages offer the possibility to be embedded in C programs,
so that these programs can be extended with scripts.
The language LUA is designed exactly for that purpose,
but other languages such as Python or IO offer this possibility.
In general, the script is brought for execution as a string or file.
However, data structures and functions of the application must be provided explicitly to the script.
Likewise, the application needs access to data and functionality of the scripting language.
The practical experiment "Verteilte und eingebettete Systeme" (distributed and embedded systems) of the practical lab "Praktikum Technische Informatik" (Bachelor ET / IT, 5th semester) uses a server-based robot simulation.
The simulation server is a multithreaded application,
connected by the the clients controling their robots.
The configuration of the server is done currently by state variables.
Thus, various behaviors (eg, from server-controlled robots and bonus coins) can be selected,
but these behaviors are compiled into the server.
By integrating a scripting language, it should be possible to program new functions and behaviors
as a script that is loaded dynamically and that can be changed easily.
There are several scripting languages that should be evaluated
and an appropriate one should be selected and integrated into the server.
It must be afforded the highest efficiency,
as some scripts are to run very often.
One approach would be a script file that contains multiple functions with specified name and parameters.
The server loads this file at startup (with a file name from the configuration)
and performs the necessary functions as required.
Assingment
- Implementation of a sample program with at least three different scripting languages
- Evaluation of usability from programmer's perspective
- Measurement and comparison of performance
- Implementation of best suited language into server
- Create use cases and write documentation
We offer
- Comfortable working-environment, as well as a good equipped Computer infrastructure
- Personal and engaged supervision
Profil of requirements
- Intermediate diploma of Electro- and Informationstechnics or (technical) computer science
- Solid programming skills in C
- Understanding of parallelization with POSIX Threads and synchronization
- Linux experience recommended
- Competence to work autonomous and creative
- Can be assigned as project to a small group (of three students, optimally). In that case, an example application (eg collection of coins in a labyrinth, pac-man like game) should be additionally realized.
Contact
Georg Wassen
Chair for Operating Systems (LfBS), RWTH Aachen
Modulbau Kopernikusstraße, D-52074 Aachen
Tel.: +49 241 80 24599
E-Mail: wassen@lfbs.rwth-aachen.de
|