Best of
Computer-Science

1992

Advanced Programming in the UNIX Environment


W. Richard Stevens - 1992
    Rich Stevens describes more than 200 system calls and functions; since he believes the best way to learn code is to read code, a brief example accompanies each description.Building upon information presented in the first 15 chapters, the author offers chapter-long examples teaching you how to create a database library, a PostScript printer driver, a modem dialer, and a program that runs other programs under a pseudo terminal. To make your analysis and understanding of this code even easier, and to allow you to modify it, all of the code in the book is available via UUNET.A 20-page appendix provides detailed function prototypes for all the UNIX, POSIX, and ANSI C functions that are described in the book, and lists the page on which each prototype function is described in detail. Additional tables throughout the text and a thorough index make Advanced Programming in the UNIX Environment an invaluable reference tool that all UNIX programmers - beginners to experts - w

Modern Operating Systems


Andrew S. Tanenbaum - 1992
    What makes an operating system modern? According to author Andrew Tanenbaum, it is the awareness of high-demand computer applications--primarily in the areas of multimedia, parallel and distributed computing, and security. The development of faster and more advanced hardware has driven progress in software, including enhancements to the operating system. It is one thing to run an old operating system on current hardware, and another to effectively leverage current hardware to best serve modern software applications. If you don't believe it, install Windows 3.0 on a modern PC and try surfing the Internet or burning a CD. Readers familiar with Tanenbaum's previous text, Operating Systems, know the author is a great proponent of simple design and hands-on experimentation. His earlier book came bundled with the source code for an operating system called Minux, a simple variant of Unix and the platform used by Linus Torvalds to develop Linux. Although this book does not come with any source code, he illustrates many of his points with code fragments (C, usually with Unix system calls). The first half of Modern Operating Systems focuses on traditional operating systems concepts: processes, deadlocks, memory management, I/O, and file systems. There is nothing groundbreaking in these early chapters, but all topics are well covered, each including sections on current research and a set of student problems. It is enlightening to read Tanenbaum's explanations of the design decisions made by past operating systems gurus, including his view that additional research on the problem of deadlocks is impractical except for "keeping otherwise unemployed graph theorists off the streets." It is the second half of the book that differentiates itself from older operating systems texts. Here, each chapter describes an element of what constitutes a modern operating system--awareness of multimedia applications, multiple processors, computer networks, and a high level of security. The chapter on multimedia functionality focuses on such features as handling massive files and providing video-on-demand. Included in the discussion on multiprocessor platforms are clustered computers and distributed computing. Finally, the importance of security is discussed--a lively enumeration of the scores of ways operating systems can be vulnerable to attack, from password security to computer viruses and Internet worms. Included at the end of the book are case studies of two popular operating systems: Unix/Linux and Windows 2000. There is a bias toward the Unix/Linux approach, not surprising given the author's experience and academic bent, but this bias does not detract from Tanenbaum's analysis. Both operating systems are dissected, describing how each implements processes, file systems, memory management, and other operating system fundamentals. Tanenbaum's mantra is simple, accessible operating system design. Given that modern operating systems have extensive features, he is forced to reconcile physical size with simplicity. Toward this end, he makes frequent references to the Frederick Brooks classic The Mythical Man-Month for wisdom on managing large, complex software development projects. He finds both Windows 2000 and Unix/Linux guilty of being too complicated--with a particular skewering of Windows 2000 and its "mammoth Win32 API." A primary culprit is the attempt to make operating systems more "user-friendly," which Tanenbaum views as an excuse for bloated code. The solution is to have smart people, the smallest possible team, and well-defined interactions between various operating systems components. Future operating system design will benefit if the advice in this book is taken to heart. --Pete Ostenson

Assembly Language: Step-By-Step


Jeff Duntemann - 1992
    It then builds systematically to cover all the steps involved in writing, testing, and debugging assembly programs. It also provides valuable how-to information on using procedures and macros. The only guide to assembly programming covering both DOS and Linux, the book presents working example programs for both operating system, and introduces Conditional Assembly -- a technique for assembling for both DOS and Linux systems from a single source file.

Asssembly Language Programming and Organization IBM PC


Ytha Yu - 1992
    Includes coverage of I/O control, video/graphics control, text display, and OS/2. Strong pedagogy with numerous sample programs illust

Advanced Computer Architecture: Parallelism, Scalability, Programmability


Kai Hwang - 1992
    It deals with advanced computer architecture and parallel processing systems and techniques, providing an integrated study of computer hardware and software systems, and the material is suitable for use on courses found in computer science, computer engineering, or electrical engineering departments.

Transaction Processing: Concepts and Techniques


