手写编译器
Crafting Interpreters
尽管每天都在使用它们,但大多数软件工程师对编程语言的设计和实现方式知之甚少。对于许多人来说,他们在计算机科学的那个角落的唯一经历是一个可怕的“编译器”课程,他们在本科时经历了这门课,并试图在他们在期末考试中草草写下最后一次 NFA 到 DFA 的转换后从他们的记忆中抹去。
这种可怕的名声掩盖了一个拥有丰富有用技术的领域,并且并不像某些从业者可能让你相信的那样困难。更好地理解编程语言的构建方式将使您成为更强大的软件工程师,并教您概念和数据结构,您将在余下的编码日中使用这些概念和数据结构。你甚至可能玩得开心。
本书教您实现功能齐全、高效的脚本语言所需了解的一切。您将学习有关解析和语义的高级概念以及字节码表示和垃圾收集等重要细节。你的大脑会被新的想法点亮,你的手会变得肮脏和老茧。
从 main() 开始,您将构建一种具有丰富语法、动态类型、垃圾收集、词法范围、一等函数、闭包、类和继承的语言。所有这些都打包成几千行干净、快速的代码,您可以完全理解这些代码,因为您自己编写了每一行代码。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)