Title of article :
An update calculus for expressing type-safe program updates
Author/Authors :
MARTIN ERWIG، نويسنده , , Deling Ren، نويسنده ,
Issue Information :
دوهفته نامه با شماره پیاپی سال 2007
Pages :
24
From page :
199
To page :
222
Abstract :
The dominant share of software development costs is spent on software maintenance, particularly the process of updating programs in response to changing requirements. Currently, such program changes tend to be performed using text editors, an unreliable method that often causes many errors. In addition to syntax and type errors, logical errors can be easily introduced since text editors cannot guarantee that changes are performed consistently over the whole program. All these errors can cause a correct and perfectly running program to become instantly unusable. It is not surprising that this situation exists because the “text-editor method” reveals a low-level view of programs that fails to reflect the structure of programs. We address this problem by pursuing a programming-language-based approach to program updates. To this end we discuss in this paper the design and requirements of an update language for expressing update programs. We identify as the essential part of any update language a scope update that performs coordinated update of the definition and all uses of a symbol. As the underlying basis for update languages, we define an update calculus for updating lambda calculus programs. We develop a type system for the update calculus that infers the possible type changes that can be caused by an update program. We demonstrate that type-safe update programs that fulfill certain structural constraints preserve the type correctness of lambda terms. The update calculus can serve as a basis for higher-level update languages, such as for Haskell or Java.
Keywords :
Program transformation , Meta programming , Type safety , Refactoring , Software evolution
Journal title :
Science of Computer Programming
Serial Year :
2007
Journal title :
Science of Computer Programming
Record number :
1079971
Link To Document :
بازگشت