Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

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

Presentasi serupa


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

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

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

3 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.

4 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.

5 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.

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

7 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.

8 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.

9 run time environtment 9 Situasi Saat Program Berjalan (Run-time Environment) 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) keluar quicksort(5, 9) keluar quicksort(1, 9) Eksekusi selesai

10 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.

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

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

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

14 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.

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

16 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.

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

18 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.

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

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

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

22 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.

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

24 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.

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

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

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

28 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.

29 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.

30 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.

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

32 run time environtment 32 Contoh code (cont) (10) begin... (11) end (12) procedure quicksort(m, n, integer); (13) var i: integer; (14) begin (15) if (n > m) then begin (16) i := partition(m, n); (17) quicksort(m, i – 1); (18) quicksort(i + 1, n);

33 run time environtment 33 Contoh code (19) end; (20) end; (21)begin (22) a[0] := -9999; a[10] := 9999; (23) readarray; (24) quicksort(1, 9); (25)end.


Download ppt "Run time environtment 1 Kuliah 13 Situasi Saat Program Berjalan (Run-time Environment)"

Presentasi serupa


Iklan oleh Google