Writing a C Compiler: Build a Real Programming Language from Scratch 283836

Паперова книга
283836
Writing a C Compiler: Build a Real Programming Language from Scratch - фото 1
Writing a C Compiler: Build a Real Programming Language from Scratch - фото 2
Writing a C Compiler: Build a Real Programming Language from Scratch - фото 3
Writing a C Compiler: Build a Real Programming Language from Scratch - фото 4
Writing a C Compiler: Build a Real Programming Language from Scratch - фото 5
Writing a C Compiler: Build a Real Programming Language from Scratch - фото 6
Writing a C Compiler: Build a Real Programming Language from Scratch - фото 7
Writing a C Compiler: Build a Real Programming Language from Scratch - фото 8
Writing a C Compiler: Build a Real Programming Language from Scratch - фото 9
Writing a C Compiler: Build a Real Programming Language from Scratch - фото 10
  • ISBN
    978-1718500426
  • Бренд
  • Автор
  • Рік
    2024
  • Мова
    Англійська
  • Ілюстрації
    Чорно-білі
1'700
Купити

Все про “Writing a C Compiler: Build a Real Programming Language from Scratch”

Від видавця

A hands-on, example-filled guide to the theory and practice of writing a C compiler: a computer program that translates code written by programmers into code the computer can read.

Compilers are at the heart of everything programmers do, yet even experienced developers find them intimidating. For those eager to truly grasp how compilers work, Writing a C Compiler dispels the mystery. This book guides you through a fun and engaging project where you’ll learn what it takes to compile a real-world programming language to actual assembly code.

Writing a C Compiler will take you step by step through the process of building your own compiler for a significant subset of C—no prior experience with compiler construction or assembly code needed. Once you’ve built a working compiler for the simplest C program, you’ll add new features chapter by chapter. The algorithms in the book are all in pseudocode, so you can implement your compiler in whatever language you like. Along the way, you’ll explore key concepts like:

  • Lexing and parsing: Learn how to write a lexer and recursive descent parser that transform C code into an abstract syntax tree.
  • Program analysis: Discover how to analyze a program to understand its behavior and detect errors.
  • Code generation: Learn how to translate C language constructs like arithmetic operations, function calls, and control-flow statements into x64 assembly code.
  • Optimization techniques: Improve performance with methods like constant folding, dead store elimination, and register allocation.

Compilers aren’t terrifying beasts—and with help from this hands-on, accessible guide, you might even turn them into your friends for life.

About the Author
Nora Sandler is a software engineer based in Seattle. She holds a BS in computer science from the University of Chicago, where she researched the implementation of parallel programming languages. More recently, she’s worked on domain-specific languages at an endpoint security company. You can find her blog on pranks, compilers, and other computer science topics at https://norasandler.com.

Зміст

Table of contents 
Acknowledgments
Introduction
Part I: The Basics
Chapter 1: A Minimal Compiler
Chapter 2: Unary Operators
Chapter 3: Binary Operators
Chapter 4: Logical and Relational Operators
Chapter 5: Local Variables
Chapter 6: If Statements and Conditional Expressions
Chapter 7: Compound Statements
Chapter 8: Loops
Chapter 9: Functions
Chapter 10: File-scope Variables and Storage-class
Specifiers
Part II: Types Beyond Int
Chapter 11: Long Integers
Chapter 12: Unsigned Integers
Chapter 13: Floating-Point Numbers
Chapter 14: Pointers
Chapter 15: Arrays and Pointer Arithmetic
Chapter 16: Characters and Strings
Chapter 17: Supporting Dynamic Memory Allocation
Chapter 18: Structures
Part III: Optimizations
Chapter 19: Optimizing Tacky Programs
Chapter 20: Register Allocation
Next Steps
Appendix A: Debugging Assembly Code with GDB or LLDB
Appendix B: Assembly Generation and Code Emission Tables
References

Всі характеристики

  • Бренд
  • Автор
  • Категорія
    Програмування
  • Рік
    2024
  • Сторінок
    792
  • Формат
    165х235 мм
  • Обкладинка
    М'яка
  • Тип паперу
    Офсетний
  • Мова
    Англійська
  • Ілюстрації
    Чорно-білі

