210 likes | 524 Views
TEORI BAHASA & OTOMATA ( PENGENALAN KOMPILASI ). PERTEMUAN V & VI Y A N I S U G I Y A N I. MATERI PERTEMUAN V & VI. PENGENALAN KOMPILASI PERTEMUAN V BAHASA PEMROGRAMAN TRANSLATOR MODEL KOMPILATOR PERTEMUAN VI ANALISIS LEKSIKAL ANALISIS SINTAKS. BAHASA PEMROGRAMAN.
E N D
TEORI BAHASA & OTOMATA(PENGENALAN KOMPILASI) PERTEMUAN V & VI Y A N I S U G I Y A N I
MATERI PERTEMUAN V & VI PENGENALAN KOMPILASI PERTEMUAN V • BAHASA PEMROGRAMAN • TRANSLATOR • MODEL KOMPILATOR PERTEMUAN VI • ANALISIS LEKSIKAL • ANALISIS SINTAKS
BAHASA PEMROGRAMAN • Berfungsiuntukmelayani, sebagaisuatualatkomunikasiantarakitadenganmasalah yang akankitaselesaikan.
BAHASA PEMROGRAMAN Hirarkiatautingkatandaribahasapemrogramanberdasarkanpadapeningkatankebebasanmesinadalahsebagaiberikut : • Bahasamesin (machine – level languages) • Bahasarakitan (Assembly languages) • Bahasatingkattinggiataubahasa user oriented (higher level languages atau user oriented languages) • Bahasaberorientasimasalah (problem – oriented languages)
TRANSLATOR • Waktu yang digunakanuntukmengkonversikansuatu program sumberke program objekdisebutwaktukompilasi (compile time) • Program objekdijalankandalamwaktu yang disebutwaktupelaksanaanatau run time
TRANSLATOR Waktukompilasi Waktupelaksanaan
TRANSLATOR Translator yang mentransformasikansuatubahasatingkattinggikedalambahasamesinkomputerataukebahasarakitanadalah • Kompilator / compile • Interpreter
SCANNER / ANALISIS LEKSIKAL • Memisahkannaskah program sumber yang masuk, menjadibagianleksikografisterkecilatau token, misal : konstanta, namavariabel, katakuncidan operator.
PARSER / ANALISIS SINTAKS • Berfungsimenerima program sumber (dalambentukbarisan token) daripenganalisisleksikaldanselanjutnyapenganalisissintaksiniakanmenentukanstruktursecarakeseluruhandari program sumber. • Prosesterakhirini analog denganmenentukanstrukturdarisuatukalimatdalambahasainggris.
PARSER / ANALISIS SINTAKS • Dalamanalisissintakskitamemandangkelompok token sebagaikelassintaks yang lebihbesarsepertiekspresi, statemendanprosedur • Penganalisissintaksakanmenganalisispohonsintaksatausejenisnya • Simpuldaunmerupakan token dansetiapsimpul yang bukandaunmewakilisuatutipekelassintaks yang dikenalsebagaisimbol non terminal atauvariabel
ANALISIS SEMANTIK • Berfungsimemberiartidari program sumber • Penganalisissemantikharusmenentukanaksiapa yang dilakukanoleh operator aritmatikaketika parser mengenalisebuah operator, parser memanggilrutinsemantik – routine yang akanmenggolongkanaksi yang akandikerjakan
Contoh : Ekspresi : (A+B) * (C+D) Bentuk intermediate darikodesumberberbentukkuadrupelseperti ( + , A, B, T1) ( + , C, D, T2) ( * , T1, T2, T3)
dapatdiartikan : ( + , A, B, T1) Menambah A dengan B dan menempatkanhasilnyasementarasebagai T1 ( + , C, D, T2) Menambah C dengan D dan menempatkanhasilnyasementarasebagai T2 ( * , T1, T2, T3) Mengalikan T1 dengan T2 dan menempatkanhasilnyadi T3
Sebuahekspresi Infix dapatdikonversikankebentuk intermediate yang disebutnotasi polish. Sebuahekspresi infix (A+B)*(C+D) dapatdikonversikansehinggaekivalendengan suffix-polish (postfix-polish) AB+CD+*.
Output daripenganalisissemantikdikirimkepembentukkode (code generator). Padasaatitubentuk intermediate program sumber, biasanyaditerjemahkankedalambahasarakitan (assembly language) ataupunkedalambahasamesin (machine language)
Contoh : Bentukkuadrupeldiatas, dapatmenghasilkanbarisanalamat-tunggal (sinle address), intruksiakumulator-tunggalbahasarakitan (single-accumulator assembly language) berikut :
LDA A Panggil (LOAD) isi A, masukkankedalamakumulator ADD B Tambahkan (ADD) isi B kedalamAkumulator STO T1 Simpan (STORE) isiakumulator kedalampenyimpanan sementaraT1
LDA C Panggil (LOAD) isi C, masukkankedalamakumulator ADD D Tambahkan (ADD) isi D kedalamAkumulator STO T2 Simpan (STORE) isiakumulator kedalampenyimpanan sementaraT2
LDA T1 Panggil (LOAD) isi T1, masukkankedlmakumulator MUL T2 Kalikan (MULTIPLY) isi T2 denganisiakumulator STO T3 Simpan (STORE) isiakumulator kedlmpenyimpansementaraT3