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

  • 10h 6m
  • Randall Hyde
  • No Starch Press
  • 2020

Thinking Low-Level, Writing High-Level, the second volume in the landmark Write Great Code series by Randall Hyde, covers high-level programming languages (such as Swift and Java) as well as code generation on 64-bit CPUsARM, the Java Virtual Machine, and the Microsoft Common Runtime.

Today's programming languages offer productivity and portability, but also make it easy to write sloppy code that isn't optimized for a compiler. Thinking Low-Level, Writing High-Level will teach you to craft source code that results in good machine code once it's run through a compiler.

You'll learn:

  • How to analyze the output of a compiler to verify that your code generates good machine code
  • The types of machine code statements that compilers generate for common control structures, so you can choose the best statements when writing HLL code
  • Enough assembly language to read compiler output
  • How compilers convert various constant and variable objects into machine data

With an understanding of how compilers work, you'll be able to write source code that they can translate into elegant machine code.

NEW TO THIS EDITION, COVERAGE OF:

  • Programming languages like Swift and Java
  • Code generation on modern 64-bit CPUs
  • ARM processors on mobile phones and tablets
  • Stack-based architectures like the Java Virtual Machine
  • Modern language systems like the Microsoft Common Language Runtime

About the Author

Randall Hyde is the author of The Art of Assembly Language, one of the most highly recommended resources on assembly, and the three volume Write Great Code series (all No Starch Press). He is also the co-author of The Waite Group's MASM 6.0 Bible. He has written for Dr. Dobb's Journal and Byte, as well as professional and academic journals.

In this Book

  • Introduction
  • Thinking Low-Level, Writing High-Level
  • Shouldn’t You Learn Assembly Language?
  • 80X86 Assembly for the HLL Programmer
  • Compiler Operation and Code Generation
  • Tools for Analyzing Compiler Output
  • Constants and High-Level Languages
  • Variables in a High-Level Language
  • Array Data Types
  • Pointer Data Types
  • String Data Types
  • Record, Union, and Class Data Types
  • Arithmetic and Logical Expressions
  • Control Structures and Programmatic Decisions
  • Iterative Control Structures
  • Functions and Procedures
  • Afterword—Engineering Software
  • Resources
SHOW MORE
FREE ACCESS