TUGAS MATA KULIAH TEKNIK KOMPILASI

dokumen-dokumen yang mirip
Perjalanan sebuah intruksi

TEKNIK OPTIMASI. Dependensi Optimasi. Optimasi Lokal. Menghasilkan kode program dengan ukuran yang lebih kecil, sehingga lebih cepat eksekusinya.

TABEL INFORMASI / SIMBOL

Teknik Optimasi. Teknik Kompilasi Dosen: Utami Dewi W.,S.Kom

Teknik optimasi. Teknik optimasi kode program Tujuan: menghasilkan kode program yang berukuran lebih kecil dan lebih cepat pada saat dieksekusi.

Tabel Informasi. Hal di atas dapat dilakukan dengan menambah dan mengambil atribut identifier yang digunakan pada program, melalui tabel informasi.

TEKNIK KOMPILASI. Muhamad Nursalman Ilmu Komputer FPMIPA - UPI

Teknik Kompiler 11. oleh: antonius rachmat c, s.kom

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN

STRUKTUR PROGRAM. Secara ringkas, struktur suatu program Pascal dapat terdiri dari : 1.Judul Program 2.Blog Program a.

Alat bantu (tools) dalam pembuatan parser/ analisis sintaksis. Menggunakan simbol persegi panjang untuk non terminal

Kesalahan Program dapat berupa

MK. PEMROGRAMAN SISTEM Semester/SKS : 6/3 COMPILER. Jurusan Sistem Komputer S1 Universitas Gunadarma

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

Teknik Kompiler 8. oleh: antonius rachmat c, s.kom

PENGERTIAN VARIABEL, KONSTANTA DAN TIPE DATA

VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C

Struktur Data. Belajar Struktur Data Menggunakan Pascal Pertemuan-1

OPERASI PERNYATAAN KONDISI

Fase-fase proses sebuah kompilasi

BAB 7 Java Array. Sebagai contoh, kita memiliki tiga variabel dengan tipe data int yang memiliki identifier yang berbeda untuk tiap variabel.

SMA SANTO PAULUS PONTIANAK

Lab. Teknik Informatika Struktur Data 1

Teori Algoritma. Struktur Algoritma

SATUAN ACARA PERKULIAHAN MATA KULIAH PEMROGRAMAN PASCAL * (TK) KODE / SKS: KK /2 SKS

PERTEMUAN 2 ALGORITMA & PEMROGRAMAN

JAVA BASIC PROGRAMMING Joobshet

Tipe Data. Definisi Tipe Data

MODUL 1. Struktur Bahasa PASCAL secara umum

Hirarki Comsky. Unrestricted. Context Sensitive Context free Regular

STRUKTUR BAHASA PEMROGRAMAN

Memulai Pemrograman Pascal dengan Delphi Console 1. Buka aplikasi delphi 2. Pilih File New Other Console Application

DASAR PEMROGRAMAN. Institut Teknologi Sumatera

ANALISIS SEMANTIK. Teknik Kompilasi Dosen: Utami Dewi W.,S.Kom

Aplikasi Rekursif dalam Analisis Sintaks Program

SUMBER BELAJAR PENUNJANG PLPG

Modul Praktikum 4 Pemograman Berorientasi Objek

SEMANTIK. Int vector[10];

PENDAHULUAN. Brigida Arie Minartiningtyas, M.Kom

BAB 7. Sebagai contoh, kita memiliki tiga variabel dengan tipe data int yang memiliki identifier berbeda untuk tiap variabel.

Cara pertama adalah pada saat deklarasi variabel ditambahkan ke- yword const sebelum nama tipe data seperti

Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom

Universitas gunadarma. pascal. Bab 4- bab 10. Hana Pertiwi S.T

ALUR PROGRAM. SELEKSI KONDISI Statement If a. Bentuk If tunggal sederhana Sintaks : if ( kondisi ) statement ;

Objek Data, Variabel, dan Konstanta. Konsep Bahasa Pemrograman Materi 4 Yudianto Sujana, M.Kom

Struktur Data. Pertemuan 2

Lecturer: Abdusy Syarif. Undergraduate Course Informatics Engineering Dept. Universitas Mercu Buana. Tipe Data

