Fundamentals of OOP and Data Structures in Java is a text for an introductory course on classical data structures. Part One of the book presents the basic principles of object-oriented programming (OOP) and Graphical ...
详细信息
ISBN:
(纸本)9780521662208
Fundamentals of OOP and Data Structures in Java is a text for an introductory course on classical data structures. Part One of the book presents the basic principles of object-oriented programming (OOP) and Graphical User Interface (GUI) programming with Java as the example language. Part Two introduces each of the major data structures with supporting, GUI-based laboratory programs designed to reinforce the basic concepts and principles of the text. These laboratories allow the reader to explore and experiment with the properties of each data structure. All source code for the laboratories is available on the web. By integrating the principles of OOP and GUI programming, this book takes the unique path of presenting the fundamental issues of data structures within the context of paradigms that are essential to today's professional software developer. The authors assume the reader has only an elementary understanding of Java and no experience with OOP.
Specific object-oriented software design concepts are elaborated for a novel implementation of a class of adjoint optimization problems typical of the infinite-dimensional design and control of continuum systems. For ...
详细信息
Specific object-oriented software design concepts are elaborated for a novel implementation of a class of adjoint optimization problems typical of the infinite-dimensional design and control of continuum systems. For clarity, the design steps and ideas are elucidated using an inverse natural convection design problem. Effective application of software design concepts such as inheritance, data encapsulation, information hiding, etc., is demonstrated through instances from the example considered. Two test numerical examples are considered and the CPU statistics for one of these problems are compared with those corresponding to a procedural implementation of the same problem. The numerical examples include a three-dimensional inverse design problem that demonstrates the effectiveness of the present object-oriented approach in developing dimension-independent robust design codes. Copyright (C) 2000 John Wiley & Sons, Ltd.
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...
详细信息
ISBN:
(纸本)9781581132007
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.
We describe the design and implementation of a workbench for molecular biology that allows the easy integration of analysis tools. The software is implemented in Tcl/Tk using the [incr Tcl] extension that provides obj...
详细信息
We describe the design and implementation of a workbench for molecular biology that allows the easy integration of analysis tools. The software is implemented in Tcl/Tk using the [incr Tcl] extension that provides object-oriented programming. The program is called tkGDE and consists of four main parts. The sequence editor allows the user to perform basic editing operations on biomolecule sequences, The graphical annotation editor gives the user a graphical overview of all annotated features of a sequence. The output manager retains information on the results produced by the analysis tools, The bundle control allows several tools to run automatically, passing data from one tool to the next, Tools are integrated into the system by describing their properties in a configuration file, which drastically reduces the time needed for integration. We present results proving that Tcl/Tk has been misjudged to be slow and unsuited for large projects, To achieve sufficient performance we exploited special features of Tcl/Tk, namely idle tasks and the capabilities built into the Tk canvas widget. The system consists of more than 34 000 lines of [incr Tcl] code in 182 classes. The whole development process took about one person-year. Copyright (C) 2000 John Wiley & Sons, Ltd.
Constraint satisfaction programming (CSP) is a powerful paradigm for solving complex combinatorial problems, which has gained a lot of attention recently. Putting the power of constraint satisfaction into the hands of...
详细信息
This paper proposes an approach to object-oriented framework description. Frameworks are described using concern-specific design patterns and their composition. The frameworks understandability is achieved by the sepa...
详细信息
Virtual reality(VR) features an impressive virtual world which operates like a real one. However, convenient tools for the Va contruction work are not available yet, although there are tools like OpenInventor and Worl...
详细信息
ISBN:
(纸本)0780342534
Virtual reality(VR) features an impressive virtual world which operates like a real one. However, convenient tools for the Va contruction work are not available yet, although there are tools like OpenInventor and WorldToolKit(WTK) which relieve programmers of some low level and hardware related jobs. One of the key problems under heat discussion is to find a uniform and well organized structure for the program layout, so that a better sharing of VR resources may be achieved. In this paper, we discuss some basic tasks in constructing a virtual world and suggest message-driven object-oriented programming as a possible solution to problems concerning network VR and multiworld VR Experiment programs developed with this technique operate satisfactorily, showing the promising future of a new virtual reality constructing tool.
Using polymorphism is very useful in object-oriented programming. A programming method for accessing a heterogenereous linked list is introduced in which polymorphism is used. The method can be, stated as follows firs...
详细信息
Using polymorphism is very useful in object-oriented programming. A programming method for accessing a heterogenereous linked list is introduced in which polymorphism is used. The method can be, stated as follows firstly, establish a common basic class for all objects linked in the same heterogenereous linked list and define virtual functions concerned;then construct a function reference inferface which indudes a uniform object point type converting *** with traditional method, this method is easier, more easily augmented and maintained.
C++ and Fortran 90 are compared as object-oriented languages for use in scientific computing, C++ is a full-featured, object-oriented language that provides support for inheritance and polymorphism. Fortran 90 can mim...
详细信息
C++ and Fortran 90 are compared as object-oriented languages for use in scientific computing, C++ is a full-featured, object-oriented language that provides support for inheritance and polymorphism. Fortran 90 can mimic some object-oriented features through combinations of its TYPE and MODULE syntax elements, but it lacks inheritance and thus does not permit code reuse to the same extent as C++. Each language has other useful features unrelated to object-oriented programming, but the additional features of Fortran 90 can be included in C++ through the development of class libraries. in contrast, including the additional features of C++ in Fortran 90 would require further development of the Fortran 90 syntax. A critical feature missing in Fortran 90 is the template, which allows C++ programmers to build portable, reusable code and to dramatically improve the efficiency of the evaluation of complex expressions involving user-defined data types. (C) 1997 Elsevier Science B.V.
In object-oriented programs built in layers, an object at a higher level of abstraction is implemented by objects at lower levels of abstraction. It is usually crucial to correctness that a lower-level object not be s...
详细信息
In object-oriented programs built in layers, an object at a higher level of abstraction is implemented by objects at lower levels of abstraction. It is usually crucial to correctness that a lower-level object not be shared among several higher-level objects. This paper unveils some difficulties in writing procedure specifications strong enough to guarantee that a lower-level object can be used in the implementation of another object at a higher level of abstraction. To overcome these difficulties, the paper presents virginity, a convenient way of specifying that an object is not globally reachable and thus can safely be used in the implementation of a higher-level abstraction. (C) 1999 Elsevier Science B.V. All rights reserved.
暂无评论