Icon Write Great Code: Icon
Volume 1: Understanding the Machine
Book Review

By Dale Farris, Vice President
Golden Triangle PC Club
October 2004

General Overview

The first in a planned 4-part series from assembly language expert Randall Hyde, "Write Great Code: Vol I" teaches the important concepts of machine organization in a language-independent fashion, and without the extra overhead of having to learn assembly language. The principles in this book with help you make wise choices with respect to programming statements and data types when writing software, no matter which language you use.

If you've asked someone the secret to writing efficient, well-written software, the answer that you've probably gotten is "learn assembly language programming." By learning assembly language programming, you learn how the machine really operates and that knowledge will help you write better high-level language code. A dirty little secret assembly language programmers rarely admit to, however, is that what you really need to learn is machine organization, not assembly language programming.

"Write Great Code: Vol I," the first in a series from assembly language expert Randall Hyde, dives right into machine organization without the extra overhead of learning assembly language programming at the same time. Also, since "Write Great Code: Vol I" concentrates on the machine organization, not assembly language, the reader will learn in greater depth those subjects that are language-independent and of concern to a high level language programmer.

"Write Great Code: Vol I: will help programmers make wiser choices with respect to programming statements and data types when writing software, no matter which language they use. The book will teach you how to write code that will satisfy customers and prove popular with users, and code that customers will not mind paying top dollar to obtain. In general, the volumes in the "Write Great Code" series will discuss how to write software that achieves legendary status, eliciting the awe of other programmers.

4-Part Planned Series

The planned "Write Great Code" series includes, in addition to this first volume, the following 3 titles:

Write Great Code: Volume 2: Thinking Low-Level, Writing High-Level

Write Great Code: Volume 3: Engineering Software

Write Great Code: Volume 4: Testing, Debugging, and Quality Assurance

Special Features

This first volume in Randall Hyde's "Write Great Code" series delves into machine organization without the extra overhead of learning assembly language programming. Written for C/C++, VB, Pascal, Java, and other high-level language programmers, Volume 1: Understanding the Machine fills in the low-level details of machine organization that are often left out of computer science and engineering courses.

You will learn:

How the machine represents numbers, strings, and high-level data structures, so you will know the inherent cost of using them

How to organize your data, so the machine can access it efficiently

How the CPU operates, so you can write code that works the way the machine does

How I/O devices operate, so you can maximize your application's performance when accessing those devices

How to best use the memory hierarchy to produce the fastest possible programs

Table of Contents

The twelve (12) chapters include the following:

Chapter 1:   What You Need to Know to Write Great Code
Chapter 2:   Numeric Representation
Chapter 3:   Binary Arithmetic and Bit Operations
Chapter 4:   Floating Point Representation
Chapter 5:   Character Representation
Chapter 6:   Memory Organization and Access
Chapter 7:   Composite Data Types and Memory Objects
Chapter 8:   Boolean Logic and Digital Design
Chapter 9:   CPU Architecture
Chapter 10: Instruction Set Architecture
Chapter 11: Memory Architecture and Organization
Chapter 12: Input and Output (I/O) Thinking

The book also includes an appendix:

Appendix A:  ASCII Character Set

Target Readers

For the purposes of this book, you should be reasonably competent in at least one imperative (procedural) programming language. This includes C and C++, Pascal, BASIC, and assembly, as well as languages like Ada, Modula-2, FORTRAN, and the like. You should be capable, on your own, of taking a small problem description and working through the design and implementation of a software solution for that problem. A typical semester or quarter course at a college or university (or several months experience on your own) should be sufficient background for this book.

At the same time, the book is not language specific; its concepts transcend whatever programming language(s) you are using. To help make the examples more accessible to readers, the programming examples in the book will rotate among several languages (such as C/C++, Pascal, BASIC, and assembly). Furthermore, the book does not assume that you use or know any particular language. When presenting examples, the book explains exactly how the code operates so that even if you are unfamiliar with the specific programming language, you will be able to understand its operation by reading the accompanying description.

The book uses the following languages and compilers in various examples:

C/C++:  GCC, Microsoft's Visual C++, Borland C++

Pascal:  Borland's Delphi/Kylix

Assembly Language:  Microsoft's MASM, HLA (the High Level Assembler), Gas (on the PowerPC)

BASIC:  Microsoft's Visual Basic

You do not need to know all these languages or have all these compilers to read and understand the examples in the book. Often, the examples appear in multiple languages, so it's usually safe to ignore a specific example if you do not completely understand the syntax of the language the example uses.

Book Contents

464 pages; acknowledgements; figures; tons of exemplary code; appendix; detailed index

Author

Randall Hyde

About the Author

Randall Hyde is the author of the recently released "Write Great Code" and "The Art of Assembly Language" (both from No Starch Press), one of the most highly recommended resources on assembly. He is also the coauthor of "The Waite Group's MASM 6.0 Bible." He has written for Dr. Dobb's Journal, Byte, as well as professional journals.


ISBN

November 2004 - First Edition
1-59327-003-8

List Price


$39.95
$55.95 CAN

About No Starch Press

Since 1994, No Starch Press has published unique books on computing, including such best-sellers as the "Steal This Computer Book" series, "Hacking the Xbox," and "Absolute OpenBSD." Named one of the Top 101 Independent Publishers in 2003, No Starch Press focuses on Open Source, security, hacking, web development, programming, gaming, and alternative operating systems. The No Starch Press titles have personality, their authors are passionate, and their goal is to make computing accessible to everyone.

Publisher Contact

No Starch Press
555 De Haro St., Suite 250
San Francisco, CA 94107
800-420-7240
415-863-9900
FAX 415-863-9950
www.nostarch.com