STM Pembangunan
A EN CO
S → Bulat{ print(Bulat.val) }
Bulat→ Ribuan Ratusan Puluhan Satuan { Bulat.val = Ribuan.val + Ratusan.val + Puluhan.val + Satuan.val }
Bulat → Right to Lef
Satuan → ‘0’ {Satuan.val = ‘’} Satuan → ‘1’ {Satuan.val = ‘I’}
Daftar Anggota:
Tugas Kelompok ke-1
Week 2
· MUHAMMAD ALVINO DIENOVA – 2602217894
...[Show More]
S → Bulat{ print(Bulat.val) }
Bulat→ Ribuan Ratusan Puluhan Satuan { Bulat.val = Ribuan.val + Ratusan.val + Puluhan.val + Satuan.val }
Bulat → Right to Lef
Satuan → ‘0’ {Satuan.val = ‘’} Satuan → ‘1’ {Satuan.val = ‘I’}
Daftar Anggota:
Tugas Kelompok ke-1
Week 2
· MUHAMMAD ALVINO DIENOVA – 2602217894
· FAISAL ADI PRAYUGO – 2602210824
· SIMON PAHALA – 2602216935
· YUDISTIRA ARYA MUTAMANG – 2602215655
Soal.
1. Compiler yang menerjemahkan bahasa tingkat tinggi (high-level language) ke dalam
bahasa tingkat tinggi lain disebut penerjemah dari sumber ke sumber (source-to-source
translator). Apa keuntungan menggunakan bahasa C sebagai bahasa target untuk sebuah
compiler?
2. Buatlah skema terjemahan berdasarkan sintaks:
a. menerjemahkan bilangan bulat menjadi angka Romawi.
b. menerjemahkan angka Romawi menjadi bilangan bulat.
3. Bagaimana peran transition diagrams dalam lexical analyzer?
Jawab.
1. Bahasa C merupakan bahasa yang populer dan dapat digunakan di banyak platform serta
mudah dimengerti. Jika compiler menghasilkan kode dalam bahasa C, maka kode tersebut dapat
di-compile dan dijalankan di banyak sistem tanpa memerlukan perubahan signifikan.
2. a. Syntax menerjemahkan bilangan bulat menjadi angka Romawi.
Satuan → ‘2’ {Satuan.val = ‘II’}
Satuan → ‘3’ {Satuan.val = ‘III’}
Satuan → ‘4’ {Satuan.val = ‘IV’}
Satuan → ‘5’ {Satuan.val = ‘V’}
Satuan → ‘6’ {Satuan.val = ‘VI’}
...
Satuan→ ‘9’ {Satuan.val = ‘IX’}
Puluhan → ‘0’ {Puluhan.val = ‘’}
Puluhan → ‘1’ {Puluhan.val = ‘X’}
Puluhan → ‘2’ {Puluhan.val = ‘XX’}
Puluhan → ‘3’ {Puluhan.val = ‘XXX’}
Puluhan → ‘4’ {Puluhan.val = ‘XL’}
Puluhan → ‘5’ {Puluhan.val = ‘L’}
Puluhan→ ‘6’ {Puluhan.val = ‘LX’}
...
Puluhan→ ‘9’ {Puluhan.val = ‘XC’}
Ratusan → ‘0’ {Ratusan.val = ‘’}
Ratusan → ‘1’ {Ratusan.val = ‘C’}
Ratusan→ ‘2’ {Ratusan.val = ‘CC’}
Ratusan → ‘3’ {Ratusan.val = ‘CCC’}
Ratusan → ‘4’ {Ratusan.val = ‘CD’}
Ratusan → ‘5’ {Ratusan.val = ‘D’}
Ratusan → ‘6’ {Ratusan.val = ‘DC’}
...
Ratusan → ‘9’ {Satuan.val = ‘CM’} Ribuan → ‘0’ {Ribuan.val = ‘’} Ribuan → ‘1’ {Ribuan.val = ‘M’}
b. Translation scheme angka Romawi menjadi bilangan bulat
S → Romawi { print(Romawi.val) }
Romawi → Ribuan Ratusan Puluhan Satuan { Romawi.val = Ribuan.val + Ratusan.val + Puluhan.val +
Satuan.val }
Ribuan → 'M' { Ribuan.val = 1000 }
Ribuan → ε { Ribuan.val = 0 }
Ratusan → 'CM' { Ratusan.val =
900 } Ratusan → 'D' { Ratusan.val =
500 } Ratusan → 'CD' { Ratusan.val =
400 } Ratusan → 'C' { Ratusan.val =
100 } Ratusan → ε { Ratusan.val =
0 } Puluhan → 'XC' { Puluhan.val =
90 } Puluhan → 'L' { Puluhan.val = 50
} Puluhan → 'XL' { Puluhan.val =
40 } Puluhan → 'X' { Puluhan.val =
10 } Puluhan → ε { Puluhan.val = 0 }
Satuan → 'IX' { Satuan.val = 9 }
Satuan → 'V' { Satuan.val = 5 }
Satuan → 'IV' { Satuan.val = 4 }
Satuan → 'I' { Satuan.val = 1 }
Satuan → ε { Satuan.val = 0 }
3. Berikut adalah bagaimana diagram transisi berperan dalam analisis leksikal:
· Mewakili suatu kondisi, setiap node dalam diagram mewakili suatu kondisi atau
state yang dapat terjadi.
· Transisi antar kondisi, edge atau panah menghubungkan satu kondisi ke kondisi
lainnya. Setiap edge memiliki simbol yang menunjukkan perpindahan yang
terjadi.
· Pointer maju, misalnya jika kita berada di suatu kondisi tertentu dan simbol input
selanjutnya adalah a, kita mencari edge keluar dari kondisi tersebut yang memiliki simbol
a. Pointer tersebut maju ke state baru sesuai dengan edge tersebut.
· State awal, satu kondisi khusus yang disebut dengan initial state yang ditunjukkan oleh
edge yang bertanda start. Transition diagram selalu dimulai dari state awal ini.
· State akhir, state ini ditandai dengan dua lingkaran yang merupakan kondisi terakhir.
State ini menunjukkan bahwa leksem telah ditemukan.
Dengan menggunakan transition diagrams, lexical analyzer dapat direpresentasikan secara visual,
diagram ini memodelkan proses input dan transisi antar kondisi selama pencarian leksem.
[Show Less]