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).

Ø  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

Share:

0 komentar