Behavioral subtyping in object-oriented languages

dc.contributor.advisor Gary T. Leavens
dc.contributor.author Dhara, Krishna
dc.contributor.department Department of Computer Science
dc.date 2018-08-23T09:30:12.000
dc.date.accessioned 2020-06-30T07:13:03Z
dc.date.available 2020-06-30T07:13:03Z
dc.date.copyright Wed Jan 01 00:00:00 UTC 1997
dc.date.issued 1997
dc.description.abstract <p>Modularity and code reuse are two important features of object-oriented programming. Modularity means that adding new components does not require reverification or respecification of existing components. A common form of reuse in object-oriented programs is to add new subtypes to existing types and to invoke already existing procedures with objects of these new types. In such cases, behavior of programs that contain these procedures also depend on the behavior of the new subtype objects. Reverifying the code that uses existing procedures whenever new types are added is not practical and is not modular. Thus, a notion of behavioral subtyping that allows sound modular reasoning is important for object-oriented programming;In this dissertation, we study behavioral subtyping for arbitrary abstract data types in the prescence of mutation and aliasing. We propose two notions of behavioral subtyping. Strong behavioral subtypes have objects that act like supertype objects in all cases, whereas as weak behavioral subtypes have objects that only need to act like supertype objects when manipulated as supertype objects. Both these notions allow sound modular reasoning based on the static types of variables in programs. Weak behavioral subtyping allows conclusions about programs based on the effects of individual procedures but restricts certain forms of aliasing. Strong behavioral subtyping allows all forms of aliasing but permits conclusions based only on the history constraints of the types. History constraints are the reflexive and transitive properties preserved by objects of a type across different states of a program. We prove that both these behavioral subtype notions are sufficient for sound modular reasoning.</p>
dc.format.mimetype application/pdf
dc.identifier archive/lib.dr.iastate.edu/rtd/11457/
dc.identifier.articleid 12456
dc.identifier.contextkey 6455331
dc.identifier.doi https://doi.org/10.31274/rtd-180813-10487
dc.identifier.s3bucket isulib-bepress-aws-west
dc.identifier.submissionpath rtd/11457
dc.identifier.uri https://dr.lib.iastate.edu/handle/20.500.12876/64716
dc.language.iso en
dc.source.bitstream archive/lib.dr.iastate.edu/rtd/11457/r_9725408.pdf|||Fri Jan 14 18:50:34 UTC 2022
dc.subject.disciplines Computer Sciences
dc.subject.keywords Computer science
dc.title Behavioral subtyping in object-oriented languages
dc.type dissertation en_US
dc.type.genre dissertation en_US
dspace.entity.type Publication
relation.isOrgUnitOfPublication f7be4eb9-d1d0-4081-859b-b15cee251456
thesis.degree.level dissertation
thesis.degree.name Doctor of Philosophy
File
Original bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
r_9725408.pdf
Size:
3.35 MB
Format:
Adobe Portable Document Format
Description: