Write Great Code, Volume 2: Thinking Low-Level, Writing High-Level (2nd Edition)
Explains how compilers translate high-levellanguage source code (like code written in Python) into low-levelmachine code (code that the computer can understand) to helpreaders understand how to produce the best low-level, computerreadable machine code.In the beginning, most software was written in assembly, theCPU's low-level language, in order to achieve acceptableperformance on relatively slow hardware. Early programmers weresparing in their use of high-level language code, knowing that ahigh-level language compiler would generate crummy, low-levelmachine code for their software. Today, however, many programmerswrite in high-level languages like Python, C/C++/C#, Java, Swift.The result is often sloppy, inefficient code.But you don't need to give up the productivity and portabilityof high-level languages in order to produce more efficientsoftware.In this second volume of the Write Great Code series,you'll learn:• How to analyze the output of a compiler toverify that your code does, indeed, generate good machine code• The types of machine code statements thatcompilers typically generate for common control structures, so youcan choose the best statements when writing HLL code• Just enough 80x86 and PowerPC assemblylanguage to read compiler output• How compilers convert various constant andvariable objects into machine data, and how to use these objects towrite faster and shorter programsNEW TO THIS EDITION, COVERAGE OF:• Programming languages like Swift and Java• Code generation on modern 64-bit CPUs• ARM processors on mobile phones andtablets• Stack-based architectures like the JavaVirtual Machine• Modern language systems like the MicrosoftCommon Language RuntimeWith an understanding of how compilers work, you'll be able towrite source code that they can translate into elegant machinecode. That understanding starts right here, with Write GreatCode, Volume 2: Thinking Low-Level, Writing High-Level.