We present a generic framework for the automatic and modular inference of sound class invariants for class-based object-oriented languages. We define a trace-based semantics for classes which considers all possible or...
详细信息
We present a generic framework for the automatic and modular inference of sound class invariants for class-based object-oriented languages. We define a trace-based semantics for classes which considers all possible orderings, with all possible arguments, of invocations of all the methods of a class. We prove a correspondence theorem between such a semantics and a generic, trace-based, semantics for complete object-oriented programs. We express state-based class invariants in a fixpoint form by considering an abstraction of the class semantics, and we show how class invariants can be automatically inferred exploiting a static analysis of the methods. Furthermore, we address the problem of inferring a subclass invariant without accessing to the parent code, but just to its invariant. (C) 2005 Published by Elsevier Ltd.
We introduce a concept of multiple dynamic classification, a powerful generalization of single-inheritance OO, and a language Ferret which implements it. Multiple classification allows Male, Female, and Married to be ...
详细信息
We introduce a concept of multiple dynamic classification, a powerful generalization of single-inheritance OO, and a language Ferret which implements it. Multiple classification allows Male, Female, and Married to be subclasses of Person, arranged so that a single Person object may be both Male and married, but may not be both Male and Female. Dynamic classification allows classes to change: a Person may acquire or lose married status. The subclasses are true subclasses. married carries fields (e.g., spouse) which are specific to married people. Methods may be defined on classes, and even on Boolean combinations of class: Male & Married. Ferret provides a generalization of superclass calls, so that the methods for Male & Married can be based on those for Male and Married, without losing other classifications like Employee. Ferret has mutators, analogous to constructors but applicable when objects change class. The resulting language is powerful and highly expressive. (C) 2008 Elsevier Ltd. All rights reserved.
Gmat is a C++ program able to compute the rovibrational G matrix in molecules of arbitrary size. This allows the building of arbitrary rovibrational Hamiltonians. In particular, the program is designed to work with th...
详细信息
Gmat is a C++ program able to compute the rovibrational G matrix in molecules of arbitrary size. This allows the building of arbitrary rovibrational Hamiltonians. In particular, the program is designed to work with the structural results of potential energy hypersurface mappings computed in computer clusters or computational Grid environments. In the present version, 1.0. the program uses internal coordinates as vibrational coordinates, with the principal axes of inertia as body-fixed system. The main design implements a complete separation of the interface and functional parts of the program. The interface part permits the automatic reading of the molecular structures from the Output files of different electronic structure codes. At present, Gamess and Gaussian output files are allowed. To Such an end, use is made of the object orientation polymorphism characteristic. The functional part computes numerically the derivatives of the nuclear positions respect to the vibrational coordinates. Very accurate derivatives are obtained by using central differences embedded in a nine levels Richardson extrapolation procedure. Program summary Program title: Gmat Catalogue identifier: AECZ_v1_0 Program summary URL: http://***/stimmaries/AECZ_*** Program obtainable from: CPC Program Library, Queen's University, Belfast, N. Ireland Licensing provisions: Standard CPC licence, http://***/licencel/*** No. of lines in distributed program, including test data, etc.: 17 023 No. of bytes in distributed program, including test data, etc.: 274 714 Distribution format: *** programming language: Standard C++ Computer: All running Linux/Windows Operating system: Linux, Windows Classification: 16.2 Nature of problem: Computation of the rovibrational G matrix in molecules of any size. This allows the building of arbitrary rovibrational Hamiltonians. It must be possible to obtain the input data front the output files of standard electronic structure
The electronic Ligand Builder and Optimization Workbench (eLBOW) is a program module of the PHENIX suite of computational crystallographic software. It is designed to be a flexible procedure that uses simple and fast ...
详细信息
The electronic Ligand Builder and Optimization Workbench (eLBOW) is a program module of the PHENIX suite of computational crystallographic software. It is designed to be a flexible procedure that uses simple and fast quantum-chemical techniques to provide chemically accurate information for novel and known ligands alike. A variety of input formats and options allow the attainment of a number of diverse goals including geometry optimization and generation of restraints.
Synchronization ensures exclusive shared-variable access at runtime, and static access control mechanisms give similar guarantees at compilation time. Usually we treat these language concepts as separate. In this work...
详细信息
Synchronization ensures exclusive shared-variable access at runtime, and static access control mechanisms give similar guarantees at compilation time. Usually we treat these language concepts as separate. In this work we propose to integrate synchronization into access control in a Java-like language: Shared-variable access depends on the availability of tokens (as a form of access control), and the compiler generates code for locking to gain the needed tokens (synchronization). We get more freedom in expressing synchronization at appropriate points in a program and weaker influence of concurrency on the program structure.
The AutoTest framework automates the software testing process by relying on programs that contain the instruments of their own verification, in the form of contract-oriented specifications of classes and their individ...
详细信息
The AutoTest framework automates the software testing process by relying on programs that contain the instruments of their own verification, in the form of contract-oriented specifications of classes and their individual routines.
An object-oriented, individual-based simulation framework was developed for modeling the diffusion of genetic material in subdivided populations. objects representing individual organisms were defined, each with a uni...
详细信息
An object-oriented, individual-based simulation framework was developed for modeling the diffusion of genetic material in subdivided populations. objects representing individual organisms were defined, each with a unique genotype composed of gene objects. The organisms mate and reproduce, and progeny disperse or recruit back to their native population through the use of a Movement interface. The object-oriented approach is also linked to analytical theory through the development of matrix-based equations. An implementation of the model demonstrates how changes to basic population parameters affect spatial and temporal genetic structure. Scalar changes to the system affect the duration over which processes occur as well as the degree of variance, but appear to leave overall structural patterns unchanged. object-oriented programming provides some unique advantages for modeling population genetic processes, including the use of abstraction and implementation, as well as the ability to accommodate complex, heterogeneous behavior. Crown Copyright (C) 2009 Published by Elsevier B.V. All rights reserved.
Whenever we develop software we know it will evolve over time, and it will need to be adapted to changing requirements. A variation point is where a program has been designed for change, or where it easily can be acco...
详细信息
Whenever we develop software we know it will evolve over time, and it will need to be adapted to changing requirements. A variation point is where a program has been designed for change, or where it easily can be accommodated to change. Here we discuss variation points in numerical solvers for Partial Differential Equations (PDEs). Our experience is that an abstraction oriented approach based on coordinate-free numerics naturally provides most, if not all, variation points needed.
Efficiency and flexibility are often mutually exclusive features in a code. This still prompts a large part of the Scientific Computing community to use traditional procedural languages. In the last years, however, ne...
详细信息
Efficiency and flexibility are often mutually exclusive features in a code. This still prompts a large part of the Scientific Computing community to use traditional procedural languages. In the last years, however, new programming techniques have been introduced allowing for a high level of abstraction without loss of performance. In this paper we present an application of the Expression Templates technique introduced in (Veldhuizen in Expression templates. C++ Report magazine, vol 7, pp 26-31, 1995) to the assembly step of a finite element computation. We show that a suitable implementation, such that the compiler has the role of parsing abstract operations, allows for user-friendliness. Moreover, it gains in performance with respect to more traditional techniques for achieving this kind of abstraction. Both the cases of conforming and discontinuous Galerkin finite element discretization are considered. The proposed implementation is finally applied to a number of problems entailing different kind of complications.
This paper presents an approach to automated generation of executable test code from class models represented by the UML protocol state machines. It supports several coverage criteria for state models, including state...
详细信息
This paper presents an approach to automated generation of executable test code from class models represented by the UML protocol state machines. It supports several coverage criteria for state models, including state coverage, transition coverage, and basic and extended round-trip coverage. It allows the tester to add and modify detailed test parameters (e. g., actual arguments for method invocations and implementation-specific environments) if necessary. When the state model is modified due to requirements change, the hand-crafted test parameters, if still valid, are automatically reused. This reduces the working load for regeneration of tests for modified models. In addition to test code, we also automatically generate state wrapper aspects in AspectJ, which facilitates comparing actual object states to expected states during test execution. This enables the automated verdict of pass/failure for test cases without the need to modify the source code of the class under test. We present two examples for which the executable test code is generated. They demonstrate the reuse of test parameters and testing of object interactions, respectively.
暂无评论