Back to IF2224 Teori Bahasa Formal dan Otomata

Topic: Notasi Postfix dalam Kode Antara

Questions/Cues

  • Keuntungan Kode Antara

  • Kerugian Kode Antara

  • Format Postfix

  • Postfix: Struktur IF

  • Postfix: Struktur WHILE

Reference Points

  • Slide 16_2025: Hal 1 - 5

1. Karakteristik Kode Antara (Intermediate Code)

Kode antara adalah representasi program setelah tahap analisis yang menjembatani bahasa sumber dengan bahasa mesin.

Keuntungan:

  • Reduksi Usaha: Memperkecil usaha dalam membangun kompiler dari berbagai bahasa ke berbagai mesin.

  • Machine Independent: Hasil kode antara dapat digunakan kembali pada arsitektur mesin yang berbeda.

  • Kemudahan Optimasi: Proses optimasi lebih mudah dilakukan pada kode antara dibandingkan pada bahasa sumber atau bahasa mesin.

  • Keterbacaan: Lebih mudah dipahami dibandingkan kode assembly atau kode mesin.

Kerugian:

  • Memerlukan waktu kompilasi yang relatif lebih lama karena adanya dua kali transisi (sumber ke kode antara, lalu ke mesin).

2. Notasi Postfix

Notasi Postfix mengikuti format: <Operand> <Operand> <Operator>.

Contoh Aritmatika:

Ekspresi diubah menjadi ab+ cd+ *.

3. Postfix untuk Struktur Kontrol

Instruksi kontrol program harus diubah menjadi urutan linear menggunakan label dan instruksi lompatan.

Struktur IF:

IF THEN ELSE

Menjadi: BZ BR

  • BZ (Branch if Zero): Melompat jika kondisi salah (nol).

  • BR (Branch): Melompat tanpa syarat.

Struktur WHILE:

WHILE DO

Menjadi: BZ BR

4. Langkah Konversi WHILE (Contoh Teknis)

Program: a:=1; WHILE a<5 DO a:=a+1;

  1. Inisialisasi variabel a.

  2. Evaluasi kondisi a < 5.

  3. Jika hasil evaluasi kondisi salah (0), lompat ke akhir program (menggunakan BZ).

  4. Jika benar, eksekusi tubuh perulangan a := a + 1.

  5. Setelah tubuh perulangan selesai, lompat kembali ke langkah evaluasi kondisi (menggunakan BR).

Summary

Kode Antara berfungsi meningkatkan portabilitas kompiler dan memudahkan optimasi. Notasi Postfix merepresentasikan operasi dengan menempatkan operator setelah operand. Untuk struktur kontrol aliran seperti IF dan WHILE, Postfix menggunakan mekanisme lompatan bersyarat (BZ) dan tidak bersyarat (BR) untuk mengatur urutan eksekusi instruksi berdasarkan hasil evaluasi ekspresi logika.