Pembuatan Kompilator
Pembuatan suatu kompilator dapat dilakukan dengan :
1. Bahasa mesin
Tingkat kesulitannya sangat tinggi, karena bahasa mesin ini sangat dekat dengan mesin sehingga sangat tidak manusiawi, dan tingkat ketergantungannya pada mesin sangat tinggi. Pembuatan kompilator dengan bahasa mesin hampir mustahil dilakukan. Bahasa mesin mungkin digunakan saat membuat assembler.
2. Bahasa assembly
Bahasa assembly bisa dan biasa digunakan sebagai tahap awal pada proses pembuatan sebuah kompilator. Keuntungan pengguna bahasa assembly adalah program hasil (object code) yang memiliki ukuran kecil. Kerugiannya memerlukan usaha yang besar, karena instruksi assembly pendek-pendek (sulit dimengerti) dan memiliki fasilitas yang terbatas. Sehingga masih terdapat kesulitan untuk mengembangkan sebuah kompilator yang secara keseluruhan dibuat dengan bahasa assembly.
3. Bahasa tingkat tinggi lain pada mesin yang sama
Keuntungannya adalah proses pembuatan kompilator akan lebih mudah, karena menggunakan bahasa tingkat tinggi yang lebih mudah dimengerti dan fasilitasnya lebih baik dibandingkan assembly. Kerugiannya kompilator yang dihasilkan akan memiliki ukuran yang besar. Bisa dibayangkan kalau kita akan mengembangkan kompilator untuk bahasa BASIC dengan mengunakan Turbo Pascal.
4. Bahasa tingkat tinggi yang sama pada mesin yang berbeda
Keuntungan dan kerugiannya sama dengan no ( 3 ), hanya disini memerlukan beberapa tahapan proses kompilasi sebelum didapat kompilator yang diinginkan pada mesin tujuan. Contoh: pembuatan kompilator C untuk DOS, berdasarkan kompilator C yang ada di UNIX.
5. Bootstrap
Gagasan dari bootstrap adalah kita bisa membangun sesuatu yang besar dengan lebih dahulu membuat bagian intinya. Cara ini diperkenalkan oleh Niklaus Wirth saat membuat kompilator untuk bahasa Pascal.
Bahasa assembly bisa dan biasa digunakan sebagai tahap awal pada proses pembuatan sebuah kompilator. Keuntungan pengguna bahasa assembly adalah program hasil (object code) yang memiliki ukuran kecil. Kerugiannya memerlukan usaha yang besar, karena instruksi assembly pendek-pendek (sulit dimengerti) dan memiliki fasilitas yang terbatas. Sehingga masih terdapat kesulitan untuk mengembangkan sebuah kompilator yang secara keseluruhan dibuat dengan bahasa assembly.
3. Bahasa tingkat tinggi lain pada mesin yang sama
Keuntungannya adalah proses pembuatan kompilator akan lebih mudah, karena menggunakan bahasa tingkat tinggi yang lebih mudah dimengerti dan fasilitasnya lebih baik dibandingkan assembly. Kerugiannya kompilator yang dihasilkan akan memiliki ukuran yang besar. Bisa dibayangkan kalau kita akan mengembangkan kompilator untuk bahasa BASIC dengan mengunakan Turbo Pascal.
4. Bahasa tingkat tinggi yang sama pada mesin yang berbeda
Keuntungan dan kerugiannya sama dengan no ( 3 ), hanya disini memerlukan beberapa tahapan proses kompilasi sebelum didapat kompilator yang diinginkan pada mesin tujuan. Contoh: pembuatan kompilator C untuk DOS, berdasarkan kompilator C yang ada di UNIX.
5. Bootstrap
Gagasan dari bootstrap adalah kita bisa membangun sesuatu yang besar dengan lebih dahulu membuat bagian intinya. Cara ini diperkenalkan oleh Niklaus Wirth saat membuat kompilator untuk bahasa Pascal.