Results 1 -
4 of
4
Modular typestate verification of aliased objects
, 2007
"... A number of type systems have used typestates to specify and statically verify protocol compliance. Aliasing is a major challenge for these systems. This paper proposes a modular type system for a core object-oriented language that leverages linear logic for verifying compliance to more expressive p ..."
Abstract
-
Cited by 6 (2 self)
- Add to MetaCart
A number of type systems have used typestates to specify and statically verify protocol compliance. Aliasing is a major challenge for these systems. This paper proposes a modular type system for a core object-oriented language that leverages linear logic for verifying compliance to more expressive protocol specifications than previously supported. The system improves reasoning about aliased objects by associating references with access permissions that systematically capture what aliases know about and can do to objects. Permissions grant full, shared, or read-only access to a certain part of object state and allow aliasing both on the stack and in the heap. The system supports dynamic state tests, arbitrary callbacks, and open recursion. The system’s expressiveness is illustrated with examples from the Java I/O library.
Checking Semantic Usage of Frameworks
"... Software frameworks are difficult for plugin developers to use, even when they are well designed and documented. Some of these difficulties stem from the many constraints that frameworks impose on plugin code. These constraints might restrict operations from being called on certain objects, or they ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
Software frameworks are difficult for plugin developers to use, even when they are well designed and documented. Some of these difficulties stem from the many constraints that frameworks impose on plugin code. These constraints might restrict operations from being called on certain objects, or they might restrict how long an object is available. Additionally, the constraints are relative to the current context of the plugin, and they can involve multiple, interacting framework objects. This paper proposes a lightweight specification system and analysis to check plugins from a semantic perspective, rather than a purely structural view.
A Path Sensitive Type System for Resource Usage Verification of C like Languages. http://pllab.kaist.ac.kr/∼hgkang/pruv-tm.pdf
, 2005
"... Abstract. In this paper, we present a path sensitive type system for resource usage verification. Path sensitivity is essential to model resource usage in C programs correctly and accurately. So far, most of methods to analyze this kind of property in the path sensitive way have been proposed as who ..."
Abstract
- Add to MetaCart
Abstract. In this paper, we present a path sensitive type system for resource usage verification. Path sensitivity is essential to model resource usage in C programs correctly and accurately. So far, most of methods to analyze this kind of property in the path sensitive way have been proposed as whole program analyses or unsound analyses. Our main contributions are as follows. First, we formalize a sound analysis for path sensitive resource usage properties in C like languages. To the best of our knowledge, it is the first sound and modular analysis for this problem. We provide the complete proof for the soundness of the type system and algorithm. Second, our analysis is modular, and we provide an inference algorithm to generate function summaries automatically. We believe that our approach suggests new insights into the design of modular analyses. 1
Checking Temporal Relations between Multiple Objects
, 2007
"... Software frameworks contain constraints with unusual properties. The constraints frequently span multiple objects and classes, and they change according to the current context. Additionally, they may not be enforced at the same point where they were specified or broken, thus causing unexpected runti ..."
Abstract
- Add to MetaCart
Software frameworks contain constraints with unusual properties. The constraints frequently span multiple objects and classes, and they change according to the current context. Additionally, they may not be enforced at the same point where they were specified or broken, thus causing unexpected runtime errors. This paper describes a lightweight specification system to describe multiobject temporal constraints. It also provides a detailed description of a static analysis to check that the constraints are not broken. The implementation of the analysis is used to check example Object-oriented frameworks have brought many benefits to software development, including reusable codebases, extensible systems, and encapsulation of quality attributes. However, frameworks are used at a high cost; they are complex and difficult to learn [1]. This is partially due to the complexity of the constraints they place on the plugins that utilize them. These constraints typically

