level 12
今天看了Ruby under the microscope前两章,第一章的parser和tokenizer就是普通的编译原理,没什么特别的地方,所以就不写了。
第二章编译字节码大概说了把ast编译到bytecode的过程。我明白了ruby的字节码构成,每一个block单独占有一段字节码队列和一个变量表。字节码中一个操作一字节,操作没有或有一个参数,参数1字节。变量表存储变量名,根据下标取用。还存在迷之hash表,作用不明待探究。
另一不明之处是ast遍历方法,感觉应该是深度优先,遍历右子树似乎会进入新的字节码序列,待探究。
今日电脑维修,无法看代码,所以遗留问题无法验证…争取明天解决
2015年03月08日 18点03分