Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Situasi Saat Program Berjalan (Run-time Environment)

Presentasi serupa


Presentasi berjudul: "Situasi Saat Program Berjalan (Run-time Environment)"— Transcript presentasi:

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

2 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

3 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

4 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

5 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

6 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

7 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

8 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

9 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

10 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

11 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

12 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

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

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

15 Pemakaian stack pada aktivasi prosedur (contoh)
run time environtment

16 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

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

18 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

19 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

20 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

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

22 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

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

24 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

25 Organisasi / Susunan Storage (cont.)
run time environtment

26 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

27 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

28 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

29 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

30 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

31 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

32 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

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


Download ppt "Situasi Saat Program Berjalan (Run-time Environment)"

Presentasi serupa


Iklan oleh Google