不求甚解之自制编程语言

xiaoxiao2021-02-28  95

开始写不求甚解系列,为了让自己开始再次学习一些it方面的知识,主要是发现自己从毕业这几年开始, 一直没有再次写写博客,让自己安静下来,让自己重新思考,这也让我一直都是在重复一些很肤浅的东西 ,但同时忘记了自己的目标–创造。 不求甚解系列是自己的读书系列,对以前可能知道的,或者有些印象的东西进行忽略,只对不了解的东西 开始一系列的浏览,这也是为什么我会对这个系列起名叫不求甚解的原因。 读书只对不知道的东西进行阅读,这样可以保证自己的heartflow保持一个相对较长的时间。

目录   第1章 引子   1.1 为什么要制作编程语言   1.2 自制编程语言并不是很难   1.3 本书的构成与面向读者   1.4 用什么语言来制作   1.5 要制作怎样的语言 // ==属于比较,=属于赋值,跟本书后面的右序相关 文中有一些关于分析树的内容,相较于llc的内容相似,分词之后形成 顺序处理   1.6 环境搭建 // cygwin可以在windows使用linux的命令,类似ls命令等,比较不错的软件   第2章 试做一个计算器   2.1 yacc/lex是什么   2.2 试作一个计算器   2.3 不借助工具编写计算器 //递归下降分析,图解就是分析树   2.4 少许理论知识——LL(1)与LALR(1)   2.5 习题:扩展计算器   第3章 制作无类型语言crowbar   3.1 制作crowbar ver.0.1语言的基础部分   3.2 预先准备 //valgrind是linux上一个检测内存泄漏的工具,对所有malloc或者new 出来的堆内存空间的指针加标识(__val 之类的),进行生命周期跟踪   3.3 crowbar ver.0.1的实现   第4章 数组和mark-sweep垃圾回收器   4.1 crowbar ver.0.2   4.2 制作mark-sweep GC //a={1,2,3}; b={4,5,a}; a[0]=b; 这行代码就形成了类似链表环的代码   4.3 实现GC本身 //通过新建内存分两块,一块使用,快用完了,另一块整理出有用的,这样 循环使用,虽然浪费内存,但有效,代码中可以考虑使用   4.4 其他修改 //左值   第5章 中文支持和Unicode   5.1 中文支持策略和基础知识   5.2 Unicode //unicode前面部分和ascii的编码相同,unicode可以同时处理utf-8和ascii   5.3 crowbar book_ver.0.3的实现   第6章 制作静态类型的语言Diksam   6.1 制作Diksam Ver 0.1语言的基本部分   6.2 什么是静态的/执行字节码的语言   6.3 Diksam ver.0.1的实现——编译篇   6.4 Diksam虚拟机 //巨大的switch case这就是运行态的方式,。。。原理还真easy   第7章 为Diksam引入数组   7.1 Diksam中数组的设计   7.2 修改编译器   7.3 修改DVM //null属于全类型   第8章 将类引入Diksam   8.1 分割源文件   8.2 设计Diksam中的类   8.3 关于类的实现——继承和多态 //子类方法的返回值类型要比超类的窄   8.4 关于类的实现 //**回忆一下编译时,内存中哪些地方存放全局变量,静态变量,局部变量 数据,代码,等**   第9章 应用篇   9.1 为crowbar引入对象和闭包 //闭包有点像小的类的概念   9.2 异常处理机制 //java中try throw属于受查异常   9.3 构建脚本   9.4 为crowbar引入鬼车   9.5 其他   附录   附录A crowbar语言的设计 //刚工作的时候,manager让我做一个工业编译器,现在再让我做 我肯定要先确定整体,找一个类似的东西,建一个框架,然后问他 具体到哪个程度,而不是像当时就直接做。   附录B Diksam语言的设计 // + - * / 都是双目运算 **break是从循环中退出,continue 是跳转到循环末尾,return是从 函数中跳出**   附录 C Diksam Virtual Machine 指令集

转载请注明原文地址: https://www.6miu.com/read-67820.html

最新回复(0)