Jim Gray - 1992
    This book will show you how large, distributed, heterogeneous computer systems can be made to work reliably.Using transactions as a unifying conceptual framework, the authors show howto build high-performance distributed systems and high-availabilityapplications with finite budgets and risk.The authors provide detailed explanations of why various problems occur aswell as practical, usable techniques for their solution. Throughout the book, examples and techniques are drawn from the most successful commercial andresearch systems. Extensive use of compilable C code fragments demonstratesthe many transaction processing algorithms presented in the book. The bookwill be valuable to anyone interested in implementing distributed systemsor client/server architectures.

Genetic Programming: On the Programming of Computers by Means of Natural Selection


John R. Koza - 1992
    Genetic programming may be more powerful than neural networks and other machine learning techniques, able to solve problems in a wider range of disciplines. In this ground-breaking book, John Koza shows how this remarkable paradigm works and provides substantial empirical evidence that solutions to a great variety of problems from many different fields can be found by genetically breeding populations of computer programs. Genetic Programming contains a great many worked examples and includes a sample computer code that will allow readers to run their own programs.In getting computers to solve problems without being explicitly programmed, Koza stresses two points: that seemingly different problems from a variety of fields can be reformulated as problems of program induction, and that the recently developed genetic programming paradigm provides a way to search the space of possible computer programs for a highly fit individual computer program to solve the problems of program induction. Good programs are found by evolving them in a computer against a fitness measure instead of by sitting down and writing them.

Project Oberon: The Design of an Operating System and Compilers


Niklaus Wirth - 1992
    The primary goal of the project was to design and implement a system from scratch and to structure it in such a way that it could be described, explained, and unders

Macintosh Human Interface Guidelines


Apple Inc. - 1992
    The Apple Technical Library provides Macintosh developers with the official treatment of all the major new technologies that Apple releases. Timely, accurate, and clear, this collection of books is the essential resource for anyone developing software for the Macintosh. You'll find definitive coverage of the newest and most important technologies, such as QuickDraw 3D and Apple Guide. You'll also find the classic cornerstones of Macintosh development, like Macintosh Human Interface Guidelines, MacsBug Reference and Debugging Guide, and Planning and Managing AppleTalk Networks. Care has been taken to provide the information using the most appropriate medium. From the multimedia presentations of Electronic Guide to Macintosh Human Interface Design to the electronic reference included with Advanced Color Imaging on the Mac OS, the material is presented in the way that allows you to access it most effectively. 0201622165B04062001

A Manager's Guide to Software Engineering


Roger S. Pressman - 1992
    Using a unique question-and-answer format coupled with pragmatic advice, readers will find solutions to more than 450 commonly-used questions and problems covering technology transitions, the software development lifecycle, methods for estimating project costs and effort, risk analysis, project scheduling, quality assurance, software configuration management, and recent technological breakthroughs.

Reinforcement Learning


Richard S. Sutton - 1992
    The learner is not told which action to take, as in most forms of machine learning, but instead must discover which actions yield the highest reward by trying them. In the most interesting and challenging cases, actions may affect not only the immediate reward, but also the next situation, and through that all subsequent rewards. These two characteristics -- trial-and-error search and delayed reward -- are the most important distinguishing features of reinforcement learning. Reinforcement learning is both a new and a very old topic in AI. The term appears to have been coined by Minsk (1961), and independently in control theory by Walz and Fu (1965). The earliest machine learning research now viewed as directly relevant was Samuel's (1959) checker player, which used temporal-difference learning to manage delayed reward much as it is used today. Of course learning and reinforcement have been studied in psychology for almost a century, and that work has had a very strong impact on the AI/engineering work. One could in fact consider all of reinforcement learning to be simply the reverse engineering of certain psychological learning processes (e.g. operant conditioning and secondary reinforcement). Reinforcement Learning is an edited volume of original research, comprising seven invited contributions by leading researchers.

Inside Macintosh


Apple Inc. - 1992
    Apple and A-W make this documentation available to you in a variety of formats: Individual bound books (paper! how novel!) Electronic full text in DocViewer format: Inside Mac CD-ROM Electronic quick reference: Macintosh Programmers Toolbox Assistant The complete list of 27 titles is pretty daunting, but take heart. You can think of Inside Mac topics in two groups: those that are common to all Macs, and those that are specific to your application. The core technology topics: The Macintosh Toolbox Interapplication Communication Text Imaging with QuickDraw Memory, Processes, Files, Operating System Utilities, Devices Specialized technology topics: QuickTime PowerPC System Software, PowerPC Numerics Sound Networking AOCE QuickDraw GX

Axiom: The Scientific Computation System


