Compiler adalah program yang membaca program yang ditulis dalam satu bahasa (bahasa sumber) dan menerjemahkannya ke dalam program lain yang setara dalam bahasa lain (bahasa target), sebagian besar bahasa mesin.
Ada beberapa fase kompiler yang digunakan untuk memindai kode sumber Anda. Ada tabel simbol yang melacak semua kata kunci yang dipindai dalam kode bahasa sumber.
Fase 1: Lexical Analyzer - membaca semua karakter dalam program sumber dan membentuk pemisahan token yang logis (int, char, float, if-else, for, while dll)
Fase 2: Sintaksis Analyzer - menganalisis struktur aliran token. Penguraian hierarkis ekspresi yang mencakup postfix / awalan dll. (A = b + c * d)
Fase 3: Semantic Analyzer - Jenis pengecekan token (bilangan bulat ke nyata, float dll.) Dan banyak hal seperti operator diutamakan dll.
Fase 4: Penghasil Kode Menengah - a = b + c * de (temp1 = c * d, temp2 = temp1 + b, temp3 = temp2-e)
Fase 5: Optimasi Kode - Berbagai Analisis (aliran kontrol, aliran data, transformasi)
yang mengeliminasi: kode Redundansi, propagasi Konstanta, kode mati sebagian, subekspresi umum, kode invarian lingkaran
Fase 6: Pembuatan Kode - Pembuatan kode target (Sebagian Besar Bahasa Perakitan) menempatkan nilai dalam Register
Semua fase ini hanyalah program yang ditulis dengan baik dan mungkin ada sejumlah N kekurangan dalam hal itu ..