Pembentukan kode intermediate (contd) Skema transisi untuk Statement flow of control 1)S  if E then M 1 S 1 N else M 2 S 2 {backpatch(E.truelist, M 1.quad);

Slides:



Advertisements
Presentasi serupa
STATEMEN READ-DATA 10 READ A10 READ A,B,C 20 DATA 2,3,420 PRINT A,B,C 30 READ B,C30 END 35 PRINT A,B,C40 DATA 2,3,4 40 ENDOk Ok STATEMEN RESTORE 10 READ.
Advertisements

PEMROGRAMAN PASCAL STATEMEN KENDALI.
Pembentukan Kode Intermediate
Pertemuan 2 ARRAY. Salah satu Struktur Data yang teramat penting adalah Array atau Larik. Array dapat didefinisikan sebagai suatu himpunan hingga elemen,
panduan praktis belajar VISUAL BASIC 6.0
Hanya dipergunakan untuk kepentingan pengajaran di lingkungan Telkom Applied Science School MI1264 Dasar Algoritma dan.
Teknik Kompilasi Febuari 2013.
Chapter 20 Pembentukan Kode.
MATERI 9 FUNGSI REKURSIF.
Struktur Kontrol Struktur kontrol merupakan pengatur aliran program
PENYELEKSIAN KONDISI (PEMILIHAN)
BAB 9 S e a r c h i n g.
Algoritma Dasar Dalam membuat suatu program komputer, menyusun algoritma adalah langkah pertama yang harus dilakukan Dalam membuat algoritma dapat digunakan.
PERTEMUAN 2 Variabel, Ekspresi, Operator, dan Flow Control
TABEL INFORMASI / SIMBOL
TEKNIK KOMPILASI.
Situasi Saat Program Berjalan (Run-time Environment)
ARRAY Suatu array (larik) adalah tipe terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe yang sama. Komponen ini disebut dengan.
PERTEMUAN KE-5 Kamis, 7 Oktober Pemetaan Trianguler Array ABCDE FGHI JKL MN O A B C D E F G H I J K L M N O T(1,1)  S(1)T(2,1)  S(N+1) T(1,2)
Instruksi Runtutan Instruksi Pemilihan dan Instruksi Perulangan dalam Pascal Minggu XII.
Analisis Semantik.
ARRAY Suatu array (larik) adalah tipe terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe yang sama. Komponen ini disebut dengan.
Kuliah 12 Type Checking.
ARRAY 2 DIMENSI #12 STIKOM Searching Pengantar Inisialisasi Matrik
PL/SQL PROGRAMMING PL/SQL adalah prosedur berkelanjutan dari Oracle -SQL yang menawarkan satu bentuk bahasa pemrograman. PL/SQL memungkinkan user atau.
Diberikan pada Kuliah Sela Teknik Informatika - Universitas Muhammadiyah Malang Tahun 2011.
STORED PROCEDURE Achmad Yasid, SKom.
ANALISIS SEMANTIK, KODE ANTARA, DAN PEMBANGKITAN KODE
Array Multi Dimensi Nama Kelompok Angga Wahyu H( ) Devanda Riski F ( ) Irfan Satrio H ( )
Operasi Perulangan pada FORTRAN Pertemuan 6
Berdasarkan urutan array (larik) yang homogen tersebut terdapatlah batas atas (upperbound) dan dan batas bawah(lowerbound). Batas bawah merupakan elemen.
Percabangan dan Perulangan
Pertemuan 9 Strukturisasi Control Flow pada Bahasa rakitan 8088
Kuliah 22 Optimisasi Kode.
Pertemuan 11 STRUKTUR SEARCHING.
Materi Kuliah 1. Pertemuan ke : 1 Pengenalan Komputer dan Pemrograman
Materi Kuliah 1. Pertemuan ke : 1 Pengenalan Komputer dan Pemrograman
MODUL 3 PERULANGAN PERCABANGAN ARRAY
Algoritma Pemrograman 2A
Dasar-Dasar Pemrograman
TABEL INFORMASI atau TABEL SIMBOL
STRUKTUR DASAR ALGORITMA
SEMANTIKS Pertemuan Ke-3.
ARRAY DIMENSI 1 & 2.
Struktur Kontrol Struktur kontrol merupakan pengatur aliran program
Semantics Analyser Contoh : A := ( A+B) * (C+D)
created by PUTRA PUTRI DASPRO
Pseudo-code.
ANALISIS LEKSIKAL (Scanner)
REKURSI Struktur data.
AP2A Perulangan & Array PJ : Wawan Setiawan 07
Tipe data & Variabel 1. Aturan Leksikal. 2. Operator. 3. Statement
MULTIDIMENSI ARRAY Struktur Data
Struktur Pengambilan Keputusan
Tipe data & Variabel 1. Aturan Leksikal. 2. Operator. 3. Statement
Array (Larik)‏ Struktur Data 1 1.
Pengurutan (Shorting)
STRUKTUR DATA LINKED LIST
ARRAY ALGORITMA & PEMROGRAMAN 1B.
TEKNIK KOMPILASI PERTEMUAN II.
Dasar-Dasar Pemrograman
MATERI PERKULIAHAN TEKNIK KOMPILASI
Pencabangan.
PERTEMUAN KE 5 PROSES BERULANG.
CREATED BY PUTRA PUTRI DASPRO
Ilustrasi Proses Kompilasi
Teknik Optimasi by kustanto
RECORD / REKAMAN.
TEKNIK OPTIMASI & TABEL INFORMASI
CONDITION I (Tunggal – Ganda) IF - Then. Seleksi kondisi adalah proses penentuan langkah berikutnya berdasarkan proses yang terjadi sebelumnya. Bila kondisi.
Transcript presentasi:

Pembentukan kode intermediate (contd) Skema transisi untuk Statement flow of control 1)S  if E then M 1 S 1 N else M 2 S 2 {backpatch(E.truelist, M 1.quad); backpatch(E,falselist, M 2.quad); S.next := merge(S 1.nextlist, N.nextlist, S 2.nextlist)} 2)N  €{N.nextlist := makelist(nextquad); emit('goto--') 3)M  €{M.quad := nextquad}