Richard D. Jenks - 1992
    Symbolic computation systems have revolutionized the field, building upon established and recent mathematical theory to open new possibilities in virtually every industry. Formerly dubbed Scratchpad, AXIOM is a powerful new symbolic and numerical system developed at the IBM Thomas J. Watson Research Center. AXIOM's scope, structure, and organization make it outstanding among computer algebra systems. AXIOM: The Scientific Computation System is a companion to the AXIOM system. The text is written in a straightforward style and begins with a spirited foreword by David and Gregory Chudnovsky. The book gives the reader a technical introduction to AXIOM, interacts with the system's tutorial, accesses algorithms newly developed by the symbolic computation community, and presents advanced programming and problem solving techniques. Eighty illustrations and eight pages of color inserts accompany text detailing methods used in the 2D and 3D interactive graphics system, and over 2500 example input lines help the reader solve formerly intractable problems.

Exploring the Internet: A Technical Travelogue


Carl Malamud - 1992
    Aimed at readers interested in computers and computer communications, this text examines the emerging global network, describing efforts to build national infrastructures, key research projects, and the people behind them.

Local and Metropolitan Area Networks


William Stallings - 1992
    Includes the full treatment of competing approaches of LAN and MAN technologies Details high-speed LANs: Gigabit Ethernet, 100-Mbps token ring, Fibre Channel, and ATM LANs Covers complete treatment of standards: IEEE 802 and ANSI standards, specifications from the ATM forum and the Fibre Channel Association, plus TCP/IP Presents structured cabling systems and cabling types Companion Web site at provides links to important sites, course support for instructors, as well as a link to the Computer Science Student Support Site maintained by the author

Assembly Language for the IBM PC Family


William B. Jones - 1992
    It was developed so that the order and presentation of material is determined by pedagogical necessity. Important but difficult concepts are delayed until the reader has a sound grasp of the fundamentals and these more advanced concepts are actually needed. Constant and exhaustive reinforcement ensures that readers thoroughly understand the concepts presented. The author's extensive set of exercises, with answers, tests the student's grasp of what is happening in the machine on a nuts and bolts level.

Introduction to computer system performance evaluation


Krishna Kant - 1992
    This text explores some of the latest performance modeling and analysis techniques which computer architects and systems analysts need to evaluate new and existing computer systems.

Master C++: Let the PC Teach You Object-Oriented Programming, with Disk


Rex Woollard - 1992
    Includes everything necessary to write OOP programs. Software is included on three 5.25 disks.

Axioms And Hulls


Donald Ervin Knuth - 1992
    Book by Knuth, Donald E.

Mathematical Methods and Theory in Games, Programming, and Economics


Samuel Karlin - 1992
    Synthesis of concepts of game and programming theory, mathematical economics in a single systematic theory. Throughout, the presentation of each subject is self-contained and completely rigorous, but every effort has been made to bring out the conceptual depth and formal elegance of the overall theory. Advanced undergraduate level. Problems with solutions.

Concurrent Programming


C.R. Snow - 1992
    The book builds on the reader's familiarity with sequential programming in a high-level language. It is concerned mainly with the high-level aspects of concurrency, which will be equally applicable to traditional time-sliced or more recent truly parallel systems. Topics covered include: processes and inter-process communication, shared data and message passing constructs, languages for concurrency, and the implementation of concurrent kernel.

Introductory C: Pointers, Functions, and Files


Richard Petersen - 1992
    For those learning C, pointers are the greatest source of confusion. The primary aim of this book is to provide working models of how pointers are used in C. Pointers are used differently with every programming feature and this text emphasizes how each new programming feature relates to the use of pointers to provide a thorough understanding of the applications throughout C.

Philosophy & Artificial Intelligence


Todd C. Moody - 1992
    The book focuses on the philosphical, rather than the technical or technological aspects of artificial intelligence.

Information Engineering: Strategic Systems Development


Clive Finkelstein - 1992
    

Categories and Computer Science


R.F.C. Walters - 1992
    Here, the theory is developed in a straightforward way, and is enriched with many examples from computer science.

Understanding DCE


Ward Rosenberry - 1992
    Unlike many O'Reilly & Associates books, Understanding DCE has no hands-on programming elements. Instead, the book focuses on how DCE can be used to accomplish typical programming tasks and provides explanations to help the reader understand all the parts of DCE.Contents include:Purpose and goals of the Distributed Computing Environment. Definition of a cell. Distributing applications using RPC. Improving program performance using threads. Protecting resources using the security service. Locating network resources using the directory (name) service. Synchronizing network time using the time service. Sharing and replicating files through the distributed file system. Design and implementation considerations in writing distributed applications. Getting started as a DCE administrator. Determining your cell's boundaries. Initial choices in configuration and administrative responsibilities. Scenarios for security policies. Considerations for breaking up or replicating services across multiple hosts. Sample DCE application. Answers to commonly asked DCE questions. Finding an external time provider. Registering a cell's DNS or X.500 address.