Transcript Tayangan Embeded System Bab 07 ku
Sistem Tertanam
Pengayaan Software/Hardware dan Pengantarmukaan
Sistem Tertanam
Teknik Dasar Kompiler
• Kompilator (compiler) adalah sebuah program yang membaca suatu program dari source code dan menterjemahkannya kedalam object code.
Pengayaan Sw & Hw 2/total
Sistem Tertanam • Source code : bahasa tingkat tinggi (misal Pascal, C). • Object code : bahasa mesin/bahasa assembly. • Source code dan data diproses pada saat yang berbeda, contoh : Turbo Pascal, Turbo C Pengayaan Sw & Hw 3/total
Sistem Tertanam
Tahap-tahap Kompilasi
1. Tahap analisis (front end) Bertugas melakukan dekomposisi program sumber menjadi bagian-bagian dasarnya. Tahap analisa terdiri dari : • Lexical analysis • Syntactic analysis • Semantic analysis • Intermediate code generation Pengayaan Sw & Hw 4/total
Sistem Tertanam 2. Tahap sintesis (back end) Bertugas melakukan pembangkitan dan optimasi program objek. Tahap sintesis terdiri dari : • Code optimization • Object code generation Pengayaan Sw & Hw 5/total
Sistem Tertanam
1. Lexical analyzer (scanner
) Berfungsi memecah teks program sumber menjadi bagian-bagian kecil yang mempunyai satu arti yang disebut token, seperti : konstanta, nama variabel, keyword, operator Pengayaan Sw & Hw 6/total
Sistem Tertanam
2. Syntax analyzer (parser)
Berfungsi mengambil program sumber (sudah dalam bentuk barisan token) dan menentukan kedudukan masing-masing token berdasarkan aturan sintaksnya memeriksa kebenaran dan urutan kemunculan token
3. Semantic analyzer
Berfungsi menentukan validitas semantiks/keberartian program sumber. Biasanya bagian ini digabung dengan intermediate code generator.
4. Intermediate code generator
Berfungsi membangkitkan kode antara sintaks dengan code table.
Pengayaan Sw & Hw 7/total
Sistem Tertanam
5. Code optimation
Berfungsi mengefisienkan kode yang dibentuk
6. Code generator
Berfungsi membangkitkan kode program target dalam bahasa target yang ekivalen dengan bahasa sumber
7. Symbol table management
Berfungsi mengelola tabel simbol selama proses kompilasi. Tabel simbol adalah struktur data yang memuat rekord untuk tiap identifier dengan atribut-atribut identifier itu.
8. Error handler
Berfungsi menangani kesalahan yang berlangsung selama proses kompilasi Pengayaan Sw & Hw 8/total
Sistem Tertanam •
Contoh: operasi
position := initial + rate * 60
Penyelesaian dengan tahapan kompilasi 1. Lexical analysis
Mengelompokkan pernyataan tersebut menjadi token-token sebagai berikut : • Token
identifier
position • Token
simbol assignment
:= • Token
identifier
initial • Token
tanda plus
+ • Token
identifier
rate • Token
tanda perkalian
* • Token
konstanta angka
60 Pengayaan Sw & Hw 9/total
Sistem Tertanam Ketika identifier pada program sumber ditemukan lexical analyzer, maka identifier dimasukkan ke tabel simbol.
position := initial + rate * 60
diubah menjadi
+ id3 * 60 id1 := id2
2. Syntax analysis
Memparsing atau membentuk pohon sintaks pernyataan, yaitu : Pengayaan Sw & Hw 10/total
Sistem Tertanam
3. Semantic analysis
• Memeriksa kebenaran arti program sumber • Mengumpulkan informasi tipe bagi tahap berikutnya. • Menggunakan pohon sintaks tahap
syntax analysis
untuk identifikasi operator dan operand suatu ekspresi dan kalimat. Pengayaan Sw & Hw 11/total
Sistem Tertanam • Komponen penting analisis semantik adalah pemeriksaan tipe, memeriksa operator yang harus mempunyai operand yang diijinkan oleh spesifikasi bahasa sumber. Contoh :
var position, initial, rate : real
Konstanta 60 dikonversi menjadi real dengan fungsi
inttoreal(60)
menjadi konstanta bilangan real Pengayaan Sw & Hw 12/total
Sistem Tertanam
4. Intermediate Code Generator
Merupakan representasi perantara antara bentuk bahasa tingkat tinggi dengan bahasa mesin.
temp1 := inttoreal(60) temp2 := id3 * temp1 temp3 := id2 + temp2 id1 := temp3
Pengayaan Sw & Hw 13/total
Sistem Tertanam
5. Code Optimization
Melakukan proses identifikasi dan membuang operasi-operasi yang tidak perlu dari intermediate code generation untuk penyederhanaan sehingga nantinya kode mesin hasil menjadi lebih cepat. Kode-kode tersebut dioptimasi menjadi :
temp1 := id3 * 60.0 Id1 := id2 + temp1
Pengayaan Sw & Hw 14/total
Sistem Tertanam
6. Code Generator
Merupakan tahap pembangkitan kode target/objek. Biasanya yang dapat direlokasi adalah kode mesin atau assembly. Pembangkitan kode sangat bergantung pada mesin yang dipakai, misal :
MOVF id3, R2 MULF #60.0, R2 MOVF id2, R1 ADDF R2, R1 MOVF R1, id1
Pengayaan Sw & Hw 15/total