Best of
Computer-Science

1995

The Implementation (TCP/IP Illustrated, Volume 2)


Gary R. Wright - 1995
    "TCP/IP Illustrated, Volume 2" contains a thorough explanation of how TCP/IP protocols are implemented. There isn't a more practical or up-to-date bookothis volume is the only one to cover the de facto standard implementation from the 4.4BSD-Lite release, the foundation for TCP/IP implementations run daily on hundreds of thousands of systems worldwide. Combining 500 illustrations with 15,000 lines of real, working code, "TCP/IP Illustrated, Volume 2" uses a teach-by-example approach to help you master TCP/IP implementation. You will learn about such topics as the relationship between the sockets API and the protocol suite, and the differences between a host implementation and a router. In addition, the book covers the newest features of the 4.4BSD-Lite release, including multicasting, long fat pipe support, window scale, timestamp options, and protection against wrapped sequence numbers, and many other topics. Comprehensive in scope, based on a working standard, and thoroughly illustrated, this book is an indispensable resource for anyone working with TCP/IP.

Object-Oriented Programming in C++


Robert Lafore - 1995
    While the structure of this book is similar to that of the previous edition, each chapter reflects the latest ANSI C++ standard and the examples have been thoroughly revised to reflect current practices and standards.

Neural Network Design


Martin T. Hagan - 1995
    The book covers neuron model and network architectures, signal and weight vector spaces, linear transformations for neural networks. and performance surfaces and optimum points.

Data Structures Using C and C++


Yedidyah Langsam - 1995
     Covers the C++ language, featuring a wealth of tested and debugged working programs in C and C++. Explains and analyzes algorithms -- showing step- by-step solutions to real problems. Presents algorithms as intermediaries between English language descriptions and C programs. Covers classes in C++, including function members, inheritance and object orientation, an example of implementing abstract data types in C++, as well as polymorphism.

TCP/IP Illustrated, Vol. 2: The Implementation (Addison-Wesley Professional Computing Series)


Gary R. Wright - 1995
    

Dynamic Programming And Optimal Control, Vol. 1


Dimitri P. Bertsekas - 1995
    The treatment focuses on basic unifying themes, and conceptual foundations. It illustrates the versatility, power, and generality of the method with many examples and applications from engineering, operations research, and other fields. It also addresses extensively the practical application of the methodology, possibly through the use of approximations, and provides an introduction to the far-reaching methodology of Neuro-Dynamic Programming. The first volume is oriented towards modeling, conceptualization, and finite-horizon problems, but also includes a substantive introduction to infinite horizon problems that is suitable for classroom use. The second volume is oriented towards mathematical analysis and computation, and treats infinite horizon problems extensively. The text contains many illustrations, worked-out examples, and exercises.

C Programming FAQs: Frequently Asked Questions


Steve Summit - 1995
    Extensively revised from his popular FAQ list on the Internet, more than 400 questions are answered to illustrate key points and to provide practical guidelines for programmers. C Programming FAQs is a welcomed reference for all C programmers, providing accurate answers, insightful explanations, and clarification of fine points along with numerous code examples. Highlights How-to-manual covering the C language in a practical, nuts-and-bolts way Concise answers to more than 400 most frequently asked questions with definitively correct answers Description of real problems that crop up when writing actual programs Clarification of widely misunderstood issues: subtle portability problems, proper language usage, system-specific issues.

Randomized Algorithms


Rajeev Motwani - 1995
    This book introduces the basic concepts in the design and analysis of randomized algorithms. The first part of the text presents basic tools such as probability theory and probabilistic analysis that are frequently used in algorithmic applications. Algorithmic examples are also given to illustrate the use of each tool in a concrete setting. In the second part of the book, each chapter focuses on an important area to which randomized algorithms can be applied, providing a comprehensive and representative selection of the algorithms that might be used in each of these areas. Although written primarily as a text for advanced undergraduates and graduate students, this book should also prove invaluable as a reference for professionals and researchers.

Developing Your Own 32 Bit Operating System


