Jumat, 31 Oktober 2014

Assigment #5


Review Questions
tugas Pak Tri Joko

11. What are the advantages and disadvantages of dynamic type binding?

Kelebihan dari dynamic type binding adalah lebih luwes dan mudah dalam menulis kode generik, sedangkan kekurangannya adalah perlu waktu run-time yang lama untuk mengecek tipe dan interpretasi.

12. Define static, stack-dynamic, explicit heap-dynamic, and implicit heap- dynamic variables. What are their advantages and disadvantages?


Static adalah alokasi memori sebelum eksekusi dimulai dan tetap terikat pada memori yang sama di seluruh eksekusi.

Kelebihan :
Run-time yang efisien.

Kekurangan :
Tidak ada rekursi.

  - Stack-dynamic adalah alokasi memori dari sistem tumpukan ketika deklarasi diuraikan.

Kelebihan: Ada rekursi dan hemat memory.

Kekurangan: Run-time tidak seefisien static.

  - Explicit heap-dynamic adalah alokasi dan dealokasi dengan petunjuk eksplisit, yang ditentukan oleh programmer, yang berlaku selama eksekusi.

Kelebihan : Manajemen penyimpanan yang fleksibel.

Kekurangan : Rawan kesalahan dalam membuat pernyataan baru/menghapus pernyataan.

  - Implicit heap-dynamic adalah alokasi dan dealokasi disebabkan oleh suatu pernyataan.

Kelebihan : Fleksibilitas yang sangat tinggi.

Kekurangan : Waktu run-time untuk menjaga semua attrs dinamis dan deteksi kesalahan kompilator berkurang.

13. Define lifetime, scope, static scope, and dynamic scope.

Lifetime adalah ketika memori dialokasikan untuk sebuah variabel (ketika itu eksis).
Scope adalah jangkauan pernyataan di mana variabel yang terlihat. Variabel terlihat dalam sebuah pernyataan jika dapat dirujuk dalam pernyataan itu.
Static scope adalah scope yang berdasarkan teks pada program dan menghubungkan referensi nama untuk sebuah variabel.
Dynamic scope adalah scope yang berdasarkan urutan panggilan run-time.

14. How is a reference to a nonlocal variable in a static-scoped program connected to its definition?
 
Sebuah referensi untuk variabel non-lokal dalam bahasa static-scoped dengan nested subprogram membutuhkan 2 langkah proses akses:

Cari rekor aktivasi yang benar.
Menentukan offset yang benar dalam rekor aktivasi.

15. What is the general problem with static scoping?
 
Biasanya terlalu banyak akses. Struktur scope hancur sebagai evolusi program.

Problem Set

11. Which of the following identifier forms is most readable? Support your decision.
sumOfSales
sum_of_sales
SUMOFSALES

 
Saya memilih sum_of_sales, karena lebih mudah untuk melihat ruang antara kata-kata dan lebih mudah dibaca.

12. Some programming languages are typeless. What are the obvious advantages and disadvantages of having no types in a language.

Kelebihan: Memungkinkan pengguna untuk menulis program cepat.
Kekurangan: Tidak dapat mengontrol data dan variabel, compiler tidak dapat mendeteksi kesalahan apapun.

13. Write a simple assignment statement with one arithmetic operator in some language you know. For each component of the statement, list the various bindings that are required to determine the semantics when the statement is executed. For each binding, indicate the binding time used for the language.

Bahasa C++

int count;
count = count + 5;

Tipe yang mungkin untuk dihitung: ditetapkan pada saat desain bahasa.
Tipe hitungan: Terikat pada waktu kompilasi.
Set nilai yang mungkin dari count: Terikat saat waktu desain kompiler.
Nilai hitungan: Terikat pada waktu eksekusi dengan pernyataan ini.
Set kemungkinan arti untuk simbol operator “”: *Terikat pada waktu definisi bahasa.
*Maksud dari simbol operator “” di dalam pernyataan ini: Terikat pada waktu kompilasi.
Representasi internal dari literal “5”: Terikat saat waktu desain kompiler.

14. Dynamic type binding is closely related to implicit heap-dynamic variables. Explain this relationship.
 
Keduanya terkait dengan tugas dan pernyataan.

Keduanya terkait dengan tugas dan pernyataan.

15. Describe a situation when a history-sensitive variable in a subprogram is useful.
 
Sejarah variabel sensitif mungkin berguna dalam subprogram manipulasi data, di mana beberapa operasi dilakukan pada variabel, dan fungsi keluar, maka fungsi ini dipanggil lagi. Dengan cara ini, fungsi tidak harus mengambil variabel sebagai parameter, tetapi hanya untuk mengembalikannya.

Tidak ada komentar:

Posting Komentar