Best of
Programming

1993

Code Complete


Steve McConnell - 1993
    Now this classic book has been fully updated and revised with leading-edge practices--and hundreds of new code samples--illustrating the art and science of software construction. Capturing the body of knowledge available from research, academia, and everyday commercial practice, McConnell synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance. No matter what your experience level, development environment, or project size, this book will inform and stimulate your thinking--and help you build the highest quality code. Discover the timeless techniques and strategies that help you: Design for minimum complexity and maximum creativity Reap the benefits of collaborative development Apply defensive programming techniques to reduce and flush out errors Exploit opportunities to refactor--or evolve--code, and do it safely Use construction practices that are right-weight for your project Debug problems quickly and effectively Resolve critical construction issues early and correctly Build quality into the beginning, middle, and end of your project

The Protocols (TCP/IP Illustrated, Volume 1)


W. Richard Stevens - 1993
    In eight chapters, it provides the most thorough coverage of TCP available. It also covers the newest TCP/IP features, including multicasting, path MTU discovery and long fat pipes. The author describes various protocols, including ARP, ICMP and UDP. He utilizes network diagnostic tools to actually show the protocols in action. He also explains how to avoid silly window syndrome (SWS) by using numerous helpful diagrams. This book gives you a broader understanding of concepts like connection establishment, timeout, retransmission and fragmentation. It is ideal for anyone wanting to gain a greater understanding of how the TCP/IP protocols work.

Applied Cryptography: Protocols, Algorithms, and Source Code in C


Bruce Schneier - 1993
    … The book the National Security Agency wanted never to be published." –Wired Magazine "…monumental… fascinating… comprehensive… the definitive work on cryptography for computer programmers…" –Dr. Dobb's Journal"…easily ranks as one of the most authoritative in its field." —PC Magazine"…the bible of code hackers." –The Millennium Whole Earth CatalogThis new edition of the cryptography classic provides you with a comprehensive survey of modern cryptography. The book details how programmers and electronic communications professionals can use cryptography—the technique of enciphering and deciphering messages-to maintain the privacy of computer data. It describes dozens of cryptography algorithms, gives practical advice on how to implement them into cryptographic software, and shows how they can be used to solve security problems. Covering the latest developments in practical cryptographic techniques, this new edition shows programmers who design computer applications, networks, and storage systems how they can build security into their software and systems. What's new in the Second Edition? * New information on the Clipper Chip, including ways to defeat the key escrow mechanism * New encryption algorithms, including algorithms from the former Soviet Union and South Africa, and the RC4 stream cipher * The latest protocols for digital signatures, authentication, secure elections, digital cash, and more * More detailed information on key management and cryptographic implementations

On LISP: Advanced Techniques for Common LISP


Paul Graham - 1993
    On Lisp explains the reasons behind Lisp's growing popularity as a mainstream programming language. On Lisp is a comprehensive study of advanced Lisp techniques, with bottom-up programming as the unifying theme. It gives the first complete description of macros and macro applications. The book also covers important subjects related to bottom-up programming, including functional programming, rapid prototyping, interactive development, and embedded languages. The final chapter takes a deeper look at object-oriented programming than previous Lisp books, showing the step-by-step construction of a working model of the Common Lisp Object System (CLOS). As well as an indispensable reference, On Lisp is a source of software. Its examples form a library of functions and macros that readers will be able to use in their own Lisp programs.

UNIX Power Tools


