用Go语言自制编译器

用Go语言自制编译器

  • 大小:19.1 MB
  • 类型:Go语言
  • 格式:PDF
  • 出版:人民邮电出版社
  • 作者:索斯藤·鲍尔(Thorsten、Ball)
  • 更新:2022-09-06 08:46:13
vip 免费获取(已有180人参与)
关注公众号免费送书
版权投诉 / 资源反馈(本资源由用户 曾翰音 投稿)

go语言程序设计编程实战虚拟机编译原理教程书籍,摆脱枯燥的理论学习,用边学边练的方式理解编译原理,原版豆瓣评分9.4分,体验一步步实现类C语言的乐趣 内容简介 本书是《用Go语言自制解释器》的续篇。在自制解释器时,你已经为Monkey语言实现了类C语法、变量绑定、基本数据类型、算术运算、内置函数、闭包等特性。是时候让Monkey继续成长了!在本书中,Monkey将继续进化,并终成长为成熟的程序设计语言。在已有词法分析器、语法分析器和抽象语法树的基础上,你将为Monkey语言定义字节码指令,指定操作数,编写反汇编程序,构建执行字节码的虚拟机。通过动手学习,你将能够体验从无到有实现类C语言的乐趣。 目录 第 1章 编译器与虚拟机 1 1.1 编译器 2 1.2 虚拟机与物理机 5 1.2.1 物理机 6 1.2.2 什么是虚拟机 11 1.2.3 为什么要构建虚拟机 14 1.2.4 字节码 15 1.3 虚拟机与编译器的二元性 17 第 2章 你好,字节码! 19 2.1 第 一条指令 20 2.1.1 以字节作为开端 21 2.1.2 小编译器 26 2.1.3 字节码与反汇编程序 32 2.1.4 回归初心,继续前行 37 2.1.5 给机器上电 40 2.2 栈上加法 46 2.3 连接REPL 52 第3章 编译表达式 55 3.1 栈清理 55 3.2 中缀表达式 60 3.3 布尔类型 64 3.4 比较运算符 69 3.5 前缀表达式 76 第4章 条件语句 83 4.1 跳转 86 4.2 编译条件语句 88 4.3 执行跳转 103 4.4 欢迎回来,Null 值 106 第5章 追踪名称 115 5.1 计划 116 5.2 编译绑定 117 5.2.1 添加符号表 120 5.2.2 在编译器中使用符号 123 5.3 在虚拟机中支持全局变量 126 第6章 字符串、数组和哈希表 132 6.1 字符串 132 6.2 数组 138 6.3 哈希表 142 6.4 索引运算符 149 第7章 函数 156 7.1 一个简单的函数 156 7.1.1 函数表示 157 7.1.2 执行函数的操作码 158 7.1.3 编译函数字面量 161 7.1.4 编译函数调用 176 7.1.5 虚拟机中的函数 179 7.1.6 一点奖励 190 7.2 局部绑定 191 7.2.1 局部绑定操作码 192 7.2.2 编译局部绑定 195 7.2.3 在虚拟机中实现局部绑定 208 7.3 参数 218 7.3.1 编译带参数的函数调用 219 7.3.2 将引用解析为参数 224 7.3.3 虚拟机中的参数 227 第8章 内置函数 237 8.1 使修改变得简单 238 8.2 做出改变:计划 244 8.3 内置函数作用域 245 8.4 执行内置函数 250 第9章 闭包 256 9.1 问题 257 9.2 计划 258 9.3 将一切视为闭包 260 9.4 编译和解析自由变量 271 9.5 运行时创建闭包 283 9.6 递归闭包 288 第 10章 后的测试 303

