Apakah ada cara untuk benar-benar menulis kompiler dalam bahasanya sendiri?
Anda harus memiliki beberapa bahasa untuk menulis kompilator baru Anda. Jika Anda menulis kompilator baru, katakanlah, C ++, Anda cukup menulisnya dalam C ++ dan mengkompilasinya dengan kompilator yang sudah ada terlebih dahulu. Di sisi lain, jika Anda membuat kompilator untuk bahasa baru, sebut saja Yazzleof, Anda perlu menulis kompilator baru dalam bahasa lain terlebih dahulu. Secara umum, ini akan menjadi bahasa pemrograman lain, tetapi tidak harus seperti itu. Ini bisa berupa perakitan, atau jika perlu, kode mesin.
Jika Anda sedang akan bootstrap sebuah compiler untuk Yazzleof, biasanya Anda tidak akan menulis compiler untuk bahasa penuh awalnya. Sebagai gantinya Anda akan menulis kompiler untuk Yazzle-lite, subset sekecil mungkin dari Yazzleof (yah, setidaknya subset yang cukup kecil ). Kemudian di Yazzle-lite, Anda akan menulis kompiler untuk bahasa lengkap. (Jelas ini dapat terjadi secara berulang, bukan dalam satu lompatan.) Karena Yazzle-lite adalah bagian yang tepat dari Yazzleof, Anda sekarang memiliki kompiler yang dapat dikompilasi sendiri.
Ada tulisan yang sangat bagus tentang bootstrap kompiler dari tingkat serendah mungkin (yang pada mesin modern pada dasarnya adalah editor hex), berjudul Bootstrap kompiler sederhana dari nol . Ini dapat ditemukan di https://web.archive.org/web/20061108010907/http://www.rano.org/bcompiler.html .