The modelling and enforcement of typestate constraints in object oriented languages has the potential to eliminate a variety of common and difficult to diagnose errors. While the theoretical foundations of typestate are well established in the literature, less attention has been paid to the practical aspects: is the additional complexity justifiable? Can typestate be reasoned about effectively by "real" programmers? To what extent can typestate constraints be inferred, to reduce the burden of large type annotations? This thesis aims to answer these questions and provide a holistic treatment of the subject, with original contributions to both the theorical and practical aspects of typestate
Typestate systems allow the type of an object to change during its lifetime in the computation. Unli...
This paper summarizes three discussions conducted at the ECOOP'91 W5 Workshop on ''Types, Inheritan...
Typestate oriented programming integrates notions of typestate directly into the semantics of an obj...
The modelling and enforcement of typestate constraints in object oriented languages has the potentia...
Typestate reflects how the legal operations on imperative objects can change at runtime as their int...
Specification languages serve a fundamentally different purpose than general-purpose programming lan...
Typestates are state machines used in object-oriented programming to specify and verify correct orde...
Static type information facilitates program comprehension and analysis. Yet, such information is abs...
This thesis is about Martin-Löf's intuitionistic theory of types (type theory). Type theory is at th...
The behavior of languages such as C++, Java, Smalltalk and Eiffel and the modeling features such cla...
Since the 1990s, scripting languages (e.g. Python, Ruby, JavaScript, and many others) have gained wi...
AbstractThe aim of this work is largely a practical one. A widely employed style of programming, par...
Programs involving precise types enforce more properties via type checking, but precise types also p...
Type-checked object-oriented languages have typically been designed with extremely simple type syste...
For several decades, inheritance and delegation have been widely adopted for code reuse in object-or...
Typestate systems allow the type of an object to change during its lifetime in the computation. Unli...
This paper summarizes three discussions conducted at the ECOOP'91 W5 Workshop on ''Types, Inheritan...
Typestate oriented programming integrates notions of typestate directly into the semantics of an obj...
The modelling and enforcement of typestate constraints in object oriented languages has the potentia...
Typestate reflects how the legal operations on imperative objects can change at runtime as their int...
Specification languages serve a fundamentally different purpose than general-purpose programming lan...
Typestates are state machines used in object-oriented programming to specify and verify correct orde...
Static type information facilitates program comprehension and analysis. Yet, such information is abs...
This thesis is about Martin-Löf's intuitionistic theory of types (type theory). Type theory is at th...
The behavior of languages such as C++, Java, Smalltalk and Eiffel and the modeling features such cla...
Since the 1990s, scripting languages (e.g. Python, Ruby, JavaScript, and many others) have gained wi...
AbstractThe aim of this work is largely a practical one. A widely employed style of programming, par...
Programs involving precise types enforce more properties via type checking, but precise types also p...
Type-checked object-oriented languages have typically been designed with extremely simple type syste...
For several decades, inheritance and delegation have been widely adopted for code reuse in object-or...
Typestate systems allow the type of an object to change during its lifetime in the computation. Unli...
This paper summarizes three discussions conducted at the ECOOP'91 W5 Workshop on ''Types, Inheritan...
Typestate oriented programming integrates notions of typestate directly into the semantics of an obj...