Best of
Software

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

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.

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.

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.

Latex for Everyone


Jane Hahn - 1993
    Full of easy-to-understand examples, this book is a complete reference guide and tutorial for typesetting documents using Latex software. It covers matters of style; typesetting mathematics; customization; preparing large documents; more.

Object-Oriented Programming: The CLOS Perspective


Andreas Paepcke - 1993
    This collection takes a different approach, examining one object-oriented programming language - the Common-Lisp Object System (CLOS) - as a modern programming tool. The fourteen contributions examine CLOS from a variety of angles, revealing the thoughts behind the design of the language, its intended use, its impact on object-oriented design and programming, and its place in the context of other object-oriented programming languages.Chapter 1 provides enough detail about the language for the remaining material to be understood by readers unfamiliar with CLOS, and it concentrates on the unusual aspects of the language. CLOS is placed into historical perspective in Chapter 2, which describes the sources and evolution of ideas embodied in the language. Further chapters discuss the metaobject protocol, compare CLOS with other object-oriented languages, and discuss applications of the language and aspects of its implementation.

Introduction to Computer Law


David I. Bainbridge - 1993
    In this fifth edition, the law within the key areas of intellectual property rights, contract, tort, criminal law and data protection has been comprehensively updated, expanded and rewritten to reflect technological change, new decisions and new European and UK legislation. The emphasis is on describing and examining the law in the context of the practicalities of computer use." Introduction to Computer Law is suitable for undergraduate and professional students taking modules in the subject, and will also be invaluable to managers, computer professionals and legal practitioners.

Software Design Methods for Concurrent and Real-Time Systems


Hassan Gomaa - 1993
    Drawing on his experience in industry, the author takes two related object-oriented methods - ADARTS and CODARTS - and shows in detail how they can be applied.

Local Area Networks


David A. Stamper - 1993
    It uses two network operating systems to illustrate how these concepts are implemented, and is ideal for LAN end-users, administrators, and managers.

Illustrated Computer Dictionary for Dummies


Dan Gookin - 1993
    Word (and nerd) history also included.