61268
Systematic concurrent object-oriented programming
udging by the looks of the two parties, the marriage between concurrent computation and object-oriented programming-a union much desired by practitioners in such fields as telecommunications, highperformance computing, banking and operating systems--appears easy enough to arrange. This appearance, however, is deceptive: the problem is a hard one. This article points the way toward a pos,;ible solution. The precise problem examined here is restricted to: What is the simplest, smallest and most convincing extension to the method of systematic object-oriented software construction that can address the needs oJ concurrent and distributed computing as well as those of sequential computation? The article does not claim to discuss concurrency and distribution in a general and unbiased way. Rather, it takes the object-oriented paradigm as a given (on the basis of its contributions to the production of quality software) and investigates how best to adapt it so it covers both concurrent and sequentia;[ applications. The word "systematic" as used in the title of the article will provide strong gqaidance to our search for this minimal extension. We are interested in an approach that makes it possible to reason about software systems in a precise way, by extending to the concurrent case the systematic techniques, known as 'design by contract', which can be applied to the systematic (~dthough not necessarily fully formal) development of sequential object-oriented software. A word ofwaming as to the actual ambition of the model discussed here. No claim is made that the work as reported is final, and a number of possible criticisms are discussed in the final section. I do think, however, that in its discussion of how the mutual attraction between object orientation and concurrency can be turned into a reasonably happy marriage, this article raises a number of questions. Although crucial for both theoretical understanding and practical implementation of concurrent object-oriented computation, these questions have not been addressed (or in some cases even mentioned) by previous work on the subject, and will have to be resolved before a solution can be widely accepted and applied. Similarities and Contradictions The property which initially suggests an easy match between the ideas of concurrency and object orientation is the remarkable similarity between the basic constructs of both object orientation and concurrency. It is hard to miss the analogies between objects and processes, or more accurately between the underlying abstractions: classes and process types. Both categories of constructs support: • Local variables (attributes of a class, variables of a process or process type) • Persistent data, keeping their value between successive activations. • Encapsulated behavior (a single cycle for a process; any n u m b e r of routines for a class) • Heavy restrictions on how modules can exchange information • A c o m m u n i c a t i o n m e c h a n i s m usually based on some form of message passing. It is not surprising, then, that researchers have tried to unite the two areas. But although existing designs (for surveys see [1, 19] as well as a recent thesis [17]) have introduced many productive ideas, it is fair to state that so far none has succeeded in providing a widely accepted mechanism for concurrent object-oriented programming. The primary reason is probably the undue complexity of most of the proposed solutions, which tend to add the
206409885
Providing Trusted Components to the Industry
The software industry stands on feet of clay. However carefully we may strive to build correct and reliable software, we have no way of guaranteeing the quality of the result. Building correct and reliable software depends on the quality of so much else, from the hardware and the operating system to the compiler and the runtime libraries. And any significant software system has so many details and components of its own that we can hardly expect to get everything right if we do it all by ourselves. We describe an ambitious but realistic project that combines the ideas of reuse and formality with other more pragmatic techniques. The goal is to provide the entire software industry with a powerful set of reusable components deserving a high degree of trust.
18712665
A Note on Computing Multiple Sums
SUMMARY In a recent paper, 1 ~:method was given for computing multidimensional sums in FORTRAN in a particular case •. We show that the general problem of computing mUltidimensional sums is best expressed by a recursive definition which can then be translated into a programming language. The method is applied to an example optimization"problem. ' "
18068142
Concurrent object-oriented programming on .NET
The SCOOP model (Simple concurrent object-oriented programming) offers a comprehensive approach to building high-quality concurrent and distributed systems. The model takes advantage of the inherent concurrency implicit in object-oriented programming to provide programmers with a simple extension enabling them to produce concurrent applications with little more effort than sequential ones. In the paper, the authors discuss the basic concepts of the model, such as processors and separate objects. They also present SCOOPLI, a library implementation of SCOOP for the .NET platform. They show how SCOOP concepts are mapped to .NET constructs, and discuss distributed programming with SCOOPLI, with a focus on .NET Remoting capabilities. Several programming examples illustrate the discussion.
43184307
Library Design
16156400
Dependable Software
Achieving software reliability takes many complementary tech-niques, directed at the process or at the products. This survey summarizes some of the most fruitful ideas.
37321666
Age group differences in world wide web navigation
In this study, we examined the effects of age and training on efficiency and preferences in a World Wide Web search activity. Older participants were able to complete most of the tasks, but took more steps to find the information than did younger adults. Factors in this inefficiency were patterns of returning to the home page and revisiting pages that had been seen before during a search. Interactive training improved efficiency and altered preferences. We discuss implications for training and design.
6305120
Issues in practical application of an adaptive interface
The authors have been developing a prototype sys[em for installation in an operationat business environment. During the development, a number of issues have been encountered. These include: ● constraints arising from placing prototypes in operational environments . lack of guidelines for selecting types of adaptation ● difficulty determining adaptation criteria ● difficulty obtaining necessary data from users ● lack of guidelines for making information display decisions ● problems in testing ‘real world’ interfaces These issues are not readily solved with more sophisticated adaptation algorithms; rather. they point out the need for CO1Iect ing more information from attempts to bring intelligent interfaces to complex business environments.
20133400
Prediction of Material Properties from Chemical Structures. The Clearing Temperature of Nematic Liquid Crystals Derived from Their Chemical Structures by Artificial Neural Networks
The prediction of properties of molecules just on the basis of their chemical structures is desirable to selectively make molecules that have the wanted properties, like biological activity, viscosity, or toxicity. Here, we present an example of a new way to predict a property from the chemical structure of a chemically heterogeneous class of compounds. The clearing temperatures of nematic liquid-crystalline phases of 17383 compounds were used to train neural networks to derive this material property directly from their chemical structure. The trained neural networks were subsequently tested with 4345 structural patterns of molecules unknown to the networks to assess their predictive value. The clearing temperatures were predicted by the best network with a standard deviation of 13 degrees.