ふつうのコンパイラをつくろう
バイナリを知る。
コンパイラを中心としたプログラミング言語の実行環境(コンパイラ、アセンブラ、リンカ、ハードウェア、そして実行時環境)のすべてを、言語処理系をつくりながら学ぶ本。コンパイルと実行環境の仕組みを理解できる。
这是青木峰郎耗费3年时间打造出来的著作。它以编译器为中心,讲解了编程语言的运行环境(编译器、汇编器、链接器、硬件以及运行时环境)的一切。它是本让读者能够一边编写语言处理器一边学习相关知识的书,读后能够理解编译器与运行时环境的构造。
本书用Java实现了一个Cь(读作C-flat,一种C语言的精简版)的编译器,可以将Cь程序编译为Linux上原生的ELF格式可执行文件。编译器前端采用JavaCC生成,中间采用类似虎书介绍的树形中间代码,后端里有一个自行编写的内部DSL形式的x86汇编代码生成器;生成出来的汇编经由GNU gas生成为E...
バイナリを知る。
コンパイラを中心としたプログラミング言語の実行環境(コンパイラ、アセンブラ、リンカ、ハードウェア、そして実行時環境)のすべてを、言語処理系をつくりながら学ぶ本。コンパイルと実行環境の仕組みを理解できる。
这是青木峰郎耗费3年时间打造出来的著作。它以编译器为中心,讲解了编程语言的运行环境(编译器、汇编器、链接器、硬件以及运行时环境)的一切。它是本让读者能够一边编写语言处理器一边学习相关知识的书,读后能够理解编译器与运行时环境的构造。
本书用Java实现了一个Cь(读作C-flat,一种C语言的精简版)的编译器,可以将Cь程序编译为Linux上原生的ELF格式可执行文件。编译器前端采用JavaCC生成,中间采用类似虎书介绍的树形中间代码,后端里有一个自行编写的内部DSL形式的x86汇编代码生成器;生成出来的汇编经由GNU gas生成为ELF格式的可执行文件。以此,Cь程序从源码到可执行文件到运行时环境的整个流程在本书中有所体现。
著有《Javaを独習する前に読む本》《Rubyソースコード完全解説》(Ruby Hacking Guide)《Rubyレシピブック 第2版 268の技》《ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門》《ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道》等书籍。