SORVI: A new dynamically updateable interpreted programming language

No Thumbnail Available
Journal Title
Journal ISSN
Volume Title
School of Science | Master's thesis
Checking the digitized thesis and permission for publishing
Instructions for the author
Date
2010
Major/Subject
Ohjelmistotekniikka
Mcode
T-106
Degree programme
Language
en
Pages
(9) + 109 s. + liitt. 3
Series
Abstract
In this Thesis, we introduce SORVI, a new programming language that has been designed to be dynamically updateable. Traditionally, when programmers have wanted to make changes to a running program, the program needs to be shut down, compiled and started again. While there exists a number of languages that can be reloaded while the program is running, most of them don't allow updating code that is currently active or are limited in their functionality. SORVI is a statically typed, object-oriented language. Its syntax has been influenced by popular procedural object-oriented languages such as C++ and Java. SORVI is also designed in game programming in mind and to support this, coroutines and vector primitives have been integrated into the language. While SORVI can be considered as a full-blown programming language, it is meant to he used as a scripting language and to be integrated to a host application using the native binding facility found in SORVI. While SORVI is still work-in-progress, it is fully functional and can be used in real world applications. Its performance is negligible but should he enough for scripting purposes. The dynamic software updates in SORVI are flexible: a running program can he modified as one pleases, as long as it compiles and the native binding does not change. Update facility is implemented using a novel function matching and register mapping algorithms.

Tässä työssä esittelemme SORVI:n, uuden ohjelmointikielen, joka on suunniteltu dynaamisesti päivitettäväksi. Perinteisesti halutessaan tehdä muutoksia jo käynnissä olevaan ohjelmaan ohjelmoijan on täytynyt ensin lopettaa, kääntää ja sitten uudelleenkäynnistää ohjelma. Vaikka on olemassa lukuisia kieliä, joita voidaan päivittää ajon aikana, useimmat niistä eivät mahdollista aktiivisen ohjelmakoodin päivittämistä tai ovat rajoittuneita ominaisuuksissaan. SORVI on staattisesti tyypitetty, olio-pohjainen kieli. Sen syntaksiin ovat vaikuttaneet suositut proseduraaliset olio-ohjelmointikielet kuten C++ ja Java. SORVI on myös suunniteltu peli-ohjelmointia silmällä pitäen, ja tätä varten kieleen on lisätty tuki vuorottelualiohjelmille ja matemaattisille vektoreille. Vaikka SORVI voidaan laskea oikeaksi ohjelmointikieleksi, on se tarkoitettu lähinnä komentosarjakieleksi ja on tarkoitettu integroitavaksi isäntäohjelmaan käyttäen SORVI:n natiivikielisidosjärjestelmää. Vaikka SORVI:n kehitys on edelleen käynnissä, on se täysin toiminnallinen ja sitä voidaan käyttää oikeissa sovelluksissa. Sen suorituskyky ei ole kummoinen, mutta tämän pitäisi riittää komentokielikäyttöön. Dynaaminen ohjelmanpäivitys SORVI:ssa on joustava: käynnissä olevaa ohjelmaa voidaan muokata mielensä mukaan, kunhan ohjelma kääntyy ja natiivikielisidokseen ei tule muutoksia. Päivitysmenetelmä on toteutettu käyttäen uudenlaisia funktioiden yhteensovittamis- ja rekisterikuvausalgoritmeja.
Description
Supervisor
Tarhio, Jorma
Keywords
dynamic software updates, dynaaminen dhjelmanpäivitys, coroutines, vuorettelualiohjelmat, bytecode, tavukoodi, virtual registers, virtuaalirekisteri, virtual machine, virtuaalikone, compiles, kääntäjä
Other note
Citation