Richard A. Burgess - 1995
    This tutorial is designed to build upon an intermediate programmer's knowledge and explain how to design and develop a feature-rich, full operating system.-- Explains the details of all 32-bit operating systems and allows users to actually develop their own customized system-- Discusses OS initializations, programming interfaces, keyboard services, API specifications, OS Kernel, device drivers, and job management-- CD-ROM includes source code, a full 32-bit assembler, and a 32-bit C compiler

Numerical Linear Algebra and Applications


Biswa Nath Datta - 1995
    A number of special, user-friendly features make it possible for readers to develop a firm grasp of the concepts of roundoff errors, stability, condition, and accuracy, as well as to develop an appreciation for the core algorithms, their usefulness, and implementations.

Dynamic Programming and Optimal Control, Vol. 2


Dimitri P. Bertsekas - 1995
    The second volume is oriented towards mathematical analysis and computation, and treats infinite horizon problems extensively. New features of the 3rd edition are: 1) A major enlargement in size and scope: the length has increased by more than 50%, and most of the old material has been restructured and/or revised. 2) Extensive coverage (more than 100 pages) of recent research on simulation-based approximate dynamic programming (neuro-dynamic programming), which allow the practical application of dynamic programming to large and complex problems. 3) An in-depth development of the average cost problem (more than 100 pages), including a full analysis of multichain problems, and an extensive analysis of infinite-spaces problems. 4) An introduction to infinite state space stochastic shortest path problems. 5) Expansion of the theory and use of contraction mappings in infinite state space problems and in neuro-dynamic programming. 6) A substantive appendix on the mathematical measure-theoretic issues that must be addressed for a rigorous theory of stochastic dynamic programming. Much supplementary material can be found in the book's web page

The Microprocessor: A Biography


Michael S. Malone - 1995
    The book provides a general overview of the technology, including how it works and how it's fabricated.

Fundamentals of Algorithmics


Gilles Brassard - 1995
    

Portable Shell Programming: An Extensive Collection of Bourne Shell Examples


Bruce Blinn - 1995
    This complete guide shows how to use the shell to develop shell scripts, using the shell more like a programming language than a command interpreter. Covers shell syntax, portability on different UNIX systems, using shell scripts to catch or ignore signals, executing commands using the remote shell command, and using the shell's redirection syntaxes. For software development engineers, system administrators, and QA test engineers who work with UNIX computer systems.

Enough Rope to Shoot Yourself in the Foot: Rules for C and C++ Programming


Allen I. Holub - 1995
    Enough Rope to Shoot Yourself in the Foot offers well over 100 rules of thumb you can use to create elegant, maintainable code. And since it comes from an acknowledged expert in the field, you can't go wrong. Allen Holub provides an indispensable set of guidelines, tips, and techniques to help you use these extremely powerful languages to the fullest potential. But don't expect another dry programming guide. Holub manages to make a serious subject refreshingly readable by sprinkling the text with humor and insight.

Real Computing Made Real: Preventing Errors in Scientific and Engineering Calculations


Forman S. Acton - 1995
    Real Computing Made Real offers practical advice on detecting and removing bugs. It also outlines techniques for preserving significant figures, avoiding extraneous solutions, and finding efficient iterative processes for solving nonlinear equations.Those who compute with real numbers (for example, floating-point numbers stored with limited precision) tend to develop techniques that increase the frequency of useful answers. But although there might be ample guidance for those addressing linear problems, little help awaits those negotiating the nonlinear world. This book, geared toward upper-level undergraduates and graduate students, helps rectify that imbalance. Its examples and exercises (with answers) help readers develop problem-formulating skills and assist them in avoiding the common pitfalls that software packages seldom detect. Some experience with standard numerical methods is assumed, but beginners will find this volume a highly practical introduction, particularly in its treatment of often-overlooked topics.

Compiler Design


Reinhard Wilhelm - 1995
    The theory of computer design is covered in depth, but the focus throughout is on tools and implementation techniques which will be of practical use to software developers.

Machine Vision


