Situasi Saat Program Berjalan (Run-time Environment)

Slides:



Advertisements
Presentasi serupa
PROCEDURE Temu IX BANGHER.
Advertisements

Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Syiah Kuala
TURUNAN/ DIFERENSIAL.
Pemrograman Terstruktur
Sistem Operasi (pertemuan 1) Memori Razief Perucha F.A
BAB IV MATRIKS (ARRAY MULTI DIMENSI)
Perancangan Basis Data Basis Data.  mahasiswa memahami tahap-tahap perancangan basis data 2 TIK •mahasiswa mengetahui bagaimana menentukan dan menempatkan.
Pertemuan 6 (Organisasi Input/Output)
FUNGSI / FUNCTION ALGPROG II
Procedure pada Pascal ALPROG II
Struktur Sistem Komputer
Menempatkan Pointer Q 6.3 & 7.3 NESTED LOOP.
Dasar Komputer & Pemrog 2 A minggu 5. PROCEDURE DAN FUNCTION Procedure dan Function adalah suatu program yang terpisah dalam blok sendiri Dan memiliki.
PROCEDURE  PROCEDURE   Prosedur diawali dengan kata cadangan Procedure di dalam bagian deklarasi prosedur. Prosedur dipanggil dan digunakan di dalam blok.
PROSEDUR DAN FUNCTION PROSEDUR
Sistem Operasi (pertemuan 7) Memori Razief Perucha F.A Jurusan Informatika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Syiah Kuala
Pemrograman Dasar[PTI-15001] 2012
Pembentukan Kode Intermediate
Silahkan Salin Jawaban Anda DiKertas Sertakan : NIM. : Nama. : Kelas
Chapter 7 Penguraian LR.
Subprogram Program kecil yang melakukan tugas tertentu dan merupakan bagian dari program secara keseluruhan Keuntungan : Mudah dikodekan Mudah dipahami.
FUNGSI Deklarasi dan Definisi fungsi Void dan Non-void Fungsi main.
KETENTUAN SOAL - Untuk soal no. 1 s/d 15, pilihlah salah satu
bentuknya, yang dapat berubah pada saat runtime.
Array Dimensi Banyak Gerlan A. Manu, ST.,MKom
Linked List BEBERAPA CONTOH SOAL 6.3 & 7.3 NESTED LOOP.
Materi Kuliah Kalkulus II
Chapter 20 Pembentukan Kode.
Pertemuan 3 RECORD.
Rekaman – Record Pada Pascal
Struktur Perulangan Week 4 & 5.
RECORD.
Luas Daerah ( Integral ).
Algoritma dan Struktur Data
Pertemuan 3 Arsitektur Komputer II
PERTEMUAN KE 9 MENU TUNGGAL.
FUNGSI MATEMATIKA DISKRIT K- 6 Universitas Indonesia
Chapter 3.2 : Tipe, Nama dan Nilai
Pemrograman Terstruktur
Pemrograman Visual Tipe Data dan Operator
Push Down Automata (PDA)
Pohon Urai (parse) dan Derivasi
TABEL INFORMASI / SIMBOL
Web Teknologi 2Minggu …3… Page 1 MINGGU Ke Tiga Pemrograman Visual 2 Pokok Bahasan: Dasar-dasar Pengembangan Web ASP.NET Tujuan Instruksional Khusus:
Tipe Data Terstruktur Larik Karakteristik
Record (Rekaman) Nurdiansah PTIK 09 UNM.
FUNGSI STRUKTUR DISKRIT K-8 Program Studi Teknik Komputer
SISTEM PAGING.
Dasar Pemrograman ARRAY/LARIK.
1 Pointer wijanarto. 2 Topik Introduction to Pointers Pointers dan Parameter Fungsi.
Memori dan Scope Variabel
Algoritma Pergantian Halaman
Kompleksitas Algoritma
Kompleksitas Waktu Asimptotik
WISNU HENDRO MARTONO,M.Sc
Proses Oleh : Wahyu Andhyka Kusuma
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M
Procedure & Function Sub Program.
Kuliah 12 Type Checking.
PROSEDUR.
Procedure , Function dan Parameter
DASAR PEMOGRAMAN MODULAR DESIGN DASAR PEMOGRAMAN KELOMPOK 5 UNIVERSITAS BRAWIJAYA.
PROCEDURE DAN FUNCTION
Procedure.
PROCEDURE AND FUNCTION
BAB 6 FUNGSI DAN PROSEDUR.
Tabel Informasi/ Tabel Simbol
TABEL INFORMASI atau TABEL SIMBOL
Fungsi.
BAB 6 SUB PROGRAM.
Transcript presentasi:

