Complex graphical user interfaces (GUIs) that support a large amount of user interaction require a fast response time, a rich set of building blocks for an esthetic look-and-feel, and a development environment that su...
详细信息
Complex graphical user interfaces (GUIs) that support a large amount of user interaction require a fast response time, a rich set of building blocks for an esthetic look-and-feel, and a development environment that supports ongoing change. On the World Wide Web, client-side technologies offer more of these features than do server-side solutions. Java and JavaScript are the two most popular languages used for client-side GUI implementations. Java implementations require a user to download a plug-in that contains a virtual machine to execute the Java byte-code. The installation and maintenance of this plug-in is sometimes an unsurmountable barrier to using Java. JavaScript lacks some of the desirable features of Java, such as easy to use object-oriented features and having a GUI class Library, but does not require a plug-in, We have enhanced JavaScript by implementing a new language object-JavaScript (OJS) and by providing an OJS library of GUI components, thus making it a viable alternative to Java. Copyright (C) 2000 John Wiley & Sons, Ltd.
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.
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.
Many factors are responsible for the continued shift in industry prototyping preference from device fabrication to device simulation. One of the incentives for this transition is the generality and flexibility gained ...
详细信息
ISBN:
(纸本)0966613570
Many factors are responsible for the continued shift in industry prototyping preference from device fabrication to device simulation. One of the incentives for this transition is the generality and flexibility gained by avoiding a physical prototype. Unfortunately, much of the existing simulation software was written to solve a specific problem and therefore lacks flexibility. To combat this problem, we have developed an ensemble Monte-Carlo particle-based simulator for performing device simulations with a high degree of generality. Much of the generality comes simply from using a dedicated object-oriented coding philosophy in which implementation is separated from interface as much as possible. The use of 'smart' objects also increases the flexibility of this device simulator. Finally, the simulation software uses recursively encapsulated scattering tables, allowing a reduction in memory requirements and/or processing speed when simulating devices with complicated doping profiles.
Using an object-oriented programming approach, ROBOOP, a robotic manipulator simulation package which is both platform and vendor independent, compares favorably against a package requiring similar coding effort, Perf...
详细信息
Using an object-oriented programming approach, ROBOOP, a robotic manipulator simulation package which is both platform and vendor independent, compares favorably against a package requiring similar coding effort, Performance tests show that with ROBOOP the class inverse dynamics of a 6 DOF robot can be computed in Less than 5ms with a Pentium 100Mhz computer.
From the Book: PREFACE: Introduction Ever since software development became an engineering discipline, software development teams everywhere in the world have faced similar development and deployment problems. Among o...
详细信息
ISBN:
(纸本)9780130886743;0130886742
From the Book: PREFACE: Introduction Ever since software development became an engineering discipline, software development teams everywhere in the world have faced similar development and deployment problems. Among other things, developers today are concerned about: Reusing code that has been tested and used in other applications Developing flexible applications that can be customized to the users needs, but not at the expense of overburdening the development team Addressing anomalies and add features after the application has been shipped, while avoiding a complete rewrite of the application Improving application development time by leveraging against software code developed by third party software vendors Developing distributed and non-distributed applications in a similar manner All of these challenges and many more are addressed by a single technology: the Microsoft Component object Model, better known as COM. COM is a framework for developing software components, small binary executables, that provide services to applications and other components. The incredible explosion of the Internet has caused a revolution in the way information has to be made available to the users. In developing enterprise systems, the traditional client/server model has been replaced with a three-tier programming model, enhanced for Internet applications. Developing such enterprise systems is a time- and resource-consuming affair, as the system has to meet extra enterprise-level requirements such as scalability, robustness, security, transaction support, etc. COM+ is an advanced run-time environment that providesservicesto meet many of the above-mentioned enterprise-level requirements. It is an integral part of the Windows 2000 Operating System. Developers can leverage the services provided by COM+, instead of building the services themselves. This book focuses on understanding the COM+ architecture from a developer's perspective and building COM+ applications using Microsoft Visual C+
暂无评论