Results 1 -
7 of
7
Ownership Types: A Survey
- ALIASING IN OBJECT-ORIENTED PROGRAMMING. LNCS
, 2013
"... Ownership types were devised nearly 15 years ago to provide a stronger notion of protection to object-oriented programming languages. Rather than simply protecting the fields of an object from external access, ownership types protect also the objects stored in the fields, thereby enabling an object ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
(Show Context)
Ownership types were devised nearly 15 years ago to provide a stronger notion of protection to object-oriented programming languages. Rather than simply protecting the fields of an object from external access, ownership types protect also the objects stored in the fields, thereby enabling an object to claim (exclusive) ownership of and access to other objects. Furthermore, this notion is statically enforced by now-standard type-checking techniques. Originating as the formalisation of the core of Flexible Alias Protection, ownership types have since been extended and adapted in many ways, and the notion of protection provided has been refined into topological and encapsulation dimensions. This article surveys the various flavours of ownership types that have been developed over the years, along with the many applications and other developments. The chapter concludes by suggesting some directions for future work.
Selective Ownership: Combining Object and Type Hierarchies for Flexible Sharing
"... Most ownership systems enforce a tree topology on a program’s heap. The tree topology facilitates many aspects of programming such as thread synchronization, memory management, and program verification. Ownership-based verification techniques leverage the tree topology of an ownership system (and he ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
(Show Context)
Most ownership systems enforce a tree topology on a program’s heap. The tree topology facilitates many aspects of programming such as thread synchronization, memory management, and program verification. Ownership-based verification techniques leverage the tree topology of an ownership system (and hence the fact that there exists a single owner) to restore sound modular reasoning about invariants over owned objects. However, these techniques in general restrict sharing by limiting modifying access to an owned object to the object’s owner and to other objects in that owner’s ownership tree. In this paper, we introduce selective ownership, a less rigid form of ownership. The key idea is to structure the heap in two ways, by defining an order on a program’s type declarations and by imposing ownership on selected objects. The order on type declarations results in a stratified program heap but permits shared, modifying access to instances further “down ” in the heap topology. By superimposing object ownership on selected objects in the heap, programmers can carve out partial sub-trees in the heap topology where the objects are owned. We show how selective ownership enables the modular verification of invariants over heap topologies that subsume shared, modifiable sub-structures. Selective ownership has been elaborated for our programming language Rumer, a programming language with first-class relationships, which naturally give rise to an ordering on type declarations.
unknown title
"... High-quality, trustworthy software in theory and practice Writing correct software is hard. End users often encounter latent defects, ranging from misbehavior, to costly errors like the Ariane 5 crash, to lethal catastrophes like the Therac-25 radiation therapy machines. In 2002, software bugs cost ..."
Abstract
- Add to MetaCart
(Show Context)
High-quality, trustworthy software in theory and practice Writing correct software is hard. End users often encounter latent defects, ranging from misbehavior, to costly errors like the Ariane 5 crash, to lethal catastrophes like the Therac-25 radiation therapy machines. In 2002, software bugs cost the US economy an estimated USD 60 billion. My research agenda is to provide developers with sound help in eliminating latent defects. I combine theoretical results with practical tools so developers can create high-quality, trustworthy software and reduce the enormous impact of software defects. To achieve this goal, I have applied my expertise in programming languages and software engineering to the domains of verification, security, and systems. I work on techniques that check the source code of a system and provide insights before execution. Software developers spend a considerable amount of their time debugging software after it has failed. Finding the cause of potential failures before they happen is even harder, but we should aim to eliminate defects from software before people are affected. I work on light-weight and sound type systems that provide guarantees about properties chosen by the developer at an adjustable granularity and with an effort proportional to the desired guarantees. I prefer a sound methodology that provides guarantees, in contrast to heuristics-based methods and testing approaches which give no guarantees. Behavioral verification approaches provide guarantees but require highly-trained specialists and incur large up-front costs. I am interested in both the theoretical development of sound verification approaches and also in improving the practice of real-world developers. In addition to many academic conferences, I also presented at the non-academic conferences JavaOne, OSCON, and Open Source Bridge. I will discuss some examples of my work to date: ownership type systems that support the formal verification of software; pluggable type systems that improve the quality of software; inference approaches that make the use of extended type systems possible; and energy efficiency as an application domain. I will outline two projects I have recently begun: application security for mobile devices and the gamification of formal verification. I will conclude with future research directions.
Current Projects
"... Research on Trusted Components with a focus on type systems that enable software verification. ..."
Abstract
- Add to MetaCart
Research on Trusted Components with a focus on type systems that enable software verification.
Approved by: Advisor Date DEDICATION
, 2014
"... To the memory of my beloved grandmother, Maria, who did not have the chance to go to school ii ACKNOWLEDGMENTS First, I would like to thank my advisor, Dr. Marwan Abi-Antoun, for believing in me, and for his guidance and support to fulfill my goal. I am thankful for his patience to keep a close eye ..."
Abstract
- Add to MetaCart
To the memory of my beloved grandmother, Maria, who did not have the chance to go to school ii ACKNOWLEDGMENTS First, I would like to thank my advisor, Dr. Marwan Abi-Antoun, for believing in me, and for his guidance and support to fulfill my goal. I am thankful for his patience to keep a close eye on me and to correct my mistakes, and for giving me constant and indispensable feedback. Then, I would like to thank my dissertation committee members for their valuable feed-back and suggestions: Dr. Vaclav Rajlich for sharing his research experience and coaching me how to teach software engineering classes, Dr. Andrian Marcus for opening my eyes to alternatives, and Dr. Jonathan Aldrich for asking me challenging questions and for carefully going over the formal details of my work. I am also grateful to my teaching advisors, Ms. Monika Witoslawski who recommended me for the teaching award, and to Dr. Nathan Fisher for writing and sending recommendation
On Owners-as-Accessors
"... Abstract. Prescriptive ownership systems generally impose one of two disci-plines on programs: either owners-as-dominators, or owners-as-modifiers. In this paper we discuss “owners-as-accessors ” — a discipline that is stricter than owners-as-modifiers but more lenient than owners-as-dominators. We ..."
Abstract
- Add to MetaCart
(Show Context)
Abstract. Prescriptive ownership systems generally impose one of two disci-plines on programs: either owners-as-dominators, or owners-as-modifiers. In this paper we discuss “owners-as-accessors ” — a discipline that is stricter than owners-as-modifiers but more lenient than owners-as-dominators. We provide a concise informal definition of owners-as-accessors, discuss some existing systems that employ this discipline, and revisit an earlier study on performance. Finally we hy-pothesize how owners-as-accessors could potentially unify William Cook’s two forms of data abstraction: abstract data types and objects.
STATIC EXTRACTION OF DATAFLOW COMMUNICATION FOR SECURITY
, 2014
"... To the memory of my beloved grandmother, Maria, who did not have the chance to go to school ii ACKNOWLEDGMENTS First, I would like to thank my advisor, Dr. Marwan Abi-Antoun, for believing in me, and for his guidance and support to fulfill my goal. I am thankful for his patience to keep a close eye ..."
Abstract
- Add to MetaCart
To the memory of my beloved grandmother, Maria, who did not have the chance to go to school ii ACKNOWLEDGMENTS First, I would like to thank my advisor, Dr. Marwan Abi-Antoun, for believing in me, and for his guidance and support to fulfill my goal. I am thankful for his patience to keep a close eye on me and to correct my mistakes, and for giving me constant and indispensable feedback. Then, I would like to thank my dissertation committee members for their valuable feed-back and suggestions: Dr. Vaclav Rajlich for sharing his research experience and coaching me how to teach software engineering classes, Dr. Andrian Marcus for opening my eyes to alternatives, and Dr. Jonathan Aldrich for asking me challenging questions and for carefully going over the formal details of my work. I am also grateful to my teaching advisors, Ms. Monika Witoslawski who recommended me for the teaching award, and to Dr. Nathan Fisher for writing and sending recommendation