Crafting Interpreters

Crafting Interpreters
ISBN-10
0990582949
ISBN-13
9780990582946
Category
Computers
Pages
640
Language
English
Published
2021-07-27
Publisher
Genever Benning
Author
Robert Nystrom

Description

Despite using them every day, most software engineers know little about how programming languages are designed and implemented. For many, their only experience with that corner of computer science was a terrifying "compilers" class that they suffered through in undergrad and tried to blot from their memory as soon as they had scribbled their last NFA to DFA conversion on the final exam. That fearsome reputation belies a field that is rich with useful techniques and not so difficult as some of its practitioners might have you believe. A better understanding of how programming languages are built will make you a stronger software engineer and teach you concepts and data structures you'll use the rest of your coding days. You might even have fun. This book teaches you everything you need to know to implement a full-featured, efficient scripting language. You'll learn both high-level concepts around parsing and semantics and gritty details like bytecode representation and garbage collection. Your brain will light up with new ideas, and your hands will get dirty and calloused. Starting from main(), you will build a language that features rich syntax, dynamic typing, garbage collection, lexical scope, first-class functions, closures, classes, and inheritance. All packed into a few thousand lines of clean, fast code that you thoroughly understand because you wrote each one yourself.

Similar books

  • Family History Digital Libraries
    By William Sims Bainbridge

    One named Sara and Timberlake had 11 male workers, 1 female worker, and 4 children workers, so it might have employed the Minor family.

  • Foundation Dreamweaver MX
    By Craig Grannell, Jerome Turner, Matt Stephens

    So here's what we need to do to arrive at our layout: s Create the main table to hold all the page elements. s Deal with the navigation area which is ...

  • Cisco CCNA Certification, 2 Volume Set: Exam 200-301
    By Todd Lammle

    This inclusive, two-book set provides what you need to know to succeed on the new CCNA exam. The set includes Understanding Cisco Networking Technologies: Volume 1 and the CCNA Certification Study Guide: Volume 2.

  • CompTIA Network+ Study Guide: Exam N10-006
    By Todd Lammle

    ... you can use: –a –A –c –n –r –R –S –s All nbtstat switches are case sensitive. Generally speaking, lowercase switches deal with NetBIOS names of hosts, ...

  • CompTIA Network+ Study Guide with Online Labs: N10-007 Exam
    By Todd Lammle, Jon Buhagiar

    ... you can use: –a –A –c –n –r –R –S –s All nbtstat switches are case sensitive. Generally speaking, lowercase switches deal with NetBIOS names of hosts, ...

  • CCNA: Cisco Certified Network Associate FastPass
    By Todd Lammle

    S The S reference point defines the point between the customer router and an ... with the letter E deal with using ISDN on the existing telephone network.

  • Stranger in the Chat Room
    By Todd Hafer, Jedd Hafer

    A sequel to In the Chat Room With God finds a group of teens contacted by a mysterious and increasingly malevolent character who claims to know about their encounters with the Almighty and challenges their beliefs. Original.

  • Error Correction Coding: Mathematical Methods and Algorithms
    By Todd K. Moon

    M M−1∑ k=0 −∞ ∞ k=0 The average energy per signal E s ∫ can be related to the ... we will deal primarily with additive white Gaussian noise (AWGN), ...

  • Security+ Training Guide
    By Todd King

    ... to deal with most , but unfortunately not all , of these potential threats . ... The S / MIME standard implements encryption for message content using ...

  • CCDA: Cisco Certified Design Associate Study Guide: Exam 640-861
    By Todd Lammle, Andy Barkl

    S reference point The S reference point defines the reference point between ... with the letter E deal with using ISDN on the existing telephone network.