Berikutnya adalah: bagaimana kalau kita ingin membuat compiler?
Interpreter hanya mengeksekusi program, dan tidak menghasilkan output.
Compiler perlu mengoutputkan kode dalam bahasa assembly, yang kemudian
akan dikompilasi oleh assembler. Mempelajari assembly yang lengkap butuh
waktu, apalagi jika kita ingin menargetkan berbagai prosessor, sehingga
membuat compiler yang mengoutputkan ke assembly langsung tidaklah
mudah.
Karena sulitnya bahasa assembly, dalam tahap-tahap berikutnya, kita
tidak akan mengoutputkan bahasa assembly langsung, tapi akan menggunakan
bantuan LLVM (Low Level Virtual Machine). Tapi untuk tahap-tahap awal,
saya bisa menunjukkan bagaimana output assembly langsung bisa dibuat,
apalagi dalam bahasa yang sangat sederhana seperti ini.
Pertama saya akan membahas dulu apa bedanya sebuah compiler dengan
interpreter. Sebuah compiler menghasilkan kode assembly dari sebuah
program. Compiler tidak menghasilkan file executable. Diberikan program Z
dalam bahasa X, compiler membuat versi assembly dari program Z
tersebut. Jadi compiler hanya menerjemahkan sebuah bahasa ke ekivalennya
dalam bahasa assembly.