19 research outputs found

    Formalizing Reusable Aspect-oriented Concurrency Control

    Full text link
    Java and its library provide powerful concurrency control mechanisms. However, their use can lead to similar synchronization code scattered across multiple classes, synchronization and functional code being tangled together, and similar code being duplicated in many applications. Aspect-oriented (AO) programming makes it possible to address these problems. However, the specific behavior of systems built using AO techniques can be challenging to comprehend. We propose a specification approach to precisely express such systems\u27 critical concurrency and synchronization properties. We illustrate the method with a simple example

    On Soundness of Verification for Software with Functional Semantics and Abstract Data Types

    Get PDF
    Abstract. A threat to the soundness of modular verification systems arises from the following combination of specification and programming language features: a semantics in which the denotation of every program operation is a mathematical function, the opportunity to write relational specifications for program operations, and support for abstract data types. There is no apparent practical workaround for this problem short of changing one of these features. After accounting for software engineering considerations, the recommendation is to relax the first one and to restrict the second, i.e., (1) to partition program operations into "function" operations and "procedure" operations; (2) to define the language semantics so the meaning of each function operation is a mathematical function, and to permit only a functional specification for a function operation; and (3) to define the language semantics so the meaning of each procedure operation is a mathematical relation, and to permit either a functional or a relational specification for a procedure operation

    Formalizing Reusable Aspect-Oriented Concurrency Control

    No full text
    Java and its library provide concurrency control mechanisms that allow a designer to implement various concurrency control schemes. However, use of these facilities often results in complex code with similar synchronization code being scattered across multiple classes, and synchronization code and functional code being tangled together. Moreover, similar code is often duplicated in different applications. Aspect-oriented (AO) programming makes it possible to address these problems. The precise behavior of systems built using AO techniques can, however, be difficult to understand. We propose a specification approach that allows us to precisely express key concurrency and synchronization properties of such systems. A novel feature of the approach is the rich model underlying our specifications. This is needed because of the power of aspects whereby, for example, the applicability of a piece of advice at a given point may depend on the dynamic sequence of method calls prior to that point. We illustrate the approach by applying it to a simple abstract aspect, an example system and the corresponding subaspect
    corecore