Crafting Interpreters (Paperback)

Nystrom, Robert

  • 出版商: Genever Benning
  • 出版日期: 2021-07-27
  • 售價: $2,200
  • 貴賓價: 9.5$2,090
  • 語言: 英文
  • 頁數: 640
  • 裝訂: Quality Paper - also called trade paper
  • ISBN: 0990582930
  • ISBN-13: 9780990582939
  • 相關分類: Compiler
  • 立即出貨 (庫存 < 4)

買這商品的人也買了...

商品描述

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.

商品描述(中文翻譯)

儘管每天使用它們,大多數軟體工程師對於程式語言的設計和實現知之甚少。對許多人來說,他們對這個電腦科學領域的唯一經驗是在大學時期受過的可怕的「編譯器」課程,他們試圖將這段記憶從腦海中抹去,只要他們在期末考試上匆匆寫完最後一個NFA轉換成DFA的步驟。

這種可怕的聲譽掩蓋了一個充滿有用技巧的領域,並不像一些從業者所宣稱的那麼困難。對於程式語言的建構有更好的理解將使您成為一名更強大的軟體工程師,並教您在其餘的編碼日子中使用的概念和資料結構。您甚至可能會覺得有趣。

這本書將教您實現一個功能完整且高效的腳本語言所需的一切。您將學習高層次的解析和語義概念,以及字節碼表示和垃圾回收等細節。您的大腦將因新的想法而亮起,您的手也會變得髒兮兮且有茧。

從main()開始,您將構建一個具有豐富語法、動態類型、垃圾回收、詞法作用域、一級函數、閉包、類和繼承的語言。所有這些都被壓縮在幾千行乾淨、快速的程式碼中,您將完全理解,因為每一行都是您自己寫的。