Kamis, 30 September 2021

TAHAPAN KOMPILASI

1) Tahapan Kompilasi

     Compiler/ kompilasi adalah suatu program yang dapat membaca suatu Bahasa pemrograman (source language) dan kemudian diterjemahkan ke dalam Bahasa pemrograman lain (target language).  Didalam teknik kompilasi ada beberapa tahapan yang menjadi standar dalam menerjemahkan kode dari bahasa pemrograman menjadi bahasa mesin.

Phase Analysis :

Lexical Analyzer

Pada Compiler, lexical analyzer biasa disebut juga sebagai scanner. Lexical analyzer adalah tahapan pertama yang dilakukan pada compiler. Proses yang dilakukan pada tahapan ini adalah membaca program sumber karakter per karakter. Satu atau lebih (deretan) karakter karakter ini dikelompokkan menjadi suatu kesatuan mengikuti pola kesatuan kelompok karakter (token) yang ditentukan dalam bahasa sumber dan disimpan dalam table simbol, sedangkan karakter yang tidak mengikuti pola akan dilaporkan sebagai token tak dikenal.

Syntax Analyzer
Setelah tahapan lexical analyzer selesai berikutnya adalah tahapan syntax analyzer atau biasa juga disebut Parser. Pada tahapan ini token yang didapatkan dari hasil lexical analysis  diurutkan atau disusun lalu dikelompokkan ke dalam suatu struktur tertentu secara spesifik. 

Semantic Analyzer
Setelah tahapan syntax analyzer selesai berikutnya adalah tahapan semantic analyzer. Tahapan semantic analyzer merupakan tahapan yang penting karena merupakan pusar dari tahapan kompilasi, dan juga merupakan jembatan antara fase analysis dan fase synthesis pada compiler. Pada tahapan ini program sumber akan diperiksa untuk mencari kemungkinan kesalahan semantic dengan cara memanfaatkan struktur hirarkikal yang dihasil dari tahapan syntax analyzer. Pada tahapan ini akan dihasilkan suatu kode yang executable pada kompilasi yang sederhana lalu dimanipulasi dengan berbagai optimization dari translator sampai nanti benar-benar executable dihasilkan.

Phase Synthesis :

Intermediate Code Generator
Intermediate code generator merupakan tahapan awal dari phase synthesis. Proses yang dilakukan pada tahapan ini me-generate atau membangkitkan suatu code berdasarkan parsing tree, lalu selanjutnya diterjemahkan ke dalam bentuk three address code, quadruples atau triples. 

Code Optimizer
Setelah melakukan tahapan intermediate code generator berikutnya yang dilakukan adalah tahapan code optimizer. Adapun yang dilakukan pada tahapan ini adalah mengoptimisasi code sehingga menjadi code yang executable. Tahapan ini dilakukan untuk mempercepat waktu eksekusi dari suatu program dengan cara menghilangkan redudansi pada code. 

Code Generator
Tahapan code generator ini merupakan tahapan terakhir pada proses kompilasi. Pada tahapan ini akan dilakukan penentuan register untuk masing-masing variable lalu instruksi-instruksi dalam bentuk antara akan diterjemahkan ke dalam Bahasa mesin, dan akhirnya akan menghasilkan relocatable machine code atau assembly code. 

Symbol Table Manager
Symbol Table adalah sebuah struktur data dengan record-record untuk setiap identifier dengan field-field untuk setiap atribut dari identifier tersebut. 

Error Handler
Error handler merupakan bagian dari compiler untuk menangani dan melaporkan jika ditemukan suatu error. 

Contoh Pseudocode.

1. Contoh Pseudocode untuk menginput tiga buah bilangan

Disini kita akan membuat pseudocode dengan menginput 3 bilangan dan menentukan bilangan terbesar, terkecil, dan rata-ratanya. berikut bentuk algoritma dalam Pseudocode:

If (A>B ; A>C) then Print “A paling besar” If (B>A ; B>C) then Print “B paling besar” Else Print “C terkecil” End if

  • Jumlah = A + B + C
    rata-rata = Jumlah / 3
    Output rata-rata

2. Contoh Pseudocode untuk mengubah satuan waktu

Disini kita akan mengubah waktu (detik, menit, dan jam) dimana dari detik ke stuan jam, dan ke satuan menit. untuk membuat Algoritma Pseudocode kita bisa memasukkan detik, menit = 60 detik, jam = 3600 detik, tampilkan menit, dan tampilkan jam.

Penulisan Pseudocode sebagai berikut:

 Read detik M = 60 s H = 3600 s Output M Output H

3. Contoh Pseudocode untuk menentukan bilangan ganjil dan genap

Sebelum kita membuat tulisan pseudocode, hal yang harus dilakukan adalah menginput sebuah bilangan, bagi bilangan yang tadi dimasukkan dengan angka dua, jika bilangannya menghasilkan sisa pembagian nol maka itu adalah genap, sedangkan jika bilangan tidak menghasilkan sisa pembagian 0 maka itu adalan bilangan ganjil.

berikut penulisan Pseudocode dalam menentukan bilangan genap dan ganjil:

Read Bilangan If bil mod 2 = 0  then, “Output Genap” Else “Output Ganjil” End if

4. Contoh Pseudocode menghitung bilangan prima dan bukan

Kita tahu bahawa bilangan prima adalah bilangan yang habis dibagi satu dan bilangan yang angkanya lebih besar dari 28 tidak memiliki kelipatan.

Deklarasi Ulang,Jumb,Sisa,Bilangan : Interger Hasil : String Deskripsisi Read (Bilangan) For (ulang = 1 to ulang <=bil.step1) sisa if (sisa=0) THEN jumB  <-jumB+1 Else jumb2) THEN Hasil <-(“Bukan bil prima”) Else Hasil <-(“Bilangan Prima”) Write (Hasil)

5. Contoh Pseudocode untuk menampilkan 4 menu

Empat menu ter diri dari: Persegi empat, Lingkaran, dan Balok, untuk penulisan pseudocode sebagai berikut:

Deskripsi WRITE (MENU) WRITE (1.PERSEGI EMPAT) WRITE (2.LINGKARAN) WRITE (3.BALOK) WRITE (4.KE

6. Contoh Pseudocode untuk menampilkan 4 menu

Empat menu ter diri dari: Persegi empat, Lingkaran, dan Balok, untuk penulisan pseudocode sebagai berikut:

Deskripsi WRITE (MENU) WRITE (1.PERSEGI EMPAT) WRITE (2.LINGKARAN) WRITE (3.BALOK) WRITE (4.KE

 

 


Tidak ada komentar:

Posting Komentar

TAHAPAN KOMPILASI

1) Tahapan Kompilasi      Compiler/ kompilasi adalah suatu program yang dapat membaca suatu Bahasa pemrograman (source language) dan kemud...