Langsung ke konten utama

Compatibiliy Mode

Buku Referensi Teknik Kompilasi

1.    Firrar Utdirartatmo, Teknik Kompilasi,Graha Ilmu, 2005

2.    Jean Paul Tremblay & Paul G Sorenson, The Theory and Practice of Compiler Writing, McGraw Hill, 1985

Isi Materi 1 :

q  Pengertian Teknik Kompilasi

q  Manfaat Teknik Kompilasi

q  Compiler

q  Interpreter

q  Tahapan Teknik Kompilasi

Pengertian Teknik Kompilasi

Teknik :

Metode atau Cara Kompilasi:

Proses menggabungkan serta menterjermahkan sesuatu (source program) menjadi bentuk lain Teknik kompilasi dapat diartikan metode proses menggabungkan serta menteremahkan sesuatu (source program) menjadi bentuk lain

Manfaat Teknik Kompilasi :

q  Membuat compiler

q  Membuat interpreter

Compiler adalah suatu program yang menerjemahkan bahasa program ( source code) kedalam bahasa objek (obyek code). Compiler menggabungkan keseluruhan bahasa program, mengumpulkannya dan kemudian menyusunnya kembali.

Complier memerlukan waktu untuk membuat suatu program dapat di eksekusi oleh computer, program yang dieksekusi oleh compiler adalah dapat berjalan lebih cepat disbanding program yang diperoduksi oleh interpreter, disamping itu juga bersifat independen. Contoh program yang menggunakan compiler adalah Visual Basic, Borland Delphi.

Proses compiler



Interpreter adalah Perangkat lunak yang mampu mengeksekusi code program (yang ditulis oleh programmer) lalu menterjemahkannya ke dalam bahasa mesin, sehingga mesin melakukan instruksi yang diminta oleh programmer tersebut. Perintah-perintah yang dibuat oleh programmer tersebut dieksekusi baris demi baris, sambil

mengikuti logika yang terdapat di dalam kode tersebut. Proses ini sangat berbeda dengan compiler, dimana pada compiler, hasilnya sudah langsung berupa satu kesatuan perintah dalam bentuk bahasa mesin, dimana proses penterjemahan dilaksanakan sebelum program tersebut dieksekusi.

Java dijalankan menggunakan interpreter yaitu Java Virtual Machine (JVM). Hal ini menyebabkan source code Java yang telah dikompilasi menjadi

Java bytecodes dapat dijalankan pada platform yang berbeda-beda. Proses Interpreter





Tahapan Teknik Kompilasi :




xampp-win32-1.8.0.

 

Analisis leksikal merupakan bagian dari kompilasi yang menerima input berupa aliran karakter kemudian memilah program sumber menjadi besaran leksikal yang disebut dengan token. Token ini akan menjadi input bagi parser.

Scanner merupakan antarmuka antara program sumber dan analisa sintaks(parser).

Scanner melakukan pemeriksaan karakter per karakter dari teks masukan,memecah program sumber menjadi bagian-bagian terkecil yang disebut dengan token. Token adalah satuan terkecil dari bahasa sumber yaitu deretan karakter terpendek yang mengandung arti.

Token dapat dikelompokan menjadi beberapa jenis sebagai berikut

 

1.  variabel

2.  Konstanta

3.  Keyword

4.  Operator

5.  Delimiter

Untuk memahami proses analisis leksikal akan diberikan beberapa contoh sebagai berikut :

1.      Diketahui sumber teks  adalah 2x+5

Isi teks terdiri dari token konstanta dan variabel Tahap pertama proses analisis leksikal :

1.  Pembacaan sumber teks dengan merunut karakter demi karakter.


Dengan kode program php berikut, dapat membaca isi karakter teks.

<?php

print"<p style=\"margin-top:100px\">"; print "<div align=\"center\">";

print "<font size=\"6\">Program Analisis Leksikal</font>"; print"<br>";

print"<br>";

print "<form action=\"leksikal.php\" method=\"post\" name=\"input\">";

print "<font size=\"6\">Isi teks</font><input type=\"text\" name=\"teks\" size=\"40\" style=\"height:40px;font-size:30px\" >";

print"<br>"; print"<br>";

print "<input type=\"submit\" name=\"proses\" value=\"Proses\" style=\"height:40px;font- size:20px\" >";

print"<br>"; print"</form>"; if ($_POST)

{

$x=$_POST["teks"];

$kode=0; for($i=0;$i<strlen($x);$i++)

{

$y=substr($x,$i,1); print "<h2>$y</h2>";

}

}

?>

Simpan kode program dengan nama file leksikal.php. Screen shoot input program tersebut :



Sedangkan screen shoot output program :


 




