|Home \ Graduation Activities \ Post-Graduation Page||Login|
Type-based Protocol Conformance and Aliasing Control in Concurrent Java Programs
In an object-oriented setting, objects are modeled by their state and operations. The programmer should be aware of how each operation implicitly changes the state of an object. This is due to the fact that in certain states some operations might not be available, e.g., reading from a ﬁle when it is closed. Additional care must be taken if we consider aliasing, since many references to the same object might be held and manipulated. This hinders the ability to identify the source of a modiﬁcation to an object, thus making it harder to track down its state. These difﬁculties increase in a concurrent setting, due to the unpredictability of the behavior of concurrent programs. Concurrent programs are complex and very hard to reason about and debug. Some of the errors that arise in concurrent programs are due to simultaneous accesses to shared memory by different threads, resulting in unpredictable outcomes due to the possible execution interleavings. This kind of errors are generally known as race conditions. Software veriﬁcation and speciﬁcation are important in software design and implementation as they provide early error detection, and can check conformity to a given speciﬁcation, ensuring some intended correctness properties. To this end, our work builds on the work of Spatial-Behavioral types formalism providing object ownership support. Our approach consists in the integration of a behavioral type system, developed for a core fragment of the Java programming language, in the standard Java development process.
Post-Graduation Student / Researcher / Professor: