In this paper we examine the structure of Maxwell equations in order to find clear signposts how to implement finite element software systems. The aim is to recognize the abstractions involved in Maxwell equations and...
详细信息
In this paper we examine the structure of Maxwell equations in order to find clear signposts how to implement finite element software systems. The aim is to recognize the abstractions involved in Maxwell equations and to exploit concepts of modern programming techniques, such as object-oriented design, to imitate the abstractions in numerical computing. As mathematics is the machinery to model physical phenomena, it is worth to imitate the same machinery in a software system. If a software system is constructed this way, it is partitioned into distinct components whose function is evident. And that is a basis for a software system that is modifiable and understandable, which are the main goals in software design.
This paper presents a new object-oriented design of software for finite element calculations. Special attention is given to coupled problems with nonlinear materials. Fundamental ideas of object-oriented design, espec...
详细信息
This paper presents a new object-oriented design of software for finite element calculations. Special attention is given to coupled problems with nonlinear materials. Fundamental ideas of object-oriented design, especially high cohesion, low coupling and encapsulation of classes, are strictly taken into account. The concept is guided by the idea to reuse as many parts as possible, The hierachy of classes for the elements, materials and held problems can be extended easily by specialization.
Statistical software provides essential support for statisticians and others who are analyzing data or doing research on new statistical techniques. Those supported typically regard themselves as "users" of ...
详细信息
Statistical software provides essential support for statisticians and others who are analyzing data or doing research on new statistical techniques. Those supported typically regard themselves as "users" of the software, but as soon as they need to express their own ideas computationally, they in fact become "programmers." Nothing is more important for the success of statistical software than enabling this transition from user to programmer, and on to gradually more ambitious software design. What does the user need? How can the design of statistical software help? This article presents a number of suggestions based on past experience and current research. The evolution of the S system reflects some of these opinions. Work on the Omegahat software provides a promising direction for future systems that reflect similar motivations.
Saving internal program data for further use is one of the most useful ideas in programming. Developing general features to provide such data saving/restoring is a very active research area. There are two application ...
详细信息
ISBN:
(纸本)3540676694
Saving internal program data for further use is one of the most useful ideas in programming. Developing general features to provide such data saving/restoring is a very active research area. There are two application areas for such features we believe to be crucial: system fault tolerance and data persistence. Our analysis shows that the features used in these areas have a lot in common: they are to flatten data of different types and save them in a store which can be used later on. The recent revision of the Ada language standard, Ada 95, introduces a new mechanism called streams that allows structured data to be flattened. Streams are sequences of elements comprising values from possibly different types. Ada 95 allows programmers to develop their streams following the standard abstract class interface. In this paper we show how to use the stream concept for developing new features to provide internal program data saving suitable for fault tolerance and persistence. A hierarchy of different storage types, useful in different application domains, is introduced. The standard stream interface is extended, making it possible for programmers to have a better control of the way streams work by separating storage medium control from the actual stream type using the design patterns. The convenience of this new interface is demonstrated by developing a generic package allowing any non-limited object to be written into a storage device. It can be used for providing data persistence and as a state restoration feature in schemes used for tolerating software design faults.
This paper presents a software model of agent-based competitive power systems. The model consists of software objects (agents) that represent individual system components and other administrative entities. Each of the...
详细信息
ISBN:
(纸本)0780359356
This paper presents a software model of agent-based competitive power systems. The model consists of software objects (agents) that represent individual system components and other administrative entities. Each of these agents has two characteristics: state (physical characteristics, limitations, record values, etc.) and behavior (operation and control, business strategies, performance, local and global interactions, etc.). An agent maintains its state in variables and implements its behavior with methods. We define software objects in terms of classes built by sets of attributes and member functions. The objects interact with each other via massage passing. These interactions are mapped into functional procedures reflecting objects' intelligence to optimize performance while ensuring reliable system operation. We give snapshots of the C++ code to illustrate developed concepts.
The intelligent agent architecture widely employs methods of logic of belief. The goal of the paper is to find a correct and effective inference mechanism that can substantially improve resolution based traditional me...
详细信息
ISBN:
(纸本)0819436526
The intelligent agent architecture widely employs methods of logic of belief. The goal of the paper is to find a correct and effective inference mechanism that can substantially improve resolution based traditional methods. The semantics of the mechanism is based on Minsky's frames. Each agent is modeled by Minsky's frames with their slots representing what agent believes in. Inference process is realized by daemons filling the frames slots. The filling in this context means setting unknown slot values. The order of reasoning is established by a directed acyclic graph and driven by the topological sorting as a reasoning strategy. The inference algorithm analysis shows that the new method works in polynomial time. Therefore it is more efficient than NP, resolution based traditional methods. The correctness of objectoriented implementation of the algorithm is established by considering the inference process in terms of abstract relational systems and their isomorphisms. Finally an implementation methodology of agents and their inference process in objectoriented language is presented. All the considered conceps and methodology are illustrated in objectoriented solution to "Three wisemen problem" implemented in Smalltalk.
Java has many powerful attractions as a platform for software development. In this paper, the author explains how developers of embedded systems can exploit its strengths to maximum advantage and describes how realisi...
详细信息
Java has many powerful attractions as a platform for software development. In this paper, the author explains how developers of embedded systems can exploit its strengths to maximum advantage and describes how realising the full benefits of Java technology in embedded applications requires a degree of optimisation.
An adaptive program is an object-oriented program which is abstracted over the particular class structure. This abstraction fosters software reuse, because programmers can concentrate on specifying how to process the ...
详细信息
ISBN:
(纸本)354067263X
An adaptive program is an object-oriented program which is abstracted over the particular class structure. This abstraction fosters software reuse, because programmers can concentrate on specifying how to process the objects which are essential to their application. The compiler of an adaptive program takes care of actually locating the objects. The adaptive programmer merely writes a traversal specification decorated with actions. The compiler instantiates the specification with the actual class structure and generates code that traverses a collection of objects, performing visits and actions according to the specification. Earlier work on adaptive programming merely stated but never verified that compilation of adaptive programs is nothing but partial evaluation. We employ an algebraic framework based on derivatives of traversal specifications to develop an interpretive semantics of adaptive programming. This semantics is naturally staged in up to three stages. Compilation can be achieved using a standard partial evaluator. Slight changes in the binding-time properties yield several variants of the compiler, by trading compile-time computations for run-time computations.
An adaptive program is an object-oriented program which is abstracted over the particular class structure. This abstraction fosters! software reuse, because programmers can concentrate on specifying how to process the...
详细信息
ISBN:
(纸本)3540672575
An adaptive program is an object-oriented program which is abstracted over the particular class structure. This abstraction fosters! software reuse, because programmers can concentrate on specifying how to process the objects which are essential to their application. The compiler of an adaptive program takes care of actually locating the objects. The adaptive programmer merely writes a traversal specification decorated with actions. The compiler instantiates the specification with the actual class structure and generates code that traverses a collection of objects, performing visits and actions according to the specification. Previous approaches to compiling adaptive programs rely on, standard methods from automata theory and graph theory to achieve their goal. We introduce a new foundation for the compilation of adaptive programs, based on the algebraic properties of traversal specifications. Exploiting these properties, we develop the underlying theory for an efficient compilation algorithm. A key result is the derivation of a normal form for traversal specifications. This normal form is the basis for directly generating a traversal automaton with a uniformly minimal number of states.
Determining the potential targets of virtual method invocations is essential for inter-procedural optimizations of object-oriented programs. It is generally hard to determine such targets accurately. The problem is es...
详细信息
Determining the potential targets of virtual method invocations is essential for inter-procedural optimizations of object-oriented programs. It is generally hard to determine such targets accurately. The problem is especially difficult for dynamic languages such as Java, because additional targets of virtual calls may appear at runtime. Current mechanisms that enable inter-procedural optimizations for dynamic languages, repeatedly validate the optimizations at runtime. This paper addresses this predicament by proposing a novel technique for conservative devirtualization analysis, which applies to a significant number of virtual calls in Java programs. Unlike previous work, our technique requires neither whole program analysis nor runtime information, and incurs no runtime overhead. Our solution is very efficient to compute and is based on a newly introduced, seemingly unrelated security feature of Java file archives. On average, our analysis "seals" (safely devirtualizes) about 39% of the virtual calls (to non-final methods) that appear in SPECjvm98 programs, and about 29% of the calls invoked while executing these programs. In the runtime library ***, about 10% of the packages contain a significant percentage (20-60%) of sealed calls, with a total average of about 8.5%. Most of these calls are also shown to be monomorphic, a fact which can be safely exploited by aggressive inter-procedural optimizations such as direct inlining. These results indicate that our technique has a strong potential for enhancing the analysis and optimization of Java programs.
暂无评论