8 research outputs found
Inductive Proof Outlines for Monitors in Java
Abstract. The research concerning Java’s semantics and proof theory has mainly focussed on various aspects of sequential sub-languages. Java, however, integrates features of a class-based object-oriented language with the notion of multi-threading, where multiple threads can concurrently execute and exchange information via shared instance variables. Furthermore, each object can act as a monitor to assure mutual exclusion or to coordinate between threads. In this paper we present a sound and relatively complete assertional proof system for Java’s monitor concept, which generates verification conditions for a concurrent sublanguage JavaMT of Java. This work extends previous results by incorporating Java’s monitor methods
The genes and enzymes of the carotenoid metabolic pathway in <it>Vitis vinifera</it> L.
<p><b>Abstract</b></p> <p><b>Background</b></p> <p>Carotenoids are a heterogeneous group of plant isoprenoids primarily involved in photosynthesis. In plants the cleavage of carotenoids leads to the formation of the phytohormones abscisic acid and strigolactone, and C<sub>13</sub>-norisoprenoids involved in the characteristic flavour and aroma compounds in flowers and fruits and are of specific importance in the varietal character of grapes and wine. This work extends the previous reports of carotenoid gene expression and photosynthetic pigment analysis by providing an up-to-date pathway analysis and an important framework for the analysis of carotenoid metabolic pathways in grapevine.</p> <p><b>Results</b></p> <p>Comparative genomics was used to identify 42 genes putatively involved in carotenoid biosynthesis/catabolism in grapevine. The genes are distributed on 16 of the 19 chromosomes and have been localised to the physical map of the heterozygous ENTAV115 grapevine sequence. Nine of the genes occur as single copies whereas the rest of the carotenoid metabolic genes have more than one paralogue. The cDNA copies of eleven corresponding genes from <it>Vitis vinifera</it> L. cv. Pinotage were characterised, and four where shown to be functional. Microarrays provided expression profiles of 39 accessions in the metabolic pathway during three berry developmental stages in Sauvignon blanc, whereas an optimised HPLC analysis provided the concentrations of individual carotenoids. This provides evidence of the functioning of the lutein epoxide cycle and the respective genes in grapevine. Similarly, orthologues of genes leading to the formation of strigolactone involved in shoot branching inhibition were identified: <it>CCD7</it>, <it>CCD8</it> and <it>MAX1</it>. Moreover, the isoforms typically have different expression patterns, confirming the complex regulation of the pathway. Of particular interest is the expression pattern of the three <it>VvNCEDs</it>: Our results support previous findings that <it>VvNCED3</it> is likely the isoform linked to ABA content in berries.</p> <p><b>Conclusions</b></p> <p>The carotenoid metabolic pathway is well characterised, and the genes and enzymes have been studied in a number of plants. The study of the 42 carotenoid pathway genes of grapevine showed that they share a high degree of similarity with other eudicots. Expression and pigment profiling of developing berries provided insights into the most complete grapevine carotenoid pathway representation. This study represents an important reference study for further characterisation of carotenoid biosynthesis and catabolism in grapevine.</p
A Statically Verifiable Programming Model for Concurrent ObjectOriented Programs
Abstract. Reasoning about multithreaded object-oriented programs is difficult, due to the non-local nature of object aliasing, data races, and deadlocks. We propose a programming model that prevents data races and deadlocks, and supports local reasoning in the presence of object aliasing and concurrency. Our programming model builds on the multithreading and synchronization primitives as they are present in current mainstream languages. Java or C # programs developed according to our model can be annotated by means of stylized comments to make the use of the model explicit. We show that such annotated programs can be formally verified to comply with the programming model. In other words, if the annotated program verifies, the underlying Java or C # program is guaranteed to be free from data races and deadlocks, and it is sound to reason locally about program behavior. We have implemented a verifier for programs developed according to our model in a custom build of the Spec # programming system, and have validated our approach on a case study.
How to Cook a Complete Hoare Logic for Your Pet OO Language
Abstract. This paper introduces a general methodology for obtaining complete Hoare logics for object-oriented languages. The methodology is based on a new completeness result of a Hoare logic for a procedural language with dynamically allocated variables. This new result involves a generalization of Gorelick’s seminal completeness result of the standard Hoare logic for recursive procedures with simple variables. We show how this completeness result can be generalized to existing Hoare logics for typical object-oriented concepts like method calls, sub-typing and inheritance, and dynamic binding, by transforming an encoding of these concepts into this procedural language with dynamically allocated variables.
Concurrent Objects à la Carte
Abstract Services are autonomous, self-describing, technology-neutral software units that can be described, published, discovered, and composed into software applications at run-time. Designing software services and composing services in order to form applications or composite services requires abstractions beyond those found in typical object-oriented programming languages. In this paper, we explore a number of the abstractions used in service-oriented computing and related Internet- and web-based programming models in the context of Creol, an executable concurrent object-oriented modeling language with active objects and futures; i.e., features capable of expressing and dealing with asynchronous actions. By adding various abstractions to the modeling language, we demonstrate how a concurrent object language may naturally address many of the requirements of service-oriented computing. The study of language extensions in the restricted setting of a small, high-level modeling language, such as Creol, suggests a cheap way of developing new abstractions for emerging application domains. In this paper, we explore abstractions in the context of service-oriented computing, particularly with regard to dynamic aspects such as service discovery and structuring mechanisms such as groups.
Linking CSP-OZ with UML and Java: A Case Study
We describe how CSP-OZ, an integrated formal method combining the process algebra CSP with the specification language Object-Z, can be linked to standard software engineering languages, viz. UML and Java. Our aim is to generate a significant part of the CSP-OZ specification from an initially developed UML model using a UML profile for CSP-OZ, and afterwards transform the formal specification into assertions written in the Java Modelling Language JML complemented by CSP jassda . The intermediate CSP-OZ specification serves to verify correctness of the UML model, and the assertions control at runtime the adherence of a Java implementation to these formal requirements. We explain this approach using the case study of a "holonic manufacturing system" in which coordination of transportation and processing is distributed among stores, machine tools and agents without central control