DocumentCode :
1298068
Title :
Typestate: A programming language concept for enhancing software reliability
Author :
Strom, Robert E. ; Yemini, Shaula
Author_Institution :
IBM Thomas J. Watson Res. Center, Yorktown Heights, NY, USA
Issue :
1
fYear :
1986
Firstpage :
157
Lastpage :
171
Abstract :
The authors introduce a new programming language concept, called typestate, which is a refinement of the concept of type. Whereas the type of a data object determines the set of operations over permitted on the object, typestate determines the subset of these operations which is permitted in a particular context. Typestate tracking is a program analysis technique which enhances program reliability by detecting at compile-time syntactically legal but semantically undefined execution sequences. These include reading a variable before it has been initialized and dereferencing a pointer after the dynamic object has been deallocated. The authors define typestate, give examples of its application, and show how typestate checking may be embedded into a compiler. They discuss the consequences of typestate checking for software reliability and software structure, and summarize their experience in using a high-level language incorporating typestate checking.
Keywords :
data structures; program compilers; software reliability; compile-time; compiler; data object; dynamic object; high-level language; program analysis technique; programming language; software reliability; typestate; undefined execution sequences; Computer languages; Context; Law; Program processors; Software reliability; Program analysis; program verification; security; software reliability; type checking; typestate;
fLanguage :
English
Journal_Title :
Software Engineering, IEEE Transactions on
Publisher :
ieee
ISSN :
0098-5589
Type :
jour
DOI :
10.1109/TSE.1986.6312929
Filename :
6312929
Link To Document :
بازگشت