The second volume in the Write Great Code series supplies the critical information that today's computer science students don't often get from college and university courses: How to carefully choose their high-level language statements to produce efficient code.Write Great Code, Volume 2: Thinking Low-Level, Writing High-Level, teaches software engineers how compilers translate high-level language statements and data structures into machine code. Armed with this knowledge, a software engineer can make an informed choice concerning the use of those high-level structures to 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.
AcknowledgmentsIntroductionChapter 1: Thinking Low-Level, Writing High-LevelChapter 2: Shouldn???t You Learn Assembly Language?Chapter 3: 80x86 Assembly for the HLL ProgrammerChapter 4: PowerPC Assembly for the HLL ProgrammerChapter 5: Compiler Operation and Code GenerationChapter 6: Tools for Analyzing Compiler OutputChapter 7: Constants and High-Level LanguagesChapter 8: Variables in a High-Level LanguageChapter 9: Array Data TypesChapter 10: String Data TypesChapter 11: Pointer Data TypesChapter 12: Record Union, and Class Data TypesChapter 13: Arithmetic and Logical ExpressionsChapter 14: Control Structures and Programmatic DecisionsChapter 15: Iterative Control StructuresChapter 16: Functions and ProceduresEngineering SoftwareA Brief Comparison of the 80x86 and PowerPC CPU FamiliesOnline AppendicesColophonUpdatesAcknowledgments;Introduction;Chapter 1: Thinking Low-Level, Writing High-Level;1.1 1.1 Misconceptions About Compiler Quality;1.2 1.2 Why Learning Assembly Language Is Still a Good Idea;1.3 1.3 Why Learning Assembly Language Isn???t Absolutely Necessary;1.4 1.4 Thinking Low-Level;1.5 1.5 Writing High-Level;1.6 1.6 Assumptions;1.7 1.7 Language-Neutral Approach;1.8 1.8 Characteristics of Great Code;1.9 1.9 The Environment flÓ'