Situasi Saat Program Berjalan (Run-time Environment) Kuliah 13 Situasi Saat Program Berjalan (Run-time Environment) run time environtment

Situasi Saat Program Berjalan (Run-time Environment) Masalah-masalah bahasa sumber. Susunan storage. Teknik-teknik alokasi storage. Akses terhadap nama non lokal. Pengiriman parameter (parameter passing). run time environtment

Masalah-masalah Bahasa Sumber Suatu definisi prosedur  suatu deklarasi yang menghubungkan suatu identifier dengan suatu statement. Identifier tersebut merupakan nama prosedur dan statementnya merupakan badan prosedur. Lihat Contoh code: baris 3-7 merupakan definisi suatu prosedur yang bernama readarray; badannya pada baris 5-7. run time environtment

Masalah-masalah Bahasa Sumber Fungsi  prosedur yang menghasilkan nilai. Prosedur dikatakan dipanggil (called) jika ia muncul pada statement yang dapat dieksekusi. Pemanggilan dilakukan dengan mengeksekusi badan prosedur yang dipanggil. Beberapa id pada definisi prosedur bersifat spesial dan disebut parameter formal (formal) suatu prosedur. run time environtment

Masalah-masalah Bahasa Sumber Argumen (parameter aktual) dapat dikirimkan ke prosedur yang dipanggil. Aktual ini akan menggantikan formal di dalam prosedur. Contoh: m dan n pada baris 12 adalah formal; i + 1 dan n pada baris 18 adalah aktual. run time environtment

Pohon Aktivasi Jalannya kendali di antara beberapa prosedur pada saat program dieksekusi: Kendali (kontrol) berjalan secara sekuensial; maksudnya eksekusi suatu program terdiri dari sebarisan langkah, pada setiap langkah kendali berada pada titik tertentu dalam program. Masing-masing eksekusi suatu prosedur dimulai pada awal badan prosedur dan akhirnya mengembalikan kendali pada suatu tempat tepat setelah prosedur itu dipanggil. run time environtment

Pohon Aktivasi Eksekusi suatu badan prosedur sering juga disebut sebagai aktivasi suatu prosedur. “Waktu hidup (lifetime)” suatu aktivasi prosedur p adalah sebarisan langkah-langkah antara langkah pertama dan terakhir, termasuk langkah yang dibutuhkan pada prosedur yang dipanggil. run time environtment

Pohon Aktivasi Jika A dan B adalah prosedur aktivasi, maka waktu hidupnya akan tidak saling tindih (non-over lapping) atau nested (jika B dimasuki sebelum A ditinggalkan, maka kendali harus meninggalkan B sebelum meninggalkan A). Untuk melihat bagaimana sifat nested bekerja, sisipkan statement print 'masuk' pada awal badan prosedur, dan 'keluar' pada akhir badan prosedur. run time environtment

Situasi Saat Program Berjalan (Run-time Environment) ...... keluar quicksort(5, 9) keluar quicksort(1, 9) Eksekusi selesai Eksekusi mulai... masuk readarray masuk quicksort(1, 9) masuk partition(1, 9) keluar partition(1, 9) masuk quicksort(1, 3) ...... keluar quicksort(1, 3) masuk quicksort(5, 9) run time environtment

Situasi Saat Program Berjalan (Run-time Environment) Suatu prosedur dikatakan rekursif, jika suatu aktivasi yang baru dapat dimulai sebelum aktivasi prosedur tersebut berakhir. run time environtment

Pohon Aktivasi Pohon aktivasi dapat menggambarkan keluar dan masuknya kendali dari aktivasi suatu prosedur. Masing-masing node merepresentasikan suatu aktivasi prosedur. root merepresentasikan aktvasi program utamanya. run time environtment

Pohon Aktivasi Node A adalah parent dari node B jika dan hanya jika kendali bergerak dari aktivasi A ke aktivasi B. Node A berada di sebelah kiri node B jika dan hanya jika waktu hidup A terjadi sebelum waktu hidup B. run time environtment

Pohon Aktivasi (contoh) Eksekusi dilakukan secara depth-first traversal. run time environtment

Pemakaian stack pada aktivasi prosedur Node di-push ke dalam stack pada saat aktivasinya dimulai, dan di-pop jika aktivasinya berakhir. run time environtment