Ramesh Jain - 1995
    Covering binary vision, segmentation, constraint propagation techniques, camera calibration, and detection of motion, this text provides instruction and theory for developing a functioning machine vision system.

Threads Primer: A Guide to Multithreaded Programming


Bil Lewis - 1995
    It covers the business and technical benefits of threaded programs, along with discussions of third party software that is threaded, pointing out the benefits. It also describes the design of the Solaris MT API, with references to distinctions in POSIX, contains a set of example programs which illustrate the usage of the Solaris and POSIX APIs, and explains the use of programming tools: Thread Analyzer, LockLint, LoopTool and Debugger.

Practical Parallel Programming


Gregory V. Wilson - 1995
    Many scientists are now using them to investigate the grand challenges of science, such as modeling global climate change, determining the masses of elementary particles from first principles, or sequencing the human genome. However, software for parallel computers has developed far more slowly than the hardware. Many incompatible programming systems exist, and many useful programming techniques are not widely known. Practical Parallel Programming provides scientists and engineers with a detailed, informative, and often critical introduction to parallel programming techniques. Following a review of the fundamentals of parallel computer theory and architecture, it describes four of the most popular parallel programming models in use today--data parallelism, shared variables, message passing, and Linda--and shows how each can be used to solve various scientific and numerical problems. Examples, coded in various dialects of Fortran, are drawn from such domains as the solution of partial differential equations, solution of linear equations, the simulation of cellular automata, studies of rock fracturing, and image processing. Practical Parallel Programming will be particularly helpful for scientists and engineers who use high-performance computers to solve numerical problems and do physical simulations but who have little experience of networking or concurrency. The book can also be used by advanced undergraduate and graduate students in computer science in conjunction with material covering parallel architectures and algorithms in more detail. Computer science students will gain a critical appraisal of the current state of the art in parallel programming. Scientific and Engineering Computation series

Temporal Verification of Reactive Systems: Safety


Zohar Manna - 1995
    A reactive system is a system that maintains an ongoing interaction with its environment, as opposed to computing some final value on termination. The family of reactive systems includes many classes of programs whose correct and reliable construction is con- sidered to be particularly challenging, including concurrent programs, embedded and process control programs, and operating systems. Typical examples of such systems are an air traffic control system, programs controlling mechanical devices such as a train, or perpetually ongoing processes such as a nuclear reactor. With the expanding use of computers in safety-critical areas, where failure is potentially disastrous, correctness is crucial. This has led to the introduction of formal verification techniques, which give both users and designers of software and hardware systems greater confidence that the systems they build meet the desired specifications. Framework The approach promoted in this book is based on the use of temporal logic for specifying properties of reactive systems, and develops an extensive verification methodology for proving that a system meets its temporal specification. Reactive programs must be specified in terms of their ongoing behavior, and temporal logic provides an expressive and natural language for specifying this behavior. Our framework for specifying and verifying temporal properties of reactive systems is based on the following four components: 1. A computational model to describe the behavior of reactive systems. The model adopted in this book is that of a Fair Transition System (FTS).

Projects in Scientific Computation


Richard E. Crandall - 1995
    The book is designed for advanced undergraduate or graduate students of science, mathematics and engineering who will deal with scientific computation in their future studies and research. It also contains new and useful reference materials for researchers. The problem sets range from the tutorial to exploratory and, at times, to "the impossible." These projects were collected from research results and computational dilemmas during the author's tenure as Chief Scientist at NeXT Computer, Inc. and from his scientific computation lectures in the Department of Physics at Reed College. The content assumes familiarity with such college topics as calculus, differential equations, and at least elementary programming. Each project focuses on computation, theory, graphics, or some combination of these, and is designed with an estimated level of difficulty. The support code for each project takes the form of either C or Mathematica, and is printing in the Appendix. The algorithms are clearly laid out within the text projects, so the book can be used with other symbolic numerical and algebraic manipulation products.

Interprocess Communications in Unix: The Nooks and Crannies