Tahap kedua dari analisis leksikal

2.   Mengelompokan karakter-karakter tersebut menjadi bentuk token dan mengidentifikasi token tersebut

Dengan kode program php berikut, dapat mengelompokkan karakter karakter-karakter tersebut menjadi bentuk token dan mengidentifikasi token tersebut.variabel dan konstanta.

<?php

print"<p style=\"margin-top:100px\">"; print "<div align=\"center\">";

print "<font size=\"6\">Program Analisis Leksikal</font>"; print"<br>";

print"<br>";

print "<form action=\"leksikal2.php\" method=\"post\" name=\"input\">";

print "<font size=\"6\">Isi teks&nbsp&nbsp</font><input type=\"text\" name=\"teks\" size=\"40\" style=\"height:40px;font-size:30px\" >";

print"<br>"; print"<br>";

print "<input type=\"submit\" name=\"proses\" value=\"Proses\" style=\"height:40px;font- size:30px\" >";

print"<br>"; print"</form>";

 

if ($_POST)

{

$x=$_POST["teks"];

$kata='';

$m=0; for($i=0;$i<=strlen($x);$i++)

{

$karakter=substr($x,$i,1); if(ord($karakter)<>32)


{

 

 

if (((ord($karakter)>=65) and (ord($karakter)<=90)) or ((ord($karakter)>=97) and (ord($karakter)<=122))or

((ord($karakter)>=48) and (ord($karakter)<=57)))

$kata=$kata.substr($x,$i,1);

else

if((substr($x,$i,1)=='+') or (substr($x,$i,1)=='*'))

{

 

 

if ($kata<>'')

{

$kode=0;

$kode2=0;

 

 

for($j=0;$j<strlen($kata);$j++)

{

$karakter=substr($kata,$j,1);

if ((ord($karakter)>=48) and (ord($karakter)<=57))

 

 

$kode=$kode+1; else

$kode2=$kode2+1;

}

if (($kode>=1) and ($kode2==0))

{

$m=$m+1;

$nt[$m]=$kata;

$jt[$m]='konstanta';

$kata='';

}

 

 

if (($kode2>=1) and ($kode==0))

{

$m=$m+1;

$nt[$m]=$kata;

$jt[$m]='variabel';

$kata='';

}


if (($kode2>=1) and ($kode>=1))

{

$m=$m+1;

$nt[$m]=$kata;

$jt[$m]='tidak dikenal';

 

 

$kata='';

}

 

 

}

$m=$m+1;

$nt[$m]=substr($x,$i,1);

$jt[$m]='operator';

 

 

}

else

{

 

 

if ($kata<>'')

{

$kode=0;

$kode2=0;

 

 

for($j=0;$j<strlen($kata);$j++)

{

$karakter=substr($kata,$j,1);

if ((ord($karakter)>=48) and (ord($karakter)<=57))

 

 

$kode=$kode+1; else

$kode2=$kode2+1;

}

if (($kode>=1) and ($kode2==0))

{

$m=$m+1;

$nt[$m]=$kata;

$jt[$m]='konstanta';

$kata='';

}


if (($kode2>=1) and ($kode==0))

{

$m=$m+1;

$nt[$m]=$kata;

$jt[$m]='variabel';

$kata='';

}

if (($kode2>=1) and ($kode>=1))

{

$m=$m+1;

$nt[$m]=$kata;

$jt[$m]='tidak dikenal';

 

 

$kata='';

}

 

 

}

if (ord(substr($x,$i,1))<>32)

{

$m=$m+1;

$nt[$m]=substr($x,$i,1);

$jt[$m]='tidak dikenal';

}

 

 

}

 

 

}

else

{

if ($kata<>'')

{

$tanda=0;

$tanda2=0;

for($i=0;$i<strlen($kata);$i++)

{

$karakter=substr($x,$i,1);

if ((ord($karakter)>=48) and (ord($karakter)<=57))

{


$kode=1;

$tanda=$tanda+1;

}

else

{

$kode=0;

$tanda2=$tanda2+1;

}

}

if (($kode==1) and ($tanda==0))

{

$m=$m+1;

$nt[$m]=$kata;

$jt[$m]='konstanta';

$kata='';

}

else

if (($kode==0) and ($tanda2==0))

{

$m=$m+1;

$nt[$m]=$kata;

$jt[$m]='variabel';

$kata='';

}

else

{

$m=$m+1;

$nt[$m]=$kata;

$jt[$m]='tidak dikenal';

$kata='';

}

 

 

}

}

 

 

}

print "<h1>Daftar Token</h1>";

print "<table border=\"1\" width=\"800\">";


print "<tr><td width=\"70\"><h1>Nomor</h1></td><td><h1>Nama Token</h1></td><td><h1>Jenis Token</h1></td></tr>"; for($k=1;$k<=$m;$k++)

if ($nt[$k]<>'')

print "<tr align=\"center\"><td width=\"70\"><h1>$k</h1></td><td><h1>$nt[$k]</h1></td><td><h1>$jt[$k]</h1></td></tr>"; print"</table>";

}

