This book focuses on object-oriented concurrent computing, which can be considered a model of concurrent programming, and proposes a new programming language, ConcurrentSmalltalk, which is based on object-oriented concurrent computing. The book also shows the efficiency of object-oriented concurrent computing through the design, implementation, and evaluation of ConcurrentSmalltalk. ConcurrentSmalltalk is designed to be upwardly compatible with Smalltalk-80. In the book, the ConcurrentSmalltalk object model is first proposed. Next, issues which arise from maintaining compatibility with Smalltalk-80 are discussed. Finally, the ConcurrentSmalltalk virtual machine which executes the ConcurrentSmalltalk programs is proposed.
This monograph is the first comprehensive study of the design, application, and implementation of Pandora, a new parallel logic programming language. Pandora combines stream and-parallelism with don't-know non-determinism in a unified and efficient manner. As a result, it provides a programming paradigm of non-deterministic concurrent communicating processes, which opens up interesting application areas that cannot conveniently be expressed in existing logic programming languages. The author describes the use of Pandora for constraint programming, solving resource allocation problems, heuristic search, and distributed discrete event simulation. The final chapters describe in detail the implementation of Pandora on single- as well as multi-processor architectures.The volume is aimed at the community of logic programming students and professionals, as well as researchers and professionals in artificial intelligence. It will also be of great interest to researchers in programming language design and parallel processing.
Object-Oriented Design with Applications has long been the essential reference to object-oriented technology, which, in turn, has evolved to join the mainstream of industrial-strength software development. In this third edition--the first revision in 13 years--readers can learn to apply object-oriented methods using new paradigms such as Java, the Unified Modeling Language (UML) 2.0, and .NET. The authors draw upon their rich and varied experience to offer improved methods for object development and numerous examples that tackle the complex problems faced by software engineers, including systems architecture, data acquisition, cryptoanalysis, control systems, and Web development. They illustrate essential concepts, explain the method, and show successful applications in a variety of fields. You'll also find pragmatic advice on a host of issues, including classification, implementation strategies, and cost-effective project management. New to this new edition are An introduction to the new UML 2.0, from the notation's most fundamental and advanced elements with an emphasis on key changes New domains and contexts A greatly enhanced focus on modeling--as eagerly requested by readers--with five chapters that each delve into one phase of the overall development lifecycle. Fresh approaches to reasoning about complex systems An examination of the conceptual foundation of the widely misunderstood fundamental elements of the object model, such as abstraction, encapsulation, modularity, and hierarchy How to allocate the resources of a team of developers and mange the risks associated with developing complex software systems An appendix on object-oriented programming languages This is the seminal text for anyone who wishes to use object-oriented technology to manage the complexity inherent in many kinds of systems. Sidebars Preface Acknowledgments About the Authors Section I: Concepts Chapter 1: Complexity Chapter 2: The Object Model Chapter 3: Classes and Objects Chapter 4: Classification Section II: Method Chapter 5: Notation Chapter 6: Process Chapter 7: Pragmatics Chapter 8: System Architecture: Satellite-Based Navigation Chapter 9: Control System: Traffic Management Chapter 10: Artificial Intelligence: Cryptanalysis Chapter 11: Data Acquisition: Weather Monitoring Station Chapter 12: Web Application: Vacation Tracking System Appendix A: Object-Oriented Programming Languages Appendix B: Further Reading Notes Glossary Classified Bibliography Index
Introduces mechanical engineers to high-performance computing using the new generation of computers with vector and parallel processing capabilities that allow the solution to problems beyond the ken of traditional computers. The chapters present an introduction and overview, explain several methodo
During the last few years, computers have evolved from pure number crunching machines to "intelligent" problem solving tools. Increasing effort has been spent on the investigation of new approaches and the application of solutions to real world problems. In this way, exciting new techniques have evolved providing support for an increasing number of technical and economical aspects. Applications range from the design and development of ultra highly integrated circuits to totally new man-machine interfaces, from software engineering tools to fault diagnosis systems, from decision support to even the analysis of unemployment. Following a first joint workshop on Advanced Information Processing held in July 1988 at the Institute for Problems of Informatics of the USSR Academy of Sciences (IPIAN) at Moscow, this was the second time that scientists and researchers from the USSR Academy of Sciences and Siemens AG, Corporate Research and Development, exchanged results and discussed recent advances in the field of applied computer sciences. Initiated by Prof. Dr. I. Mizin, Corresponding Member of the USSR Academy of Sciences and Director of IPIAN, and Prof. Dr. H. Schwartzel, Vice President of the Siemens AG and Head of the Applied Computer Science & Software Department, a joint symposium was arranged at the USSR Academy of Sciences in Moscow on June 5th and 6th 1990. The meetings on Information Processing and Software and Systems Design Automation provided a basis both for presentations of ongoing research and for discussions about specific problems.
Foreword by Bjarne Stroustrup Software is generally acknowledged to be the single greatest obstacle preventing mainstream adoption of massively-parallel computing. While sequential applications are routinely ported to platforms ranging from PCs to mainframes, most parallel programs only ever run on one type of machine. One reason for this is that most parallel programming systems have failed to insulate their users from the architectures of the machines on which they have run. Those that have been platform-independent have usually also had poor performance. Many researchers now believe that object-oriented languages may offer a solution. By hiding the architecture-specific constructs required for high performance inside platform-independent abstractions, parallel object-oriented programming systems may be able to combine the speed of massively-parallel computing with the comfort of sequential programming. Parallel Programming Using C++ describes fifteen parallel programming systems based on C++, the most popular object-oriented language of today. These systems cover the whole spectrum of parallel programming paradigms, from data parallelism through dataflow and distributed shared memory to message-passing control parallelism. For the parallel programming community, a common parallel application is discussed in each chapter, as part of the description of the system itself. By comparing the implementations of the polygon overlay problem in each system, the reader can get a better sense of their expressiveness and functionality for a common problem. For the systems community, the chapters contain a discussion of the implementation of the various compilers and runtime systems. In addition to discussing the performance of polygon overlay, several of the contributors also discuss the performance of other, more substantial, applications. For the research community, the contributors discuss the motivations for and philosophy of their systems. As well, many of the chapters include critiques that complete the research arc by pointing out possible future research directions. Finally, for the object-oriented community, there are many examples of how encapsulation, inheritance, and polymorphism can be used to control the complexity of developing, debugging, and tuning parallel software.
This volume constitutes the proceedings of the First International Symposiumorganized by the Japan Society for Software Science and Technology. The symposium was held in Kanazawa, Japan, November 4-6, 1993 and attracted many researchers from academia and industry as well as ambitioned practitioners. Object technologies, in particular object-oriented programming, object-oriented databases, and software object bases, currently attract much attention and hold a great promise of future research and development in diverse areas of advanced software. The volume contains besides 6 invited presentations by renown researchers and 25 contributed papers carefully selected by an internationalprogram committee from a total of 92 submissions.
ECOOP '91 is the fifth annual European Conference on Object-Oriented Programming. From their beginning, the ECOOP conferences have been very successful as a forum of high scientific quality where the newest devel- opments connected to object-oriented programming and related areas could be presented and discussed. Over the last few years object-oriented technology has gained widespread use and considerable popularity. In parallel with this, the field has matured scientifically, but there is still a lot of room for new ideas and for hot debates over fundamental issues, as these proceedings show. The 22 papers in this volume were selected by the programme committee from 129 submissions. Important issues discussed in the contributions are language design, specification, databases, concurrency types and software development.
It is now more than twenty-five years since object-oriented programming was “inve- ed” (actually, more than thirty years since work on Simula started), but, by all accounts, it would appear as if object-oriented technology has only been “discovered” in the past ten years! When the first European Conference on Object-Oriented Programming was held in Paris in 1987, I think it was generally assumed that Object-Oriented Progr- ming, like Structured Programming, would quickly enter the vernacular, and that a c- ference on the subject would rapidly become superfluous. On the contrary, the range and impact of object-oriented approaches and methods continues to expand, and, - spite the inevitable oversell and hype, object-oriented technology has reached a level of scientific maturity that few could have foreseen ten years ago. Object-oriented technology also cuts across scientific cultural boundaries like p- haps no other field of computer science, as object-oriented concepts can be applied to virtually all the other areas and affect virtually all aspects of the software life cycle. (So, in retrospect, emphasizing just Programming in the name of the conference was perhaps somewhat short-sighted, but at least the acronym is pronounceable and easy to rem- ber!) This year’s ECOOP attracted 146 submissions from around the world - making the selection process even tougher than usual. The selected papers range in topic from programming language and database issues to analysis and design and reuse, and from experience reports to theoretical contributions.