4)S  if E then M S 1 {backpatch(E.truelist, M.quad) S.nextlist := merge(E.falselist, S 1.nextlist)} 5)S  while M 1 E do M 2 S 1 {backpath(S 1.nextlist, M 1.quad); backpath(E.truelist, M 2.quad); S.nextlist := E.falselist; emit('goto' M 1.quad)} 6) S  begin L end{S.nextlist := L.nextlist } 7) S  A{S.nextlist := makelist } 8) L  L 1 ; M S{backpath(L 1.nextlist, M.quad); L.nextlist := S.nextlist } 9) L  S{L.nextlist := S.nextlist }

Pembentukan kode intermediate (contd) A[dim A], misal ‘besarnya’ elemen dari A adalah w, maka elemen ke-I dari A dimulai pada lokasi base + (i-low) x w (*) Low = batas bawah subskrip array Base = address relatif dari storage yang dialokasikan untuk array (base adalah address relatif dari A[Low]).

Pembentukan kode intermediate (contd) Ekspresi (*) dapat diubah menjadi i x w + (base – low x w) c dapat dihitung pada waktu kompilasi dan disimpan dalam tabel simbol Jadi pada runtime A[i], addressnya dapat diperoleh dengan menambahkan i x w dengan c. Untuk dimensi >1 sebagian informasi array(c) juga datap disimpan di tabel simbol

Pembentukan kode intermediate (contd) Array dimensi 2 biasanya disimpan secara row-major(baris demi baris) atau colomn-major(kolom demi kolom). FORTRAN memakai colomn-major, Pascal memakai row- major. Jika dipakai row-major, address dari A[i 1,i 2 ] dapat dihitung dengan formula base + ((i 1 - low 1 ) x n 2 + i 2 – low 2 ) x w(+) Dimana low 1 adalah batas bawah dari i 1 low 2 adalah batas bawah dari i 2 n 2 = high 2 – low high2 = batas atas dari i 2

Pembentukan kode intermediate (contd) (+) Bisa ditulis sebagai (( i 1 x n 2 ) x w + (base-((low 1 x n 2 ) +low 2 ) x w) dapat dihitung pada waktu kompilasi Secara umum, untuk dimensi k, A[i 1,i 2,i 3,…,i k ] dapat ditentukan address relatifnya sbb : ((…(i 1 n 1 + i 2 )n 3 + i 3 )…)n k + i k ) x w + base(…((low 1 n 2 + low 2 )n 3 + low 3 )…)n k + low k ) x w Dimana n j = high j – low j + 1,  j