Write Great Code Understanding the Machine 2nd Edition by Randall Hyde – Ebook PDF Instant Download/DeliveryISBN: 1718500372, 9781718500372
Full download Write Great Code Understanding the Machine 2nd Edition after payment.
Product details:
ISBN-10 : 1718500372
ISBN-13 : 9781718500372
Author: Randall Hyde
Understanding the Machine, the first volume in the landmark Write Great Code series by Randall Hyde, explains the underlying mechanics of how a computer works. This, the first volume in Randall Hyde’s Write Great Code series, dives into machine organization without the extra overhead of learning assembly language programming. Written for high-level language programmers, Understanding the Machine fills in the low-level details of machine organization that are often left out of computer science and engineering courses. Learn: How the machine represents numbers, strings, and high-level data structures, so you’ll 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. Great code is efficient code. But before you can write truly efficient code, you must understand how computer systems execute programs and how abstractions in programming languages map to the machine’s low-level hardware. After all, compilers don’t write the best machine code; programmers do. This book gives you the foundation upon which all great software is built. NEW IN THIS EDITION, COVERAGE OF: Programming languages like Swift and Java Code generation on modern 64-bit CPUs ARM processors on mobile phones and tablets Newer peripheral devices Larger memory systems and large-scale SSDs
Write Great Code Understanding the Machine 2nd Table of contents:
1 WHAT YOU NEED TO KNOW TO WRITE GREAT CODE
1.1 The Write Great Code Series
1.2 What This Book Covers
1.3 Assumptions This Book Makes
1.4 Characteristics of Great Code
1.5 The Environment for This Book
1.6 Additional Tips
1.7 For More Information
2 NUMERIC REPRESENTATION
2.1 What Is a Number?
2.2 Numbering Systems
2.3 Numeric/String Conversions
2.4 Internal Numeric Representation
2.5 Signed and Unsigned Numbers
2.6 Useful Properties of Binary Numbers
2.7 Sign Extension, Zero Extension, and Contraction
2.8 Saturation
2.9 Binary-Coded Decimal Representation
2.10 Fixed-Point Representation
2.11 Scaled Numeric Formats
2.12 Rational Representation
2.13 For More Information
3 BINARY ARITHMETIC AND BIT OPERATIONS
3.1 Arithmetic Operations on Binary and Hexadecimal Numbers
3.2 Logical Operations on Bits
3.3 Logical Operations on Binary Numbers and Bit Strings
3.4 Useful Bit Operations
3.5 Shifts and Rotates
3.6 Bit Fields and Packed Data
3.7 Packing and Unpacking Data
3.8 For More Information
4 FLOATING-POINT REPRESENTATION
4.1 Introduction to Floating-Point Arithmetic
4.2 IEEE Floating-Point Formats
4.3 Normalization and Denormalized Values
4.4 Rounding
4.5 Special Floating-Point Values
4.6 Floating-Point Exceptions
4.7 Floating-Point Operations
4.8 For More Information
5 CHARACTER REPRESENTATION
5.1 Character Data
5.2 Character Strings
5.3 Character Set Data Types
5.4 Designing Your Own Character Set
5.5 For More Information
6 MEMORY ORGANIZATION AND ACCESS
6.1 The Basic System Components
6.2 Physical Organization of Memory
6.3 Big-Endian vs. Little-Endian Organization
6.4 The System Clock
6.5 CPU Memory Access
6.6 For More Information
7 COMPOSITE DATA TYPES AND MEMORY OBJECTS
7.1 Pointer Types
7.2 Arrays
7.3 Records/Structures
7.4 Discriminant Unions
7.5 Classes
7.6 Classes in C++
7.7 Classes in Java
7.8 Classes in Swift
7.9 Protocols and Interfaces
7.10 Generics and Templates
7.11 For More Information
8 BOOLEAN LOGIC AND DIGITAL DESIGN
8.1 Boolean Algebra
8.2 Boolean Functions and Truth Tables
8.3 Function Numbers
8.4 Algebraic Manipulation of Boolean Expressions
8.5 Canonical Forms
8.6 Simplification of Boolean Functions
8.7 What Does This Have to Do with Computers, Anyway?
8.8 For More Information
9 CPU ARCHITECTURE
9.1 Basic CPU Design
9.2 Decoding and Executing Instructions: Random Logic vs. Microcode
9.3 Executing Instructions, Step by Step
9.4 RISC vs. CISC: Improving Performance by Executing More, Faster, Instructions
9.5 Parallelism: The Key to Faster Processing
9.6 For More Information
10 INSTRUCTION SET ARCHITECTURE
10.1 The Importance of Instruction Set Design
10.2 Basic Instruction Design Goals
10.3 The Y86 Hypothetical Processor
10.4 Encoding 80×86 Instructions
10.5 Implications of Instruction Set Design to the Programmer
10.6 For More Information
11 MEMORY ARCHITECTURE AND ORGANIZATION
11.1 The Memory Hierarchy
11.2 How the Memory Hierarchy Operates
11.3 Relative Performance of Memory Subsystems
11.4 Cache Architecture
11.5 NUMA and Peripheral Devices
11.6 Virtual Memory, Memory Protection, and Paging
11.7 Writing Software That Is Cognizant of the Memory Hierarchy
11.8 Runtime Memory Organization
11.9 For More Information
12 INPUT AND OUTPUT
12.1 Connecting a CPU to the Outside World
12.2 Other Ways to Connect Ports to the System
12.3 I/O Mechanisms
12.4 I/O Speed Hierarchy
12.5 System Buses and Data Transfer Rates
12.6 Buffering
12.7 Handshaking
12.8 Timeouts on an I/O Port
12.9 Interrupts and Polled I/O
12.10 Protected-Mode Operation and Device Drivers
12.11 For More Information
13 COMPUTER PERIPHERAL BUSES
13.1 The Small Computer System Interface
13.2 The IDE/ATA Interface
13.3 The Universal Serial Bus
13.4 For More Information
14 MASS STORAGE DEVICES AND FILESYSTEMS
14.1 Disk Drives
14.2 Tape Drives
14.3 Flash Storage
14.4 RAM Disks
14.5 Solid-State Drives
14.6 Hybrid Drives
14.7 Filesystems on Mass Storage Devices
14.8 Writing Software That Manipulates Data on a Mass Storage Device
14.9 For More Information
15 MISCELLANEOUS INPUT AND OUTPUT DEVICES
15.1 Exploring Specific PC Peripheral Devices
15.2 Mice, Trackpads, and Other Pointing Devices
15.3 Joysticks and Game Controllers
15.4 Sound Cards
15.5 For More Information
People also search for Write Great Code Understanding the Machine 2nd:
write great code volume 1 pdf
write great code volume 3 pdf
write great code volume 1
write great code
write great code book
Tags: Write Great, Understanding, the Machine, Randall Hyde