Influence of type systems on dynamic software evolution
Peter Ebraert, Yves Vandewoude, Yolande Berbers
Abstract
Peter Ebraert, Yves Vandewoude, Yolande Berbers
Abstract
In this paper we analyze and categorize the most important typing aspects a programming language should offer in order to adequately support dynamic software evolution. The main contribution is a table that summarizes our findings and clearly shows that a more flexible type system implies more power to carry out runtime changes but at a cost of reduced safety. 1 Problem statement Software evolution is an enormous problem that makes up for more than 80 % of the cost of a software system ([3]). Despite many modern design technologies, evolving software in order to add new features, fix a bug or even port it to a new platform is an extremely cumbersome process. The attempt to evolve a running system without shutting it down, is even harder, since there are considerably more constraints on a running system. The goal of our research is to establish the specification of programming languages that are well suited for dynamic software evolution. This specification can then be used (1) by software engineers to choose an appropriate language for developing software, and (2) by language engineers, to develop a new programming language towards dynamic software evolution. We chose to focus on the type system of the language as its distinguishing feature. 2 Type systems This paper uses the type system of a programming language as its distinguishing feature. A type system itself, ∗ Authors funded by a doctoral scholarship of the “Institute for the Promotion
OpenAlex reports 5 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
In this paper we analyze and categorize the most important typing aspects a programming language should offer in order to adequately support dynamic software evolution. The main contribution is a table that summarizes our findings and clearly shows that a more flexible type system implies more power to carry out runtime changes but at a cost of reduced safety. 1 Problem statement Software evolution is an enormous problem that makes up for more than 80 % of the cost of a software system ([3]). Despite many modern design technologies, evolving software in order to add new features, fix a bug or even port it to a new platform is an extremely cumbersome process. The attempt to evolve a running system without shutting it down, is even harder, since there are considerably more constraints on a running system. The goal of our research is to establish the specification of programming languages that are well suited for dynamic software evolution. This specification can then be used (1) by software engineers to choose an appropriate language for developing software, and (2) by language engineers, to develop a new programming language towards dynamic software evolution. We chose to focus on the type system of the language as its distinguishing feature. 2 Type systems This paper uses the type system of a programming language as its distinguishing feature. A type system itself, ∗ Authors funded by a doctoral scholarship of the “Institute for the Promotion
Key concepts: Computer science, Programming language, Software evolution, Software, Adaptation (eye), Table (database), Software engineering, Software development