Best of
Programming

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

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

Obfuscated C and Other Mysteries


Don Libes - 1992
    Through real-world examples, you're shown how to solve a variety of difficult problems you're likely to face. Hard-to-find essays have been reprinted and included. Chapters cover speeding up strcpy, threads, life with static buffers, implementing software timers, keeping track of malloc, variable-sized arrays, tcl (tool command language), and more.

How To Write Macintosh Software: The Debugging Reference For Macintosh


Scott Knaster - 1992
    It presents comprehensive coverage of key topics every Macintosh programmer must master, including memory management and debugging techniques.

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

Advanced Animation and Rendering Techniques


Alan Watt - 1992
    *A clear account of graphics algorithms in sufficient detail for ease of implementation together with a comprehensive study of the underlying theoretical principles. *Case studies based on work commercially produced for television with code examples in C. *Extensive coverage of advanced animation techniques, particularly soft body animation, articulated structures and a detailed description of scripting techniques. *A colour section in which almost all the images have been produced by the authors using the techniques described in the book.

Practical Ray Tracing in C


Craig A. Lindley - 1992
    The accompanying diskette contains colour ray-traced images and two complete ray training programs, one of which is high speed.

Macintosh C Programming Primer: Inside the Toolbox Using Think C


Dave Mark - 1992
    This is the only book that teaches Macintosh programming at a beginning level.

Mastering Make: A Guide to Building Programs on DOS, OS/2, and UNIX Systems


Clovis L. Tondo - 1992
    Expanded in scope and improved in design, this revision of a bestselling guide to MAKE combines an easy-to-follow, step-by-step tutorial approach to using the MAKE utility on DOS, OS/2, and UNIX systems with concise reference material for both universal concepts and specific uses of the tool.

Fundamentals of Data Strucures in C


Ellis Horowitz - 1992
    The book goes beyond the standard fare of stacks, queues, and lists to offer such features as afull chapter on search structures and a discussion of advanced tree structures. Recent data structure innovations rarelv found in other texts are presented, including Fibonacci Heaps, Splay Trees, Red-Black Trees, 2-3 Trees, 2-3-4 Trees, Leftist Trees, Binokcal Heaps, Min-Max Heaps, and Deaps.

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.

Software Development with Z: A Practical Approach to Formal Methods in Software Engineering


John Wordsworth - 1992
    The book illustrates how familiar procedures and decisions can be made precise using mathematics. Beginning with a case study, this book is designed to be as self-contained as possible, taking the reader through the basic concepts in logic and set theory formulating precise ideas about software systems, and combines a formal approach with practical examples of its use in software development.

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.

The Waite Group's Unix System V Primer


Mitchell Waite - 1992
    Discusses UNIX's electronic mail capabilities, line and screen editors, and programming languages, and includes review questions and exercises for each chapter.

Assembler Inside and Out


Harley Hahn - 1992
    If you're just beginning to program in assembly language, this is a nuts-and-bolts guide to getting started that will quickly teach you how to construct, process, and run your own programs. If you already know ALP, you'll learn about the more complex concepts.

X Window Applications Programming


Eric Foster-Johnson - 1992
    It teaches you how to easilyand painlessly start programming in X.

Software Specification and Design: A Disciplined Approach for Real-Time Systems


Ken Shumate - 1992
    Focusing on the specification to design transition, it provides step-by-step rules, guidelines, heuristics, hints and tips. A large case study is used to illustrate key aspects of project development. Along with a variety of analysis and design methods for both sequential and concurrent systems, it also offers detailed coverage of the transitional phase.

Memory (Inside Macintosh)


Apple Inc. - 1992
    This describes the structure of Macintosh memory and shows programmers how to make the most out of managing memory.

Class Construction In C And C++: Object Oriented Programming Fundamentals


Roger Sessions - 1992
    In this book, specifically designed for C programmers interested in learning about C++, Sessions gives an introduction to the paradigm of object-oriented programming and the concept of developing classes. Developing classes in C++, developing them well, and learning to use them as building blocks for complex applications is the focus of this book. Sessions teaches object-oriented programming before C++, discusses the object-oriented subset of C++ (OOS/C++) and looks at this subset in detail.

NeXTSTEP Programming: Step One: Object-Oriented Applications


Simson Garfinkel - 1992
    It is a no-nonsense, hands-on book that teaches programmers how to write application programs that take full advantage of NeXTSTEP. The diskette contains complete source code and a tutorial for Interface Builder. 3.5 DOS diskette.

Synchronous Programming of Reactive Systems


Nicolas Halbwachs - 1992
    The term "reactive system" has been introduced in order to at'oid the ambiguities often associated with by the term "real-time system," which, although best known and more sugges- tive, has been given so many different meanings that it is almost in- evitably misunderstood. Industrial process control systems, transporta- tion control and supervision systems, signal-processing systems, are ex- amples of the systems we have in mind. Although these systems are more and more computerized, it is sur- prising to notice that the problem of time in computer science has been studied only recently by "pure" computer scientists. Until the early 1980s, time problems were regarded as the concern of performance evalu- ation, or of some (unjustly scorned) "industrial computer engineering," or, at best, of operating systems. A second surprising fact, in contrast, is the growth of research con- cerning timed systems during the last decade. The handling of time has suddenly become a fundamental goal for most models of concurrency. In particular, Robin Alilner 's pioneering works about synchronous process algebras gave rise to a school of thought adopting the following abstract point of view: As soon as one admits that a system can instantaneously react to events, i. e.

Mazes for the Mind: Computers and the Unexpected


Clifford A. Pickford - 1992
    "Pickover's dazzling array of tortuous mind-benders and arcane minutiae delights and surprises. It's easy to get trapped in his enticing labyrinth of seductive mind games".--Science News.