Best of
Programming

1986

Programming Pearls


Jon L. Bentley - 1986
    Jon has done a wonderful job of updating the material. I am very impressed at how fresh the new examples seem." - Steve McConnell, author, Code CompleteWhen programmers list their favorite books, Jon Bentley's collection of programming pearls is commonly included among the classics. Just as natural pearls grow from grains of sand that irritate oysters, programming pearls have grown from real problems that have irritated real programmers. With origins beyond solid engineering, in the realm of insight and creativity, Bentley's pearls offer unique and clever solutions to those nagging problems. Illustrated by programs designed as much for fun as for instruction, the book is filled with lucid and witty descriptions of practical programming techniques and fundamental design principles. It is not at all surprising that Programming Pearls has been so highly valued by programmers at every level of experience. In this revision, the first in 14 years, Bentley has substantially updated his essays to reflect current programming methods and environments. In addition, there are three new essays on (1) testing, debugging, and timing; (2) set representations; and (3) string problems. All the original programs have been rewritten, and an equal amount of new code has been generated. Implementations of all the programs, in C or C++, are now available on the Web.What remains the same in this new edition is Bentley's focus on the hard core of programming problems and his delivery of workable solutions to those problems. Whether you are new to Bentley's classic or are revisiting his work for some fresh insight, this book is sure to make your own list of favorites.

The Design of the UNIX Operating System


Maurice J. Bach - 1986
    The leading selling UNIX internals book on the market.

The C++ Programming Language


Bjarne Stroustrup - 1986
    For this special hardcover edition, two new appendixes on locales and standard library exception safety (also available at www.research.att.com/ bs/) have been added. The result is complete, authoritative coverage of the C++ language, its standard library, and key design techniques. Based on the ANSI/ISO C++ standard, The C++ Programming Language provides current and comprehensive coverage of all C++ language features and standard library components. For example:abstract classes as interfaces class hierarchies for object-oriented programming templates as the basis for type-safe generic software exceptions for regular error handling namespaces for modularity in large-scale software run-time type identification for loosely coupled systems the C subset of C++ for C compatibility and system-level work standard containers and algorithms standard strings, I/O streams, and numerics C compatibility, internationalization, and exception safety Bjarne Stroustrup makes C++ even more accessible to those new to the language, while adding advanced information and techniques that even expert C++ programmers will find invaluable.

Compilers: Principles, Techniques, and Tools


Alfred V. Aho - 1986
    The authors present updated coverage of compilers based on research and techniques that have been developed in the field over the past few years. The book provides a thorough introduction to compiler design and covers topics such as context-free grammars, fine state machines, and syntax-directed translation.

The C Answer Book


Clovis L. Tondo - 1986
    Ideal for use with K&R in any course on C. Careful study of this answer book will help understand ANSI C and enhance programming skills. Tondo & Gimpel describe each solution and completely format programs to show the logical flow.

Programmers at Work: Interviews With 19 Programmers Who Shaped the Computer Industry (Tempus)


Susan Lammers - 1986
    A classic title on the PC revolution originally published in 1986. Featuring Bill Gates, Andy Hertzfeld, Charles Simonyi, Ray Ozzie, Michael Hawley and many more.

Inside Macintosh Overview (Inside Macintosh)


Apple Inc. - 1986
    Numerous examples, warnings, and hints throughout assure that developers can fully utilize these capabilities in their applications.

Advanced C


Herbert Schildt - 1986
    

DOS/VSE ICCF


Steve Eckols - 1986
    This book teaches you how to use ICCF to edit and compile programs, manage and maintain library members, execute jobs and procedures, and more!

Statistics in Language Studies


Anthony Woods - 1986
    The range of work to which statistical analysis is applicable is vast: including, for example, language acquisition, language variation and many aspects of applied linguistics. The authors give a wide variety of linguistic examples to demonstrate the use of statistics in summarising data in the most appropriate way, and then making helpful inferences from the processed information. The range of techniques introduced by the book will help the reader both to evaluate and make use of literature which employs statistical analysis, and to apply statistics in their own research. Each chapter gives step-by-step explanations of particular techniques using examples from a number of fields, and is followed by extensive exercises. The early part of the book provides a thorough grounding in probability and statistical inference, and then progresses through methods such as chi-squared and analysis of variance, to multivariate methods such as cluster analysis, principal components analysis and factor analysis. None of these techniques requires the reader to have a grasp of mathematics more complex than simple algebra. Students and researchers in many fields of linguistics will find this book an invaluable introduction to the use of statistics, and a practical text for the development of skills in the application of statistics.

Abstraction and Specification in Program Development


Barbara Liskov - 1986
    Good programming involves the systematic mastery of complexity, and this book provides the first unified treatment of the techniques of abstraction and specification, which, the authors argue, are the linchpin of any effective approach to programming. They place particular emphasis on the use of data abstraction to produce highly modular programs.The authors focus on the process of decomposing large program projects into independent modules that can be assigned to independent working groups. They discuss methods of decomposition, the kinds of modules that are most useful in this process, and techniques to increase the likelihood that modules produced can in fact be recombined to solve the original programming problem. There are many examples of abstractions throughout the text, and each chapter ends with pertinent references and exercises.Most of the sample implementations in the book are written in CLU, one of a growing number of languages able to support data abstraction. Sufficient material is included, however, to allow the reader to work in Pascal as well.The material in this book was developed by the authors during a decade of teaching undergraduate, graduate, and professional-level courses. Barbara Liskov, the developer of CLU, is Professor and John Guttag an Associate Professor of Computer Science at MIT. "Abstraction and Specification in Program Development" is included in the MIT Electrical Engineering and Computer Science series.

Non-Uniform Random Variate Generation


Luc Devroye - 1986
    Statistleians need random number generators to test and compare estlmators before uslng them ln real l!fe. In operatlons research, random numbers are a key component ln !arge scale slmulatlons. Computer sclen- tlsts need randomness ln program testlng, game playlng and comparlsons of algo- rlthms. The appl!catlons are wlde and varled. Yet all depend upon the same com- puter generated random numbers. Usually, the randomness demanded by an appl!catlon has some bullt-ln structure: typlcally, one needs more than just a sequence of Independent random blts or Independent uniform [0,1] random vari- ables. Some users need random variables wlth unusual densltles, or random com- blnatorlal objects wlth speclftc propertles, or random geometrlc objects, or ran- dom processes wlth weil deftned dependence structures. Thls ls preclsely the sub- ject area of the book, the study of non-uniform random varlates. The plot evolves around the expected complexlty of random varlate genera- tlon algorlthms. We set up an ldeal!zed computatlonal model (wlthout overdolng lt), we lntroduce the notlon of unlformly bounded expected complexlty, and we study upper and lower bounds for computatlonal complexlty.In short, a touch of computer sclence ls added to the fteld. To keep everythlng abstract, no tlmlngs or computer programs are lncluded. Thls was a Iabor of Iove. George Marsagl!a created CS690, a course on ran- dom number generat!on at the School of Computer Sclence of McG!ll Unlverslty.