Товар входить до категорії

  • Безкоштовна доставка Новою Поштою від 3'000,00 ₴
  • Безкоштовна доставка Укрпоштою від 800,00 ₴
  • Безкоштовна доставка Meest Поштою від 3'000,00 ₴
Персонально для вас
Data Parallel C++: Mastering DPC++ for Programming of Heterogeneous Systems using C++ and SYCL
253023
James ReindersBen AshbaughJames BrodmanMichael KinsnerJohn PennycookXinmin Tian
950 ₴
Tour of C++
14360
Bjarne Stroustrup
980 ₴
C++ Concurrency in Action 2nd Edition
273672
Anthony Williams
980 ₴
Expert C++: Become a proficient programmer by learning coding best practices with C++17 and C++20's latest features, 2nd Edition
264116
Marcelo Guerra HahnAraks TigranyanJohn AsatryanVardan GrigoryanShunguang Wu
1'300 ₴
Beginning C++ Compilers: An Introductory Guide to Microsoft C/C++ and MinGW Compilers 1st ed. Edition
269656
Berik I. TuleuovAdemi B. Ospanova
1'300 ₴
Design Patterns in Modern C++20. 2nd Ed.
244677
Dmitri Nesteruk
1'400 ₴
C++ Brain Teasers: Exercise Your Mind 1st Edition
291305
Anders Schau Knatten
1'400 ₴
Modern C for Absolute Beginners. A Friendly Introduction to the C Programming Language. 1st Ed.
244702
Slobodan Dmitrovic
1'700 ₴
Fluent C: Principles, Practices, and Patterns
253605
Christopher Preschern
1'360 ₴1'700 ₴
Beginning C++23: From Beginner to Pro 7th ed. Edition
259110
Ivor HortonPeter Van Weert
1'700 ₴
Pointers in C Programming. A Modern Approach to Memory Management, Recursive Data Structures, Strings, and Arrays
153653
Thomas Mailund
1'900 ₴
C++ Software Design: Design Principles and Patterns for High-Quality Software 1st Edition
274193
Klaus Iglberger
1'900 ₴
Effective C, 2nd Edition: An Introduction to Professional C Programming
303267
Robert C. Seacord
1'900 ₴
Modern CMake for C++ - Second Edition: Effortlessly build cutting-edge C++ code and deliver high-quality solutions 2nd ed. Edition
286362
Rafal SwidzinskiAlexander Kushnir
2'100 ₴
Modern C++ Programming Cookbook: Master Modern C++ with comprehensive solutions for C++23 and all previous standards 3rd ed. Edition
295063
Marius Bancila
2'100 ₴
C++ Programming for Linux Systems: Create robust enterprise software for Linux and Unix-based operating systems 1st Edition
308351
Desislav AndreevStanimir Lukanov
2'100 ₴
Parallel C++: Efficient and Scalable High-Performance Parallel Programming Using HPX 2024th Edition
308362
Patrick DiehlSteven R. BrandtHartmut Kaiser
2'100 ₴
Інші книги No Starch Press
The Wireless Cookbook
303167
Bill Zimmerman
2'300 ₴
The Book of Batch Scripting: From Fundamentals to Advanced Automation
283838
Jack McLarney
1'700 ₴
The Rust Programming Language, 2nd Edition
269110
Steve KlabnikCarol Nichols
780 ₴
Windows Security Internals: A Deep Dive into Windows Authentication, Authorization, and Auditing
280690
James Forshaw
1'900 ₴
Metasploit, 2nd Edition
283887
Dave KennedyJim O'GormanDevon KearnsMati AharoniDr. Daniel G. Graham
2'100 ₴
Metasploit, 2nd Edition
283887
Dave KennedyJim O'GormanDevon KearnsMati AharoniDr. Daniel G. Graham
2'100 ₴
Open Circuits: The Inner Beauty of Electronic Components
302858
Windell OskayEric Schlaepfer
1'400 ₴