The Fugue protocol checker: Is your software Baroque?
نویسندگان
چکیده
Even in a safe programming language, such as C or Java, disobeying the rules for using an interface can cause exceptions at run time. Such rules govern how system resources are managed, the order of method calls, and the formatting of string parameters, such as SQL queries. This paper introduces Fugue, a modular static checker for languages that compile to the Common Language Runtime. Fugue allows the rules for using an interface to be recorded as declarative specifications and provides a range of annotations that allow a developer to specify interface rule with varying precision. At the simplest end of the range, a specifier can mark those methods that allocate and release resources. A specifier can also limit the order in which an object’s methods may be called to the transitions of a finite state machine. At the most complex end of the range, a specifier can give a method a plug-in preand postconditon, which is arbitrary code that examines an object’s current state and a static approximation of the method’s actuals, decides whether the call is legal and returns the object’s state after the call. We used these features to specify rules for using ado.net, a library for accessing relational databases, and found several errors in an internal Microsoft Research web site, which extensively uses this library.
منابع مشابه
Concepts and Categorization
Issues related to concepts and categorization are nearly ubiquitous in psychology because of people’s natural tendency to perceive a thing as something. We have a powerful impulse to interpret our world. This act of interpretation, an act of “seeing something as X” rather than simply seeing it (Wittgenstein, 1953), is fundamentally an act of categorization. The attraction of research on concept...
متن کاملUsing the ASTRAL Model Checker for Cryptographic Protocol Analysis
ASTRAL is a formal speciication language for real-time systems. It is intended to support formal software development, and therefore has been formally deened. This paper focuses on the mechanism of the ASTRAL model checker and how it can be used to analyze encryption protocols.
متن کاملUsing CSP to Detect Errors in the TMN Protocol
In this paper we use FDR, a model checker for CSP, to detect errors in the TMN protocol TMN90]. We model the protocol and a very general intruder as CSP processes, and use the model checker to test whether the intruder can successfully attack the protocol. We consider three variants on the protocol, and discover a total of ten diierent attacks leading to breaches of security.
متن کاملModel Checking of Software Components: Making Java PathFinder Cooperate with Behavior Protocol Checker
Although there exist several software model checkers that check the code against properties specified e.g. via a temporal logic and assertions, or just verifying low-level properties (like unhandled exceptions), none of them supports checking of software components against a high-level behavior specification. We present our approach to model checking of software components implemented in Java a...
متن کاملAlgorithmic Composition of Contrapuntal Music
For this project, your goal is to implement a program that writes music in contrapuntal style, since this form is so fundamentally algorithmic. Contrapuntal music, also called counterpoint, is a structure of musical composition that originated in the Renaissance and was developed extensively in Baroque and Classical music, particularly in canons and fugues written by Bach and Mozart. Many speci...
متن کامل