1. Teori Bahasa
Ini adalah studi tentang struktur bahasa, termasuk bahasa alami (seperti bahasa manusia) dan
bahasa formal (seperti bahasa pemrograman). Teori bahasa membantu kita memahami
bagaimana bahasa dikonstruksi dan dipahami.
2. Otomata
Otomata adalah model matematis yang digunakan untuk menggambarkan komputasi.
Automata seperti mesin Turing dan automata berhingga (finite automata) membantu kita
memahami apa yang dapat dan tidak dapat dihitung oleh mesin.
3. Komputasi
Ini melibatkan penggunaan bahasa pemrograman (yang dapat dipahami oleh komputer) untuk
memecahkan masalah dan melakukan tugas tertentu. Teori bahasa dan otomata membantu
dalam mengembangkan dan memahami bahasa pemrograman serta algoritma yang
digunakan dalam komputasi.
4. Kompilasi
Proses mengubah kode sumber dalam bahasa pemrograman tingkat tinggi menjadi kode
mesin yang dapat dijalankan oleh komputer. Teori bahasa dan otomata digunakan dalam
pengembangan kompilator.
1. Kompilator
Ini adalah penerjemah bahasa yang mengubah seluruh kode sumber program dalam bahasa
pemrograman tingkat tinggi menjadi kode mesin dalam satu langkah.
Beberapa karakteristik kompilator adalah:
Prosesnya lambat karena seluruh kode harus dianalisis dan dikompilasi sebelum eksekusi.
Output biasanya berupa file biner yang dapat dieksekusi secara independen.
Contoh bahasa yang menggunakan kompilator adalah C dan C++.
2. Interpreter
Ini adalah penerjemah yang menerjemahkan dan menjalankan kode sumber program baris per
baris secara interaktif. Karakteristik interpreter meliputi:
Lebih cepat dalam memulai eksekusi karena menerjemahkan kode secara bertahap.
Tidak menghasilkan file biner terpisah; kode dieksekusi langsung.
Contoh bahasa yang menggunakan interpreter adalah Python dan JavaScript.
3. Hybrid
Ada juga penerjemah yang menggunakan pendekatan campuran, seperti Java yang pertama-tama
dikompilasi menjadi bytecode dan kemudian dijalankan oleh mesin virtual (Java Virtual
Machine) dalam mode interpretasi.