Jerry Peek - 1993
    It also covers add-on utilities and how to take advantage of clever features in the most popular UNIX utilities.Loaded with even more practical advice about almost every aspect of UNIX, this edition addresses the technology that UNIX users face today, differing from the first edition in a number of important ways.First, it slants the blend of options and commands more toward the POSIX utilities, including the GNU versions; the bash and tcsh shells have greater coverage, but we've kept the first edition's emphasis on the core concepts of sh and csh that will help you use all UNIX shells; and, Perl is more important than awk these days, so we've de-emphasized awk in this edition.This is a browser's book...like a magazine that you don't read from start to finish, but leaf through repeatedly until you realize that you've read it all. The book is structured so that it bursts at the seams with cross references. Interesting "sidebars" explore syntax or point out other directions for exploration, including relevant technical details that might not be immediately apparent. You'll find articles abstracted from other O'Reilly books, new information that highlights program "tricks" and "gotchas," tips posted to the Net over the years, and other accumulated wisdom.The 53 chapters in this book discuss topics like file management, text editors, shell programming -- even office automation. Overall, there's plenty of material here to satisfy even the most voracious appetites. The bottom line? UNIX Power Tools is loaded with practical advice about almost every aspect of UNIX. It will help you think creatively about UNIX, and will help you get to the point where you can analyze your own problems. Your own solutions won't be far behind.The CD-ROM includes all of the scripts and aliases from the book, plus perl, GNU emacs, netpbm (graphics manipulation utilities), ispell,screen, the sc spreadsheet, and about 60 other freeware programs. In addition to the source code, all the software is precompiled for Sun4, Digital UNIX, IBM AIX, HP/UX, Red Hat Linux, Solaris, and SCO UNIX.

Writing Solid Code


Steve Maguire - 1993
    Focus is on an in-depth analysis and exposition of not-so-obvious coding errors in the sample code provided. The theme is to answer the questions 'How couild I have automatically detected this bug' and 'How could I have prevented this bug'? Chapters include programmer attitudes, techniques and debugging methodology. A particularly revealing chapter is "Treacheries of the Trade", should be required reading for all C maniacs. The author has been a professional programmer for seventeen years and draws heavily (and candidly) on actual coding problems and practices based on years of experience at Microsoft.

Programming with Posix Threads


David R. Butenhof - 1993
    The primary advantage of threaded programming is that it enables your applications to accomplish more than one task at the same time by using the number-crunching power of multiprocessor parallelism and by automatically exploiting I/O concurrency in your code, even on a single processor machine. The result: applications that are faster, more responsive to users, and often easier to maintain. Threaded programming is particularly well suited to network programming where it helps alleviate the bottleneck of slow network I/O. This book offers an in-depth description of the IEEE operating system interface standard, POSIXAE (Portable Operating System Interface) threads, commonly called Pthreads. Written for experienced C programmers, but assuming no previous knowledge of threads, the book explains basic concepts such as asynchronous programming, the lifecycle of a thread, and synchronization. You then move to more advanced topics such as attributes objects, thread-specific data, and realtime scheduling. An entire chapter is devoted to real code, with a look at barriers, read/write locks, the work queue manager, and how to utilize existing libraries. In addition, the book tackles one of the thorniest problems faced by thread programmers-debugging-with valuable suggestions on how to avoid code errors and performance problems from the outset. Numerous annotated examples are used to illustrate real-world concepts. A Pthreads mini-reference and a look at future standardization are also included.

Art of Computer Designing


Osamu Satō - 1993
    Many graphic images are hidden inside it. This book is a beginner's introduction to calling forth these images as author Sato shows how to create figures with basic shapes - i.e., lines, arcs, squares and circles - and does so simply, clearly, and above all very logically. This is an everyday guide to computer illustrating, a collection of design ideas and a compendium of Mr. Sato's own computer art works. All the shapes in this book are black and white, but it is a black and white world full of potential. Just looking at the myriad manifestations of form is a joy, but for those who will use it to begin creating their own shapes this book offers far, far greater pleasure.

The Cache Memory Book (The Morgan Kaufmann Series in Computer Architecture and Design)


Jim Handy - 1993
    The book teaches the basic cache concepts and more exotic techniques. It leads readers through someof the most intricate protocols used in complex multiprocessor caches. Written in an accessible, informal style, this text demystifies cache memory design by translating cache concepts and jargon into practical methodologies and real-life examples. It also provides adequate detail to serve as a reference book for ongoing work in cache memory design.The Second Edition includes an updated and expanded glossary of cache memory terms and buzzwords. The book provides new real world applications of cache memory design and a new chapter on cache"tricks." Key Features* Illustrates detailed example designs of caches* Provides numerous examples in the form of block diagrams, timing waveforms, state tables, and code traces* Defines and discusses more than 240 cache specific buzzwords, comparing in detail the relative merits of different design methodologies* Includes an extensive glossary, complete with clear definitions, synonyms, and references to the appropriate text discussions