Pengenalan Pascal. Sejarah Singkat Pascal

Algoritma dan Struktur Data

Pengenalan C++ Oleh : Dewi Sartika

dengan menyebutkan judul prosedurnya. dalam bentuk prosedur-prosedur. diperlukan.

ARRAY. Larik / array adalah tipe terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe yang sama.

Kuliah Online : TEKKOM [2013/VI]

TIPE DATA, VARIABLE, dan OPERATOR DELPHI

ALGORITMA (KOMPUTER) : ATURAN PENULISAN DAN STRUKTUR DASARNYA

Teori Algoritma TIPE DATA

Konsep Dasar Pemrograman

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

Modul Praktikum Bahasa Pemrograman 1

KONSEP DASAR BAHASA PASCAL

Dasar Komputer & Pemrogaman 2A

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

PROSES PENJUALAN BUKU

TEKNIK KOMPILASI Tony Darmanto,ST / Smt V S1 TI / STMIK WIDYA DHARMA/ Hal 1

Contoh soal Struktur Program Pascal (Seleksi tingkat propinsi TOKI 2004)

PROCEDURE. Bentuk Umum : PROGRAM judul_program ; PROCEDURE judul_prosedur ; Begin Statement prosedur ; End ; Begin Statement program utama ; end.

Pengenalan Pascal/DevPascal

MODUL 6 PERULANGAN. A. String. 1. Instansiasi dan Inisialisasi. M0601xxyyy.jar

Modul PVB-POLINEMA V1.0

Belajar itu, Tidak harus menunggu materi dari guru Inisiatif Mencari itulah BELAJAR.

STRUKTUR KONTROL. Struktur WHILE-DO Mempunyai struktur sebagai berikut : Bentuk Umum : WHILE condition Do statement Bentuk Proses (flow chart) :

.::BAB II.::MENGENAL PASCAL

Kesalahan Program Penanganan Kesalahan Reaksi Compiler Pada kesalahan Error Recovery Error repair

FUNGSI. Blok fungsi juga diawali dengan kata cadangan Begin dan di akhiri dengan kata cadangan End dan titik koma.

KOMPILASI. Assembler Bahasa Rakitan Bahasa Mesin Compiler (Kompilator) Bahasa Tingkat Tinggi Bahasa tingkat rendah

PEMROGRAMAN BERORIENTASI OBJEK

Proses Kompilasi. Otomata dan Pengantar Kompulasi Pertemuan 3

Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak

Konstruksi Dasar Algoritma

Bab III Semantik. Konsep Semantik Bahasa Pemrograman (Semantik Analisis)

Tipe Data dan Operator

Chapter 3.2 : Tipe, Nama dan Nilai

Struktur Data. Belajar Struktur Data Menggunakan Pascal Pertemuan-5

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 1 & 2

Pertemuan 4 KONSEP TIPE DATA

Pert 3: Algoritma Pemrograman 1 (Alpro1) 4 sks. By. Rita Wiryasaputra, ST., M. Cs.

PRAKTIKUM 7 TIPE DATA TERSTRUKTUR. Larik : deretan data yang punya type data sejenis. Misalnya : Daftar Nomor Telpon, Tabel Pajak dll.

Konsep Dasar Pemrograman Pascal

Konsep Dasar Pemrograman Dan Pengenalan C++

Bab 1 Pengenalan Pascal 1 BAB I PENGENALAN PASCAL, TIPE-TIPE DATA PASCAL DAN STATEMEN DASAR PADA PASCAL TUJUAN PRAKTIKUM TEORI PENUNJANG

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER STMIK AMIKOM YOGYAKARTA

ARRAY. contoh : A[1] := 10; var A : array[1..10] of integer; A[nomer_indeks]

Array Pendeklarasian Array

TEKNIK KOMPILASI PERTEMUAN Ke 4 dan 5 Abdul Muis Mappalotteng ANALISIS SEMANTIK

1/8/2011. Pertemuan 13-14: Dasar Pemrograman. Sub pokok bahasan. Program Komputer dan Bahasa Pemrograman. Program Komputer dan Bahasa Pemrograman

BAB IV HASIL PENELITIAN DAN PENERAPAN

Struktur Data. PDE - Struktur Data 1


