PENGATURAN RUNTIME ENVIRONMENT
6.1 Penetapan runtime storage adalah tempat untuk menyimpan data dari sumber ketika eksekusi program.Ada dua macam penetapan runtime storage yaitu penetapan statis dan penetapan dinamis.
· Alokasi Full –Statis
contoh: Fortran
ü semua dialokasikan olehkompiler padawaktu kompilasi
ü Tidak mendukung pointer
ü Tidak membutuhkan stack
ü tidak ada rekursi dan alokasi memori secara dinamis
ü digunakan untuk: variable global, konstanta
ü Berarti pada suatu saat hanya boleh ada satu record aktivasi yang aktif
· Alokasi dinamis :
Ada dua macam penetapan dinamis :
o Penetapan dinamis untuk stack
contoh: high level language= C, C++, Pascal
ü tempat penyimpanan diatur sebagai suatu stack
ü biasa digunakan untuk prosedur rekursif dan pointer (alokasi dinamis)
ü Pada suatu saat boleh banyak record aktivasi aktif
o Penetapan dinamis untuk heap :
contoh: Lisp, Java danScheme
ü mengalokasikan dan mendealokasikan tempat penyimpanan seperlunya.
ü Biasanya menggunakan heap (karenadinamis)
ü Dibutuhkan garbage collection dan compaction untuk memperoleh kembali space yang dibutuhkan.
ü Beberapa kemungkinan dealokasi(tidak ada dealokasi,explixit dealocation dan implicit dealocation).
6.2 Karena hal ini berhubungan dengan pemanggilan prosedur.Setiap saat prosedur dipanggil dan akan mengacu pada data statis yang sama.
6.3 Activation record adalah ruang penyimpanan yang digunakan untuk variabel- variabel.Komponen- komponen yang ada dalam activation record adalah :
· Parameter yang sesuai dengan prosedur
· Penyimpanan informasi (bookkeeping information), termasuk return address.
· Ruang untuk variabel lokal
· Ruang untuk lokal temporaries tersusun atas compiler untuk menyimpan nilai-nilai subexpression.
Record aktivasi(activation record) berisi informasi yang dibutuhkan untuk mengatur aktivasi sebuah prosedur yang terdiri dari beberapa field:
· Return value (nilai kembalian), dari prosedur yang dipanggil keprosedur pemanggilnya.
· Parameter aktual, yang dipakai oleh prosedur pemanggil untuk memberikan parameter kepada prosedur yang dipanggil.
· Link kendali aktivasi,yang menunjuk pada record aktivasi pemanggil
· Link akses pemanggil, yang berguna sebagai tempat untuk menyimpan data non local milik record aktivasi lain.
· Address
· Current adress
· Return address
· Start address, danlain-lain
6.4 Pembuatan array nantinya akan berhubungan dengan besarnya alokasi penyimpanan Ukuran penyimpanan ini desesuaikan dengan tipe datanya. Misal tipe data byte : 1 byte.Susunan penyimpanan sangat tergantung dari mesin target.hal tersebut berhubungan dengan procedur dalam aktvation record.Dimana activation record berisi field-field.besarnya field-field ini ditentukan pada saat prosedur dipanggil pada saat kompilasi.
6.5 Pengiriman by value adalah pengiriman searah, dari program pemanggil fungsi ke fungsi yang dipanggilnya.Pengiriman by value dapat dilakukan untuk suatu statement, tidak hanya untuk suatu variabel, value, array atau konstanta saja.Saya tidak merekomendasikan bahasa C untuk menggunakan tipe passing call by value.karen call by value biasanya digunakan untuk variable non local dan parameter.
X x,y,z |
P |
Q |
R |
6.6 Snapshot program :
6.7 Tampilan program dalam soal 6.6
X x,y,z |
P |
Q |
R |
X x,y,z |
|
Bagaimana hal tersebut dapat membantu mempercepat pengeksekusian program?
Hal tersebut dapat membantu mempercepat pengeksekusian program Karena display adalah sebuah array . Jumlah elemen pada display dihitung saat compile dengan memperkirakan kedalaman maksimum lexical nesting.
Tidak ada komentar:
Posting Komentar