Tayangan Embeded System Bab 07 ku

Download Report

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