相关资源

  • C Primer Plus(第六版) 复习题参考答案

    《 C primer Plus 》而作为C语言的经典入门书籍,书上的内容受益颇多。可当为课后习题苦恼不已,这里准备了一份较为完备,准确的习题答案。完备的《C primer plus》的答案,以供初入此道的萌新们参考。需要的朋友可下再试试! 《C Primer Plus(第6版)中文版》可作为C语言的教材,适用于需要系统学习C语言的初学者,也适用于巩固C语言知识或希望进一步提高编程技术的程序员。

    大小:46.1 MBCPrimer

  • 《机械制造工艺与夹具》教案

    《机械制造工艺与夹具》教案

    内容简介 本教材是为满足高职高专机电类专业教学突出实践环节、强化技能培养而编写的。本书共分7章,主要内容为机械制造技术概述、工艺规程设计与制定、典型零件加工实例、装配技术、机械制造工装设计、机械加工精度与表面质量以及现代制造技术等。各章前后分别附有教学目标与要求、教学重点和本章小结、习题与思考,以便学生了解教学目标,提高学习的针对性。 本书适合作为高职高专机电类专业教材,也可作为职业培训教材和相关工程技

    大小:6.5 MB机械制造配套资源

  • 软件架构基础 Fundamentals of Software Architecture

    世界范围内的薪酬调查经常将软件架构师排在前10名,但是没有真正的指导可以帮助开发人员成为架构师。直到现在。软件架构基础这本书提供了第一个全面的概述,有抱负的架构师和现有的架构师同样会检查架构特征、架构模式、组件确定、架构图绘制和呈现、演进架构,以及许多其他主题。 目录 1. Preface: Invalidating Axioms 2.1. Introduction 3. I. Foundaions 4.2. Architectural Thinking 5.3. Modularity 6.4. Arch

    大小:47.6 MB软件架构

  • Java程序设计实用教程(第3版)

    Java程序设计实用教程(第3版) 课后答案

    本书全面、系统地介绍Java语言程序设计的基本知识、运行机制和各种常用编程方法和技术,将面向对象的程序设计思想贯穿其中,建立起牢固扎实的理论基础。主要内容包括Java开发运行环境JDK、Java语言基础、面向对象的核心特性、接口、内部类和包、异常处理、图形用户界面、多线程、Applet、输入/输出流和文件操作、网络通信、Web应用、数据库应用和综合应用设计。这些内容是构成Java应用程序的基本要素和知识。 本书注重理论与实践相结合,注重基

    大小:10.9 MBJava课后答案

  • uCharts高性能跨全端图表

    uCharts高性能跨全端图表

    性能卓越混合开发图表库,支持H5图表、APP图表、小程序图表(手机微信小程序、支付宝小程序、百度搜索小程序、今日头条小程序),支持饼状图、圆环图、线图、柱形图、地区图、雷达图、弧形进展图、车内仪表盘、K线图、条形图、混和图、玫瑰图、漏斗图。 软件特性 支持H5、小程序(手机微信/支付宝/百度搜索/今日头条/QQ/360)、APP,启用简易便捷、特性及感受极好。 尽管沒有Echarts及F2图表功能齐全,但能够 完成一套领域模型各端通用性,并解决

    大小:2.1 MBuCharts

  • 《HTML+CSS+JavaScript网页制作从新手到高手》电子资源

    《HTML+CSS+JavaScript网页制作从新手到高手》电子资源

    编辑推荐 (1)双色印刷,重点突出。 (2)同步全高清视频教学,如名师在侧,高手相伴。 (3)超值赠送相关图书视频教学文件和电子书,花一本书的钱,买几本书的内容。 (4)大量赠送实用软件工具、办公模板,便于读者随时扩展学习应用。 (4)随书赠送纸质技巧手册,与图书配合使用,实现系统学习和技巧突破。 (5)双线学习法 光盘演示体验 高清视频教学 互动体验操作高手指导,名师相伴,手把手快速掌握 系统学习实践 图书案例 小手册实

    大小:7.2 GB网页制作配套资源

  • 《Python金融数据分析》源码

    《Python金融数据分析》源码

    本书系统阐述Python在金融领域的应用,不仅涵盖核心的金融理论及相关数学概念,还详细讲解如何应用Python求解经典的资产定价模型、解决金融中的线性和非线性问题、开发数值程序和利率模型,以及如何根据有限差分法定价来描绘含有期权的隐含波动率曲线等。 本书还介绍了Hadoop在大数据分析中的应用以及Python和Excel的融通,包括使用Python执行MapReduce操作,用NoSQL存储数据,在Python中构建一个组件对象模型服务器和客户端界面与Excel融通,以及在Excel中

    大小:3.4 MBPython配套资源

  • 《程序设计基础:Visual Basic教程》习题答案,教案,源代码

    《程序设计基础:Visual Basic教程》习题答案,教案,源代码

    内容介绍 全书从初学者的角度出发,由浅入深地介绍面向对象的程序设计方法,主要包括Visual Basic集成环境的组成、Visual Basic基本控件和高级控件的使用、程序设计基础知识及3种结构程序设计、高级数据类型、过程、文件和数据库编程技术等内容。本书还提供了大量的程序设计典型算法,指导读者在实践中更熟练地解决问题。 本书注重对学生进行基本概念、基本理论、基本技能的培养,可作为各类高等院校非计算机专业学习Visual Basic程序设计的教材,

    大小:3 MBVisual Basic配套资源

参与送书

相关声明:

学习笔记