Building Problem Solvers


Kenneth D. Forbus - 1993
    In some cases they are the inventors of the ideas or techniques described, and in others, participants in their development."Building Problem Solvers" communicates this knowledge in a focused, cohesive manner. It is unique among standard artificial intelligence texts in combining science and engineering, theory and craft to describe the construction of AI reasoning systems, and it includes code illustrating the ideas.After working through "Building Problem Solvers," readers should have a deep understanding of pattern directed inference systems, constraint languages, and truth maintenance systems. The diligent reader will have worked through several substantial examples, including systems that perform symbolic algebra, natural deduction, resolution, qualitative reasoning, planning, diagnosis, scene analysis, and temporal reasoning.

Flights of Fantasy: Programming 3D Video Games in


Christopher F. Lampton - 1993
    Using Borland C++ compiler and BASM assembler as a programming platform, this is for intermediate level programmers interested in producing 3-D games.

Object Oriented Programming In Oberon 2


Hanspeter Mössenböck - 1993
    Its fundamentals are data abstraction, inheritance and dynamic binding. But it is not enough to understand these concepts; one must also learn how to make good use of them. This book covers the basic concepts of OOP, shows typical application patterns, gives useful design hints, and finally presents the design and implementation of an object-oriented window system with an integrated text and graphics editor. The language used throughout this book is Oberon-2, a clean and type-safe language designed at ETH Zurich. However, the emphasis of the book is not on the language but on the concepts of OOP. They can easily be transferred to any other object-oriented language. The book is aimed at students of computer science as well as at practitioners who want to gain a perspective on modern software development techniques.

Concurrent Programming ERLANG


Joe Armstrong - 1993
    The language is untyped and has a pattern matching syntax. Functions are written as a set of recursion equations and the language has explicit concurrency and asynchronous message passing. Written in a tutorial style, this book emphasizes learning through example, illustrating a number of problems in designing and programming concurrent fault-tolerant real-time systems. This edition features new chapters on distributed programming, distributed programming techniques and distributed data.

Expert Systems: Principles And Programming


Joseph Giarratano - 1993
    The book covers the construction of expert systems using rule-based programming methodologies.

SPARC Architecture Manual Version9


SPARC INTERNATIONAL - 1993
     Describes the architecture and instruction set of the 64-bit SPARC-V9 -- a RISC-style processor architecture that supports a linear address space accessed by 64-bit addresses, fault-tolerance, object-oriented software, lightweight threads, and superscalar and multiprocessor implementations. MARKETS: For implementors of the SPARC architecture, microprocessor designers, hardware engineers, developers of SPARC-V9 system software, software engineers who write SPARC-V9 software in assembly language; and for students of computer architecture.

Hacker's Guide to Word for Windows with Disk


Woody Leonhard - 1993
    Practically every page contains previously undocumented information about Word for Windows, plus bugs, gaffes, gotchas, and workarounds. The disk includes an invaluable collections of Word for Windows utilities.

Programming Under Mach


Joseph Boykin - 1993
    It shows applications writers and programmers how to create programs with multiple threads of control and make use of advanced interprocess communication mechanisms in a multi-processor environment. In addition the book illustrates, with complete example programs, how to fully exploit the functionality Mach provides. This book describes the differences between Mach and UNIX 4.3 BSD and OSF/1, two popular operating systems which share a common heritage with Mach.

Introduction to SQL


Rick F. van der Lans - 1993
    The disk contains the database example described within the book and a brief version of Quadbase-SQL. Readers will benefit from working with a "real" SQL product and by building their own database with addresses.

The Joy of X: Overview of the X Window System


Niall Mansfield - 1993
    This guide provides an introduction to the X Window System, the de facto standard windowing system for workstations, minicomputers, mainframes and supercomputers running UNIX, VMS and other operating systems.

C Pointers And Dynamic Memory Management


Michael C. Daconta - 1993
    This book guides programmers to the highest level of programming effectiveness--a complete mastery of pointers. The author provides plenty of examples that programmers can load into their computers, run, and then see the results. Each chapter closes with exercises.