Pemakaian stack pada aktivasi prosedur (contoh) run time environtment

Jangkauan (scope) deklarasi/blok Bagian dari suatu program yang memakai suatu deklarasi tertentu. Contoh: var i pada program sort tidak berhubungan satu sama lain. Suatu nama di dalam prosedur disebut LOKAL jika dideklarasikan pada prosedur itu. Selain itu disebut NON-LOKAL. run time environtment

Pengikatan (binding) nama-nama state environtment nilai nama storage run time environtment

Pengikatan (binding) nama-nama Environment memetakan nama ke storage. State memetakan storage ke isinya (nilainya). Jika suatu environment mengkaitkan lokasi storage S dengan suatu nama X, maka dikatakan X diikat pada (bound to) S. Proses ini disebut juga dengan binding. run time environtment

Organisasi / Susunan Storage Tergantung pada jawaban: Bolehkah suatu prosedur rekursif? Apa yang terjadi dengan nilai-nilai lokal sewaktu kendali kembali dari suatu aktivasi prosedur? Bolehkah suatu prosedur memakai nama non-lokal? Bagaimana cara parameter dikirimkan sewaktu prosedur dipanggil? run time environtment

Organisasi / Susunan Storage (cont.) Bolehkah suatu prosedur dikirim sebagai parameter? Bolehkah prosedur dikembalikan sebagai hasil? Bolehkah storage dialokasikan secara dinamik? Haruskah storage di-dealokasikan secara eksplisit? run time environtment

Organisasi / Susunan Storage (cont.) Storage dipakai untuk menyimpan: Kode target yang terbentuk Objek data Informasi tentang aktivasi prosedur run time environtment

Organisasi / Susunan Storage (cont.) Kode target – sudah tertentu, dibentuk pada waktu kompilasi Objek data – besarnya sudah tertentu Sewaktu prosedur dipanggil: nilai counter program dan register mesin  disimpan dalam stack. run time environtment

Organisasi / Susunan Storage (cont.) Dalam implementasi, aktivasi bisa ditempatkan pada stack ataupun heap. run time environtment

Organisasi / Susunan Storage (cont.) Informasi yang diperlukan oleh eksekusi suatu prosedur disimpan pada blok yang bersambungan. Blok ini disebut record aktivasi atau frame dan terdiri dari beberapa field. run time environtment

Organisasi / Susunan Storage (cont.) run time environtment

Organisasi / Susunan Storage (cont.) Tujuan record aktivasi: Menyimpan nilai sementara (hasil evaluasi ekspresi) Menyimpan data lokal prosedur Menyimpan status mesin sebelum pemanggilan prosedur Menyimpan pointer data non-lokal milik aktivasi lain run time environtment

Organisasi / Susunan Storage (cont.) Menyimpan pointer yang menunjuk record aktivasi pemanggil Menyimpan parameter aktual yang dipakai oleh prosedur pemanggilan untuk mensuplai parameter ke prosedur terpanggil Menyimpan nilai (jika prosedur adalah fungsi) run time environtment

Organisasi / Susunan Storage (cont.) Besarnya field-field tadi ditentukan pada waktu kompilasi, kecuali array dinamik, yang hanya bisa ditentukan pada saat program berjalan. run time environtment

Data lokal pada kompilasi bit  byte  word. (byte: unit terkecil memori – biasanya = 8 bit) Besarnya data lokal ditentukan berdasarkan tipenya: type dasar: char, integer, real, biasanya membutuhkan beberapa byte. pembentuk type: membutuhkan banyak byte untuk menyimpan semua komponennya. run time environtment

Data lokal pada kompilasi (cont.) Field data lokal ditentukan pada waktu kompilasi, kecuali variable-length data disimpan di luar field data. Alamat relatif / offset: alamat sebenarnya dalam memori – awal objek data. run time environtment

Contoh code programsort (input, output); var a: array [0..10] of integer; procedure readarray; var i: integer begin for i:= 1 to 9 do read (a[i]) end; function partition (y, z: integer) : integer; var i, j, x, v : integer; run time environtment

Contoh code (cont) begin... end procedure quicksort(m, n, integer); var i: integer; begin if (n > m) then begin i := partition(m, n); quicksort(m, i – 1); quicksort(i + 1, n); run time environtment

Contoh code end; begin a[0] := -9999; a[10] := 9999; readarray; quicksort(1, 9); end. run time environtment