SORVI: A new dynamically updateable interpreted programming language

No Thumbnail Available

URL

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