techniques are indispensable for the specification and veri. cation of the functional behaviour of programs. In object-oriented specification languages like Java Modeling Language, a powerful abstraction technique is ...
详细信息
techniques are indispensable for the specification and veri. cation of the functional behaviour of programs. In object-oriented specification languages like Java Modeling Language, a powerful abstraction technique is the use of model classes, that is, classes that are only used for specification purposes and that provide object-oriented interfaces for essential mathematical concepts such as sets or relations. Although the use of model classes in specifications is natural and powerful, they pose problems for veri. cation. Program verifiers map model classes to their underlying logics. Flaws in a model class or the mapping can easily lead to unsoundness and incompleteness. This article proposes an approach for the faithful mapping of model classes to mathematical structures provided by the theorem prover of the program veri. er at hand. Faithfulness means that a given model class semantically corresponds to the mathematical structure it is mapped to. This approach enables reasoning about programs specified in terms of model classes. It also helps in writing consistent and complete model-class specifications as well as in identifying and checking redundant specifications.
Distribution restoration process is done by switching actions of sectionalizing and tie switches on the feeders. The state of these switches can be determined by applying logical reasoning. Thus, knowledge-based syste...
详细信息
Distribution restoration process is done by switching actions of sectionalizing and tie switches on the feeders. The state of these switches can be determined by applying logical reasoning. Thus, knowledge-based systems are ideal tools to accomplish the task. In this paper, an expert system is developed by utilizing its fast reasoning mechanism and object-oriented features. The feeder component and configuration data are organized in a hierarchy way using the object-oriented programming paradigm. On the other hand, facts are used for representing the information during inference process. Service restoration procedure proposed in this paper takes load variation into consideration. The simulation results indicate that more solutions can be obtained for service restoration problems when load variation is considered. Another unique property of the proposed system is that it is capable of proposing multiple restoration plans. Multiple plans are important for the system operators since the best solution proposed by the system may not be workable in reality. By proposing multiple plans, the system operator can choose a plan which is more suitable to the real situation for service restoration problems.
In component-based software systems, the basic building block is the component, and applications are built as component compositions. 'Dynamic reconfiguration' in such systems is defined as the ability to repl...
详细信息
In component-based software systems, the basic building block is the component, and applications are built as component compositions. 'Dynamic reconfiguration' in such systems is defined as the ability to replace individual components at runtime, or to change the compositional topology by adding/removing components and/or changing the patterns of their interconnection. A 'quiescence service' supports dynamic reconfiguration by pushing a system into a stable state in which such changes can be safely made. It is thus a key enabler of dynamic reconfiguration. The authors present the design of a quiescence service, which has been implemented for the OpenCOM component-based programming platform. It is argued that this design shows significant advances over the state of the art in quiescence support for component-based systems. In particular, it minimises programmer overhead and system disruption, and efficiently supports a large class of systems without imposing architectural constraints.
We introduce a translation of the simply typed lambda-calculus into C++, and give a mathematical proof of the correctness of this translation. For this purpose we develop a suitable fragment of C++ together with a den...
详细信息
We introduce a translation of the simply typed lambda-calculus into C++, and give a mathematical proof of the correctness of this translation. For this purpose we develop a suitable fragment of C++ together with a denotational semantics. We introduce a formal translation of the lambda-calculus into this fragment, and show that this translation is correct with respect to the denotational semantics. We show as well a completeness result, namely that by translating lambda-terms we obtain essentially all C++ terms in this fragment. We introduce a mathematical model for the evaluation of programs of this fragment, and show that the evaluation computes the correct result with respect to this semantics.
One key to several quality factors of software is the way components are connected. Software coupling can be used to estimate a number of quality factors, including maintainability, complexity, and reliability. object...
详细信息
One key to several quality factors of software is the way components are connected. Software coupling can be used to estimate a number of quality factors, including maintainability, complexity, and reliability. object-oriented languages are designed to reduce the number of dependencies among classes, which encourages separation of concerns and should reduce the amount of coupling. At the same time, the object-oriented language features change the way the connections are made, how they must be analyzed, and how they are measured. This paper discusses software couplings based on object-oriented relationships between classes, specifically focusing on types of couplings that are not available until after the implementation is completed, and presents a static analysis tool that measures couplings among classes in Java packages. Data from evaluating the tool on several open-source projects are provided. The coupling measurement is based on source code, which has the advantage of being quantitative and more precise than previous measures, but the disadvantage of not being available before implementation, and thus not useful for some predictive efforts.
The trend towards domain-specific languages leads to an ever-growing plethora of highly specialised languages. Developers of such languages focus on their specific domains rather than on the technical challenges of la...
详细信息
The trend towards domain-specific languages leads to an ever-growing plethora of highly specialised languages. Developers of such languages focus on their specific domains rather than on the technical challenges of language design. The generic features of languages are rarely included in special-purpose languages. One very important feature is the ability to formulate partial programs in separate encapsulated entities, which can be composed into complete programs in a well-defined manner. A language-independent approach is presented that adds useful constructs for de. ning components. The authors discuss the underlying concepts and describe a composition environment and tool supporting these ideas - the Reuseware Composition Framework. To evaluate this approach, the authors enrich the (Semantic) Web query language Xcerpt with an additional useful reuse concept - modules.
Language processors can be derived from logic grammars. That several concerns in the processor such as parsing, several kinds of analysis or transformations, can be specified as aspects of the logic grammar is demonst...
详细信息
Language processors can be derived from logic grammars. That several concerns in the processor such as parsing, several kinds of analysis or transformations, can be specified as aspects of the logic grammar is demonstred. For that purpose, the authors bring the concepts of aspect-orientedprogramming to Prolog in a systematic way, based on established Prolog technology. The authors illustrate that typical Prolog programming techniques can be described as generic aspects and provided in a library to support reusable concerns. A domain-specific language (DSL) is developed to improve readability of aspect-oriented specifications.
Current programming languages and software engineering paradigms are proving insufficient for building intelligent multi-agent systems-such as interactive games and narratives-where developers are called upon to write...
详细信息
Current programming languages and software engineering paradigms are proving insufficient for building intelligent multi-agent systems-such as interactive games and narratives-where developers are called upon to write increasingly complex behavior for agents in dynamic environments. A promising solution is to build adaptive systems;that is, to develop software written specifically to adapt to its environment by changing its behavior in response to what it observes in the world. In this paper we describe a new programming language, An Adaptive Behavior Language (A(2)BL), that implements adaptive programming primitives to support partial programming, a paradigm in which a programmer need only specify the details of behavior known at code-writing time, leaving the run-time system to learn the rest. Partial programming enables programmers to more easily encode software agents that are difficult to write in existing languages that do not offer language-level support for adaptivity. We motivate the use of partial programming with an example agent coded in a cutting-edge, but non-adaptive agent programming language (ABL), and show how A(2)BL can encode the same agent much more naturally.
PyTrilinos is a collection of Python modules that are useful for serial and parallel scientific computing. This collection contains modules that cover serial and parallel dense linear algebra, serial and parallel spar...
详细信息
PyTrilinos is a collection of Python modules that are useful for serial and parallel scientific computing. This collection contains modules that cover serial and parallel dense linear algebra, serial and parallel sparse linear algebra, direct and iterative linear solution techniques, domain decomposition and multilevel preconditioners, nonlinear solvers, and continuation algorithms. Also included are a variety of related utility functions and classes, including distributed I/O, coloring algorithms, and matrix generation. PyTrilinos vector objects are integrated with the popular NumPy Python module, gathering together a variety of high-level distributed computing operations with serial vector operations. PyTrilinos is a set of interfaces to existing, compiled libraries. This hybrid framework uses Python as front-end, and efficient precompiled libraries for all computationally expensive tasks. Thus, we take advantage of both the flexibility and ease of use of Python, and the efficiency of the underlying C++, C, and FORTRAN numerical kernels. Out numerical results show that, for many important problem classes, the overhead required by the Python interpreter is negligible. To run in parallel, PyTrilinos simply requires a standard Python interpreter. The fundamental MPI calls are encapsulated under an abstract layer that manages all interprocessor communications. This makes serial and parallel scripts using PyTrilinos virtually identical.
In this paper, we describe the design and development of a simulation-agent interface for real-time distributed control system benchmarking. This work is motivated by the need to test the feasibility of extending agen...
详细信息
In this paper, we describe the design and development of a simulation-agent interface for real-time distributed control system benchmarking. This work is motivated by the need to test the feasibility of extending agent-based systems to the physical device level in manufacturing and other industrial automation systems. Our work focuses on the development of hybrid physical/simulation environment that can be used to perform tests at both the physical device level, as well as the planning and scheduling level of control. As part of this work, we have extended the proxy design pattern for this application. This paper focuses on the resulting software design pattern for distributed control system benchmarking and provides examples of its use in our hybrid physical/simulation environment. (c) 2007 Elsevier Ltd. All rights reserved.
暂无评论