![]()
Write Great Code: ![]()
Volume 1: Understanding the Machine
Book Review
![]()
By
Dale Farris, Vice PresidentGolden 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 |