TUGAS TEKNIK KOMPILASI
euhee, , , , kit ketemu lagi su lama bet son tulis-tulis di ini blog oo, te bet hanya tulis pas ada tugas sa naa x_x, oke ini kali bet mau tulis sedikit tentang apa itu teknik kompilasi dan beberapa proses analisa dalam melakukannya, uheeeeeeee !! neuh mar batong lia ame teknik kompilasi tuh apa oooo... mar su...
Teknik
Kompilasi merupakan teknik dalam melakukan pembacaan suatu program yang ditulis
dalam bahasa sumber, kemudian diterjemahkan ke dalam suatu bahasa lain yang
disebut bahasa sasaran. Dalam melakukan proses penerjemahan tersebut, sudah
barang tentu kompilator akan melaporkan adanya keanehan-keanehan atau kesalahan
yang mungkin ditemukannya. Proses penerjemahan yang dilakukan oleh kompilator
ini disebut proses
kompilasi (compiling).
Dalam teknik kompilassi dikenal 3 proses analisis yaitu :
- Proses Analisis Leksikal
- Proses Analisis Sintaksis atau Sintaks
- Proses Analisis Simantik
Ø PENGERTIAN
ANALISIS LEKSIKAL (SCANNER)
Analisis leksikal atau scanner bertugas mengidentifikasi semua
besaran pembangun bahasa (leksikal) yang ada pada source code (source code).
Scanner menerima masukan source code berupa serangkaian karakter kemudian
memilah-milahnya menjadi bagian-bagian kecil yang mempunyai satu arti yang
disebut token, seperti : konstanta, nama variabel, keyword, operator.
Token-token ini akan menjadi masukan bagi analisis selanjutnya yaitu analisis
sintaksis.
Dari fungsi scanner secara
umum seperti telah disebutkan di atas, maka tugasscanner secara
rinci adalah:
1.
membaca
serangkaian karakter dari source code
2.
mengenalinya
ke dalam satuan leksikal
3.
mengubahnya
menjadi token dan menentukan jenis tokennya.
4.
mengirimkan
token ke proses analisis selanjutnya, yaitu analisis sintaksis
5.
mengabaikan
karakter white space (spasi, enter, ganti baris, penanda
akhir file) dan komentar (remark) apabila ada di dalam source code
6.
menangani error
7.
menangani
tabel simbol
Scanner bekerja berdasarkan prinsip mesin finite state automata
(FSA). Diagram keadaan dapat digunakan untuk membantu mengkonstruksi scanner.
Besaran pembangun bahasa (leksikal) meliputi:
a. Identifier
Identifier atau pengenal dapat berupa:
1. kata tercadang atau kata kunci (reserve word)
yang telah didefinisikan oleh bahasa pemrograman.
2. kata yang dideklarasikan sendiri oleh pemakai
(si pembuat program) disebut dengan variabel.
b. Nilai konstanta
Nilai konstanta disini dapat berupa: integer, real, boolean,
character, string, dan sebagainya.
Melalui contoh berikut ini, bedakan antara nilai (atau isi)
dengan variabel yang digunakan untuk menyimpannya.
c. Operator dan Delimineter
1. Operator aritmatika ( +, -, *, /
2. Operator logika (<, =, >, <=, >=,
!=, <>)
3. Delimiter berguna sebagai pemisah atau
pembatas, contoh:
4. Karakter sebagai berikut ( ) { } ; . , :
5. Karakter white space.
Ø PENGERTIAN ANALISA SINTAKS (PARSER)
Analisis sintak lebih
sering disebut penguraian (parsing). Tujuan utama dari analisis sintak adalah
memeriksa apakah urutan token-token yang dihasilkan sesuai dengan tata bahasa
dari bahasa yang bersangkutan. Misalnya bahasa C mengenal kalimat: jumlah++;
yang berarti menaikkan harga variabel jumlah dengan angka satu. Tetapi kalimat
di atas akan salah jika dikompilasi dengan kompilator bahasa Pascal, karena
tidak sesuai dengan tata bahasa Pascal.
Dalam analisis sintak, tata bahasa yang digunakan untuk mendefinisikan aturan sintak suatu bahasa disebut tata bahasa bebas konteks (Context Free Grammar). Tata bahasa ini memiliki empat komponen penting yaitu himpunan simbol terminal, himpunan non-terminal, himpunan produksi dan simbol awal. Dalam bahasa pemrograman, yang disebut terminal adalah token. Contoh terminal adalah token. Contoh token misalnya kata kunci (keyword) if, while, dan identifier serta bilangan. Sedangkan non-terminal merupakan variabel-variabel sintak yang menyatakan himpunan terminal maupun non-terminal. Dalam proses parsing terjadi proses penggantian suatu non terminal dengan sederetan himpunan non terminal dan terminal yang berada dalam sisi kanan produksnya. Proses ini disebut sebagai derivasi. Contohnya non-terminal if_stmt merupakan himpunan terminal if, then, else, dan non-terminal expr dan stmt, yang membentuk aturan produksi : if_stmt ?? if expr then stmt else stmt. Dari semua simbol non-terminal yang digunakan, ada satu simbol yang bertindak sebagai simbol awal, yaitu simbol yang pertama kali diderivasi. Aturan produksi menggambarkan bagaimana kombinasi non-terminal dan terminal yang benar menurut tata bahasa yanbg bersangkutan. Dalam proses penguraian, token-token yang dihasilkan dalam analisis leksikal dibentuk menjadi pohon urai (parse tree).
Pohon urai merupakan hasil derivasi dari aturan – aturan produksi.
Ada dua jenis derivasi, yaitu derivasi terkiri (Left Most Derivation) dan derivasi terkanan (Right Most Derivation). Derivasi terkiri akan menderivasi suatu aturan produksi mulai dari non-terminal yang paling kiri. Sedangkan derivasi terkanan akan menderivasi suatu aturan produksi mulai dari non-terminal yang paling kanan.
Jika proses derivasi aturan-aturan produksi suatu tata bahasa terhadap suatu masukan menghasilkan lebih dari satu pohon urai maka tata bahasa tersebut dikatakan rancu (ambiguous).
Dalam analisis sintak, tata bahasa yang digunakan untuk mendefinisikan aturan sintak suatu bahasa disebut tata bahasa bebas konteks (Context Free Grammar). Tata bahasa ini memiliki empat komponen penting yaitu himpunan simbol terminal, himpunan non-terminal, himpunan produksi dan simbol awal. Dalam bahasa pemrograman, yang disebut terminal adalah token. Contoh terminal adalah token. Contoh token misalnya kata kunci (keyword) if, while, dan identifier serta bilangan. Sedangkan non-terminal merupakan variabel-variabel sintak yang menyatakan himpunan terminal maupun non-terminal. Dalam proses parsing terjadi proses penggantian suatu non terminal dengan sederetan himpunan non terminal dan terminal yang berada dalam sisi kanan produksnya. Proses ini disebut sebagai derivasi. Contohnya non-terminal if_stmt merupakan himpunan terminal if, then, else, dan non-terminal expr dan stmt, yang membentuk aturan produksi : if_stmt ?? if expr then stmt else stmt. Dari semua simbol non-terminal yang digunakan, ada satu simbol yang bertindak sebagai simbol awal, yaitu simbol yang pertama kali diderivasi. Aturan produksi menggambarkan bagaimana kombinasi non-terminal dan terminal yang benar menurut tata bahasa yanbg bersangkutan. Dalam proses penguraian, token-token yang dihasilkan dalam analisis leksikal dibentuk menjadi pohon urai (parse tree).
Pohon urai merupakan hasil derivasi dari aturan – aturan produksi.
Ada dua jenis derivasi, yaitu derivasi terkiri (Left Most Derivation) dan derivasi terkanan (Right Most Derivation). Derivasi terkiri akan menderivasi suatu aturan produksi mulai dari non-terminal yang paling kiri. Sedangkan derivasi terkanan akan menderivasi suatu aturan produksi mulai dari non-terminal yang paling kanan.
Jika proses derivasi aturan-aturan produksi suatu tata bahasa terhadap suatu masukan menghasilkan lebih dari satu pohon urai maka tata bahasa tersebut dikatakan rancu (ambiguous).
Ø PENGERTIAN
ANALISIS SIMANTIK
Analisis semantik berperan dalam memeriksa kesalahan-kesalahan yang bersifat semantik. Salah satu peranan analisis semantik yang penting adalah pemeriksaan tipe variabel. Contohnya operator * hanya digunakan untuk operand dengan tipe integer ataupun real. Sedangkan operator and, or, digunakan hanya untuk operand dengan dengan tipe boolean.
Peranan lain dari analisis semantik adalah memeriksa keunikan suatu nama. Misalnya dalam Pascal, nama variabel global tidak boleh sama dengan prosedur atau nama fungsi. Dalam bahasa C, jika suatu nama konstanta didefinisikan lebih dari satu kali, maka akan diperiksa kesamaan nilai kedua konstanta.
Analisis semantik dapat dilakukan dengan menggunakan salah satu dari dua bentuk notasi, yaitu Definisi Berdasarkan Sintak (DBS) dan Skema Translasi. Definisi Berdasarkan Sintak (DBS) merupakan gabungan tata bahasa dengan himpunan aturan semantik yang akan menentukan struktur sintak dari suatu masukan. Aturan semantik digunakan untuk menghitung atribut, misalnya tipe atau nilai konstanta, yang berkaitan dengan simbol dalam aturan produksi.
oke sekarang su mangarti to teknik kompilasi tuh apa dan prosesnya tuh apa-apa sa dan dia puarti apa hang ? oke see you next time oo, sory kalo ada bahasa yang agak balibet te bet bar dari kampung auhee.. :D
Tags:
TEKNIK KOMPILASI
0 komentar