Tipe data primitif adalah tipe data dasar yang dikenali oleh Java dan bukan merupakan class. Tipe data primitif ini dapat dikenali dengan ciri

Transkripsi:

TUGAS MATA KULIAH TEKNIK KOMPILASI TEKNIK OPTIMASI DAN TABEL INFORMASI DOSEN : HARUN MUKHTAR,M.KOM Nama : Walter Sitio NIM : 080403019 Jurusan : Teknik Infomatika UNIVERSITAS MUHAMMAHDIYAH RIAU

Teknik Optimasi Teknik Optimasi terdiri dari 3 jenis, yaitu : Dependensi Optimasi Optimasi Lokal Optimasi Global Dependensi Optimasi Dependensi Optimasi bertujuan untuk menghasilkan kode program yang berukuran lebih kecil dan lebih cepat Machine Dependent Optimizer Machine Independent Optimizer (Optimasi lokal dan Optimasi global) Optimasi Lokal Optimasi Lokal : adalah optimasi yang dilakukan hanya pada suatu blok dari source code, dengan cara: Folding menganti konstata atau ekpresi yang bisa dengan nilai komputasinya. Misalnya: A := 2 + 3 + B bisa diganti dengan A:= 5 + B 5 dapat mengantikan ekspresi 2 + 3 Redundant-Subexpression Elimination dievaluasi pada saat compile time hasilnya digunakan lagi dari pada dilakukan computasi ulang, contoh: A:= B + C X := Y + B + C Optimasi dalam sebuah Iterasi Loop Unrrolling:Menganti suatu loop dengan menulis statement yang ada dalam loop ditulis beberapa kali Karena sebuah iterasi pada implemnetasi ke level rendah, memerlukan : Inisialisasi nilai awal, pada loop dilakukan sekali pada saat permulaan eksekusi loop

Penge-test-an, apakah variabel loop telah mencapai kondisi terminasi Adjustment yaitu: penambahan atau pengurangan nilai pada variabel loop dengan jumlah tertentu Operasi yang terjadi pada tubuh perulangan (loop body) Contoh : FOR I := 1 to 2 DO A[I] := 0; dapat dioptimasikan menjadi A[1] := 0; A[2] := 0; Frequency Reduction: Pemindahan statement ke tempat yang lebih jarang dieksekusi, contoh FOR I:= 1 to 10 DO X := 5 BEGIN FOR I:= 1 to 10 DO X := 5 BEGIN A := A + 1 A := A + 1 END: END: Strength Reduction Penggantian suatu operasi dengan operasi lain yang lebih cepat dieksekusi misalnya: pada komputer operasi perkalian memerlukan waktu eksekusi lebih banyak dari pada operasi penjumlahan contoh lain A:= A + 1 dapat digantikan dengan INC(A) Optimasi global biasanya dilakukan dengan suatu graph terarah yang menunjukkan jalur yang mungkin selama eksekusi program ada dua kegunaan yaitu bagi programmer dan compiler itu sendiri Bagi Programmer

Unreachable/dead code: Kode yang tidak pernah dieksekusi misalnya : X := 5; IF X = 0 THEN A := A + 1 Instruksi A := A + 1 tidak pernah dikerjakan Unused parameter : parameter yang tidak pernah digunakan dalam procedure Misalnya : procedure penjumlahan(a,b,c ; Integer); var x : integer; x := a + b; end Parameter c tidak pernah digunakan sehingga tidak perlu diikut sertakan Unsused Variabel : variabel yang yang tidak pernah dipergunakan Program pendek; var a, b: integer a := 5; end; B tidak pernah digunakan Variabel : variabel yang dipakai tanpa nilai awal. Contoh Program Awal; var a, b: integer a := 5 a := a + b;

