不求甚解之自制编程语言

开始写不求甚解系列,为了让自己开始再次学习一些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 指令集