|
50
2. Penganalisa
sintaksis
:
memeriksa
kesesuaian
pola deretan
token dengan
aturan
sintaks
yang
ditentukan dalam
bahasa
sumber.
Sederetan
token
yang
tidak
mengikuti
aturan
sintaks
akan
dilaporkan
sebagai
kesalahan
sintaks (syntax
error).
Secara
logika
deretan
token
yang
bersesuaian
dengan sintaksis tertentu akan dinyatakan sebagai parse tree.
3. Penganalisa
semantik
:
memeriksa token
dan ekspresi
dari
batasan-
batasan yang ditetapkan. Batasan-batasan tersebut misalnya :
a. panjang maksimum token identifier adalah 8 karakter,
b. panjang maksimum ekspresi tunggal adalah 80 karakter,
c. nilai bilangan bulat adalah -32768 s/d 32767,
d. operasi aritmatika harus melibatkan operand-operand bertipe sama.
4. Pembangkit kode antara
:
membangkitkan kode antara (intermediate
code)
berdasarkan
parse
tree.
Parse
tree
selanjutnya diterjemahkan oleh
suatu
penerjemah yang
dinamakan penerjemah berdasarkan sintaksis
(syntax-directed
translator).
Hasil
penerjemahan ini
biasanya
merupakan
perintah
tiga
alamat
(three-address
code)
yang
merupakan representasi
program untuk
suatu
mesin
abstrak.
Perintah
tiga
alamat
bisa
berbentuk
quadruples (op, arg1, arg2, result), tripels (op, arg1, arg2). Ekspresi
dengan satu argumen dinyatakan dengan
menetapkan arg2 dengan -
(strip, dash).
5. Pengoptimasi kode
:
melakukan optimasi (penghematan space dan
waktu
komputasi), jika mungkin, terhadap kode antara.
6. Pembangkit
kode
:
membangkitkan
kode
dalam
bahasa
target
tertentu
(misalnya bahasa mesin).
|