end; variabel b digunakan tetapi tidak memiliki harga awal Bagi Compiler Meningkatkan efisiensi eksekusi program Menghilangkan useless code/kode yang tidak terpakai var A, B, C, D, E, I, J, X, Y : integer; B := 5; A := 10 - B / 4 * 3 + 2; C := A + B; Y := 10; D := A + B E; for I := 1 to 85 do X := X + 1; B := B X; Y := 7; end While Y< 5 do E := E B; end Dua fungsi penting Tabel Informasi Tabel Informasi Untuk membantu pemeriksaan kebenaran semantik dari program sumber Untuk membantu dan mempermudah dalam pembuatan intermediate code dan proses pembuatan kode-kode (pembangkitan kode) Secara umum, sebuah tabel simbol bisa memiliki elemen-elemen tabel sebagai berikut, meskipun tidak semuanya dipergunakan oleh semua compiler No.urut identifier: menentukan nomor urut pada tabel simbol

Nama identifier Tipe identifier Object time address Dimensi dari identifier yang bersangkutan Nomor baris variabel yang dideklarasikan Nomor baris variabel yang direferensikan Field link Tabel Informasi : Implementasi Ada beberapa jenis Tabel Informasi Tabel identifier; berfungsi menampung semua identifier yang terdapat dalam program Tabel Array: berfungsi menampung informasi tambahan untuk sebuah array Tabel blok: mencatat varibel-variabel yang ada pada blok yang sama Tabel Real: Menyimpan elemen tabel bernilai real Tabel string: menyimpan informasi string Tabel display: mencatat blok yang aktif Tabel Identifier memiliki; No Urut identifier dalam tabel Nama Identifier Jenis dari identifier; seperti Prosedur, fungsi, tipe variabel dan konstanta Tipe dari identifier yang bersangkutan; seperti Integer (bilangan bulat), Char, boolean, array, record, file level dari identifier (depth of block); hal ini menyangkut letak identifier dalam program, konsepnya sama dengan pembentukan tree, misalnya main program level 0 Untuk identifier, pencatatan dapat berupa seperti; Alamat relatif/address dari identifier untuk implementasi

Informasi referensi dari identifier terntentu ke alamat tabel identifier yang lainnya link; menghubung antar identifier Normal: digunakan pada pemanggilan parameter, untuk membedakan parameter by value dan by reference Contoh (dalam pascal) Program A; Var B : Integer; Procedure X (Z: char) var C : Integer...dst Tabel identifier akan mencatat semua identifier; 1 A 2 B 3 X 4 Z 5 C TabIe: Array [0..tabmax] of record nama : String; link : integer; Obj : object; Tipe : Types; ref : Integer; normal: Boolean; Level : 0.. Maxlevel; address : Integer; End Dimana objek =(konstant, variabel, prosedur, fungsi)

Types = (notipe, int, reals, booleans, chars, arrays, record Tabel Array dipergunakan untuk menyimpan informasi suatu identifier yang bertipe array, tabel ini memilik field: No. Urut suatu array dalam tabel Tipe dari indeks array yang bersangkutan Tipe element array Referensi dari elemen array Index batas atas dan bawah array Jumlah elemen array Ukuran total array (total = atas - bawah + 1) x elemen size Elemen size Tabel Blok Dipergunakan untuk menyimpan informasi blok-blok yang ada pada tabel utama. Berisikan field no urut blok batas awal blok batas akhir blok ukuran parameter/parameter size ukuran variabel/ variabel size last variabel last parameter Contoh Program A Var B : Integer; Procedure X (Z:char); Var C : Integer;

... Untuk Blok A Blok B last variable = 2 4 Variable size = 2 (dianggap int 2 byte) 2 Last parameter = 0 (tanpa parameter) 3 parameter size = 0 1 (char butuh 1 byte) Tabel Real Dipergunakan untuk menyimpan nilai dari suatu identifier yang bertipe real (pecahan). Elemen-elemen dari tabel ini adalah sebagai berikut; NO urut elemen Nilai real suatu variabel real yang mengacu ke indeks tabel ini Pemikirannya disini setiap tipe yang memiliki oleh suatu bahasa akan memiliki tabelnya sendiri Tabel String Dipergunakan untuk menyimpan informasi string yang terdapat pada program sumber. Elemen-elemen yang terdapat dalam tabel ini adalah: no Urut elemen Karakter-karakter yang merupakan konstanta Tabel Display menyimpan informasi-informasi mengenai blok-blok yang lagi aktif. Elemenelemen yang terdapat dalam tabel ini adalah: No Urut tabel Blok yang aktif Pengisian tabel display dilakukan dengan konsep stack