John Shapley Gray - 1995
    This book zeroes right in on the key techniques of processes and interprocess communication (IPC) - from primitive communications to the complexities of sockets.Loaded with examples and illustrations that clarify each technique, Interprocess Communications in UNIX covers topics like: beginning and ending processes; using fork and exec together; using primitive communications; and working with both named and unnamed pipes. Learn how to create message queues; use remote procedure calls (RPCs); create and access semaphore sets; and create shared memory segments. Once you attain a thorough mastery of interprocess communication methodologies, using POSIX threads you'll learn communications techniques for multithreaded applications. Learn to handle multiple threads in both single and multiple processes. From beginning to end, the book truly leads you through the "nooks and crannies" of UNIX - making you a dramatically more effective programmer. Rave reviews! "I really like this book!!! Concepts that I only vaguely understood now make complete sense to me! The sample code and exercises are so good, they seem to clamp down on the concepts like a vise grip..." S. Lee Henry, Johns Hopkins University.All UNIX system administrators, system programmers and computer science students.

Beyond Programming: To a New Era of Design


Bruce I. Blum - 1995
    To gain fresh insights into how we ought to direct future research, the author begins with a search for first principles. The book begins with an exploration of the scientific foundations of computer technology, then examines design from the perspective of practitioners. The book also offers a critique of the methods employed in software development and an evaluation of an alternate paradigm that has been used successfully for 14 years. The concepts reviewed here comprise a set of core readings for understanding the research and development challenges that will confront computer technology in the 21st century and will be of great interest to computer science researchers and educators, graduate students, and software engineers.

Finite Model Theory


Heinz-Dieter Ebbinghaus - 1995
    Model theory or the theory of models, as it was first named by Tarski in 1954, may be considered as the part of the semantics of formalized languages that is concerned with the interplay between the syntactic structure of an axiom system on the one hand and (algebraic, settheoretic, . . . ) properties of its models on the other hand. As it turned out, first-order language (we mostly speak of first-order logic) became the most prominent language in this respect, the reason being that it obeys some fundamental principles such as the compactness theorem and the completeness theorem. These principles are valuable modeltheoretic tools and, at the same time, reflect the expressive weakness of first-order logic. This weakness is the breeding ground for the freedom which modeltheoretic methods rest upon. By compactness, any first-order axiom system either has only finite models of limited cardinality or has infinite models. The first case is trivial because finitely many finite structures can explicitly be described by a first-order sentence. As model theory usually considers all models of an axiom system, modeltheorists were thus led to the second case, that is, to infinite structures. In fact, classical model theory of first-order logic and its generalizations to stronger languages live in the realm of the infinite."

An Introduction to Symbolic Dynamics and Coding


Douglas A. Lind - 1995
    Although it originated as a method to study general dynamical systems, it has found significant uses in coding for data storage and transmission as well as in linear algebra. This book is the first general textbook on symbolic dynamics and its applications to coding. Mathematical prerequisites are relatively modest (mainly linear algebra at the undergraduate level) especially for the first half of the book. Topics are carefully developed and motivated with many examples, and there are over 500 exercises to test the reader's understanding. The last chapter contains a survey of more advanced topics, and a comprehensive bibliography is included. This book will serve as an introduction to symbolic dynamics for advanced undergraduate students in mathematics, engineering, and computer science.

Problems On Algorithms


Ian Parberry - 1995
    The book focuses on the important areas of algorithm design and analysis: background material; algorithm design techniques; advanced data structures and NP-completeness; and miscellaneous problems. Algorithms are expressed in Pascal-like pseudocode supported by figures, diagrams, hints, solutions, and comments.

Practical Algorithms for Programmers


Andrew Binstock - 1995
    It features: a wide selection of algorithms fully implemented in C with substantial practical discussions of their best use in a variety of applications; and theoretical material presented in an approachable manner with an emphasis of complete and cogent discussion.

Automata and Formal Languages


Dean Kelley - 1995
    It provides a chapter-length review of the prerequisite mathematical preliminaries; begins with an initially low level of mathematics avoiding rigorous demonstrations where possible in favour of precisely stated theorems and definitions, and arguments that are motivational rather than mathematically complete or elegant.