With respect to traditional systems, language interpreters are hard to evolve and the adoption of evolved languages is slow. Language evolution is hindered by the fact that their implementations often overlook design principles, especially those related to modularity. Consequently, language implementations and their updates are monolithic. Language evolution often breaks the backward compatibility and requires developers to rewrite their applications. Furthermore, there is little or no support to evolve language interpreters at runtime. This would be useful for systems that cannot be shut down and to support context-aware interpreters. To tackle these issues, we designed the concept of open interpreters which provide support for language evolution through reflection. Open interpreters allow one to partially update a language to maintain the backward compatibility. Furthermore, they allow one to dynamically update a language without stopping the overlying application. Open interpreters can be dynamically tailored on the task to be solved. The peculiarity of this approach is that the evolution code is completely separated from the application or the original interpreter code. In this dissertation we define the concept of open interpreters, we design a possible implementation model, we describe a prototype implantation and provide the proof-of-concept examples applied to various domains.

DYNAMIC LANGUAGE UPDATING / A. Shaqiri ; tutor: W. Cazzola; coordinatore: P. Boldi. - : . Università degli Studi di Milano, 2018 Feb 27. ((29. ciclo, Anno Accademico 2016. [10.13130/shaqiri-albert_phd2018-02-27].

DYNAMIC LANGUAGE UPDATING

A. Shaqiri
2018

Abstract

With respect to traditional systems, language interpreters are hard to evolve and the adoption of evolved languages is slow. Language evolution is hindered by the fact that their implementations often overlook design principles, especially those related to modularity. Consequently, language implementations and their updates are monolithic. Language evolution often breaks the backward compatibility and requires developers to rewrite their applications. Furthermore, there is little or no support to evolve language interpreters at runtime. This would be useful for systems that cannot be shut down and to support context-aware interpreters. To tackle these issues, we designed the concept of open interpreters which provide support for language evolution through reflection. Open interpreters allow one to partially update a language to maintain the backward compatibility. Furthermore, they allow one to dynamically update a language without stopping the overlying application. Open interpreters can be dynamically tailored on the task to be solved. The peculiarity of this approach is that the evolution code is completely separated from the application or the original interpreter code. In this dissertation we define the concept of open interpreters, we design a possible implementation model, we describe a prototype implantation and provide the proof-of-concept examples applied to various domains.
CAZZOLA, WALTER
BOLDI, PAOLO
programming language evolution; dynamic software updating; interpreters
Settore INF/01 - Informatica
DYNAMIC LANGUAGE UPDATING / A. Shaqiri ; tutor: W. Cazzola; coordinatore: P. Boldi. - : . Università degli Studi di Milano, 2018 Feb 27. ((29. ciclo, Anno Accademico 2016. [10.13130/shaqiri-albert_phd2018-02-27].
Doctoral Thesis
File in questo prodotto:
File Dimensione Formato  
phd_unimi_R10589.pdf

accesso aperto

Descrizione: Tesi completa
Tipologia: Tesi di dottorato completa
Dimensione 2.84 MB
Formato Adobe PDF
2.84 MB Adobe PDF Visualizza/Apri
Pubblicazioni consigliate

Caricamento pubblicazioni consigliate

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/2434/585194
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus ND
  • ???jsp.display-item.citation.isi??? ND
social impact