Write Great Code, Volume 2
It’s a critical lesson that today’s computer science students aren’t always being taught: How to carefully choose their high-level language statements to produce efficient code. Write Great Code, Volume 2: Thinking Low-Level, Writing High-Level shows software engineers what too many college and university courses don’t – how compilers translate high-level language statements and data structures into machine code. Armed with this knowledge, they will make informed choices concerning the use of those high-level structures and help the compiler produce far better machine code – all without having to give up the productivity and portability benefits of using a high-level language.
From the Back Cover
No prior knowledge of assembly language required!
In the beginning, most software was written in assembly, the CPU’s low-level language, in order to achieve acceptable performance on relatively slow hardware. Early programmers were sparing in their use of high-level language code, knowing that a high-level language compiler would generate crummy, low-level machine code for their software. Today, however, many programmers write in high-level languages like C, C++, Pascal, Java, or BASIC. The result is often sloppy, inefficient code. You don’t need to give up the productivity and portability of high-level languages in order to produce more efficient software.
In this second volume of the Write Great Code series, you’ll learn:
- How to analyze the output of a compiler to verify that your code does, indeed, generate good machine code
- The types of machine code statements that compilers typically generate for common control structures, so you can choose the best statements when writing HLL code
- Just enough 80×86 and PowerPC assembly language to read compiler output
- How compilers convert various constant and variable objects into machine data, and how to use these objects to write faster and shorter programs
With an understanding of how compilers work, you’ll be able to write source code that they can translate into elegant machine code. That understanding starts right here, with Write Great Code, Volume 2: Thinking Low-Level, Writing High-Level.
Table of Contents
Chapter 1. Thinking Low-Level, Writing High-Level
Chapter 2. Shouldn’t You Learn Assembly Language?
Chapter 3. 80×86 Assembly for the HLL Programmer
Chapter 4. PowerPC Assembly for the HLL Programmer
Chapter 5. Compiler Operation and Code Generation
Chapter 6. Tools for Analyzing Compiler Output
Chapter 7. Constants and High-Level Languages
Chapter 8. Variables in a High-Level Language
Chapter 9. Array Data Types
Chapter 10. String Data Types
Chapter 11. Pointer Data Types
Chapter 12. Record, Union, and Class Data Types
Chapter 13. Arithmetic and Logical Expressions
Chapter 14. Control Structures and Programmatic Decisions
Chapter 15. Iterative Control Structures
Chapter 16. Functions and Procedures
Appendix. A Brief Comparison of the 80×86 and PowerPC CPU Families
- Paperback: 640 pages
- Publisher: No Starch Press (March 2006)
- Language: English
- ISBN-10: 1593270658
- ISBN-13: 978-1593270650