?>

Simpan kode program dengan nama file leksikal2.php. Screen shoot input program tersebut :

Sedangkan screen shoot output program :


 

Program dapat juga mengidentifikasi bila ada token yang tidak dikenal. Contoh diketahui isi teks 2x+5. Maka 2x adalah token yang tidak dikenal Screen shoot input program :


 

Sedangkan screen shoot output :


 

Program dapat juga mengidntifikasi jika karakter konstanta lebih dari atau karakter variabel lebih dari 1

Input dan output masing-masing kasus dapat ditampilkan di bawah : Screen Shoot Input :


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Screen Shoot Output :


 

Screen Shoot Input


 

Screen Shoot Output :


 

 

 

 

 

 

Screen Shoot Input :


 

Screen Shoot Output :


Komentar

Postingan populer dari blog ini

Jelajahi layanan data relasional di Azure

  Perkenalan Selesai Database adalah kumpulan data. Database bisa sesederhana spreadsheet desktop, atau serumit sistem global yang memegang petabyte informasi yang sangat terstruktur. Data dapat disusun dengan berbagai cara. Pendekatan umum adalah menyimpan data dalam format tabular, dengan baris dan kolom. Anda dapat menentukan hubungan antara tabel. Database ini disebut database  relasional. Database juga dapat semi-terstruktur atau tidak terstruktur, yang terdiri dari data semi-diproses atau tidak diproses. Database ini biasanya disebut sebagai  non-relasional.  Database dikelola menggunakan sistem manajemen database (DBMS). DBMS menangani aspek fisik dari database, seperti di mana dan bagaimana disimpan, siapa yang dapat mengaksesnya, dan bagaimana memastikan bahwa itu tersedia bila diperlukan. Banyak organisasi bergantung pada informasi yang tersimpan dalam database mereka untuk membantu membuat keputusan bisnis yang penting. Di masa lalu, organisasi-organisasi ...

Jelaskan konsep data relasional

Perkenalan Selesai Pada tahun-tahun awal database, setiap aplikasi menyimpan data dalam struktur uniknya sendiri. Ketika pengembang ingin membangun aplikasi untuk menggunakan data itu, mereka harus tahu banyak tentang struktur data tertentu untuk menemukan data yang mereka butuhkan. Struktur data ini tidak efisien, sulit dipertahankan, dan sulit dioptimalkan untuk memberikan kinerja aplikasi yang baik. Model database relasional dirancang untuk memecahkan masalah beberapa struktur data sewenang-wenang. Model relasional menyediakan cara standar untuk mewakili dan query data yang dapat digunakan oleh aplikasi apapun. Sejak awal, pengembang mengakui bahwa kekuatan utama dari model database relasional adalah dalam penggunaan tabel, yang merupakan cara intuitif, efisien, dan fleksibel untuk menyimpan dan mengakses informasi terstruktur. Model relasional sederhana namun kuat digunakan oleh organisasi dari semua jenis dan ukuran untuk berbagai kebutuhan manajemen informasi. Database relasional...

Cara Merawat Wajah Secara Alami

cara merawat wajah secara alami , anda dapat mencoba beberapa tips berikut ini. 1. Basuh wajah dengan air Untuk menghilangkan kotoran yang dapat menyebabkan berbagai masalah kulit wajah ada baiknya anda rutin membasuh wajah dengan air mengalir setelah berpergian maupun beraktifitas diluar ruangan. Setelah itu keringkan wajah dengan handuk yang bersih dan lembut. Ada baiknya pula berikan pemijatan secara perlahan saat membasuh wajah guna memperlancar peredaran darah. 2. Jangan biasakan menyentuh wajah dengan tangan kotor Jika anda terbiasa menyentuh wajah dengan tangan, mulai sekarang hindari kebiasaan tersebut. Jika memang harus menyentuh kulit wajah ada baiknya cuci tangan terlebih dulu agar wajah terbebas dari kotoran dan bakteri. 3. Gunakan pelembab Apabila anda ingin beraktifitas diluar ruangan tidak ada salahnya memakai pelembab wajah guna melindungi kulit dari sinar ultraviolet atau UV yang dapat menyebabkan flek hitam dan masalah wajah lainnya. 4. Gunakan masker alami secara rut...