Names, Binding, Type Checking, and Scopes Flashcards

1
Q

Apa itu Binding dan Binding Time?

A

Binding adalah sebuah pengelompokkan, contohnya pengelompokkan antara sebuah atribut dan entitas atau pengelompokkan antara sebuah operasi dan sebuah simbol

Binding time adalah waktu terjadinya binding

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Proses terjadinya Binding apa saja?

A

Binding dapat tejadi pada saat :
- Language design time, design dari syntax, primitive types, semantics

  • Language implementation time, seperti numeric precision, run-time memory size, max identifier name length.
  • Compile time, saat translasi ke bahasa mesin
  • Link time, saat multiple object code dan libraries dikombinasi menjadi satu executable.
  • Load time, saat OS load program dalam memory
  • Run time, saat program berjalan
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Ada dua aspek penting pada tipe binding yaitu bagaimana tipe variable dispesifikasi (i.e. dideklarasikan) dan kapan binding terjadi. Uraikan apa yang kamu ketahui tentang deklarasi variable dan dynamic type binding?

A

Deklarasi variable terbagi 2 yaitu:
1. Explicit declaration adalah sebuah pernyataan dalam program yang mendaftarkan nama variabel dan jenisnya pada tipe tertentu

  1. Implicit declaration mengasosiasikan variable beserta tipe nya melalui konvensi standar bukan dari declaration statement

Deklarasi variable melakukan deklarasi variabel pada tipe tertentu dan atribut lainnya tetapi tidak mengalokasikan memori ke variable tersebut.

Dynamic type binding, tipe tersebut tidak dispesifikasikan oleh declaration statement. Tetapi, variable dikaitkan ke sebuah tipe pada saat diberikan nilai dalam assignment statement.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Definisi Lifetime?

A

Lifetime dari sebuah variable adalah waktu selama variable tersebut mengikat pada lokasi memori tertentu

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Definisi Scope?

A

Scope adalah jarak atau range sebuah variable dari statement dimana variable tersebut dapat diakses.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Definisi Block?

A

Block adalah bagian dari kode yang memiliki variable lokalnya sendiri dimana scope nya diminimalisir.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Definisi Static Scoping

A

nama-nama binding pada variable yang bukan lokal disebut static scoping.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Definisi Dynamic Scoping

A

Dynamic scoping akan dijalankan berdasarkan urutan dari subprogram. dynamic scope dapat ditentukan hanya pada saat run time.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Masalah umum dari static scoping?

A
  1. seorang programmer dapat saja melakukan kesalahan pada saat memanggil sebuah subprogram yang tidak seharusnya dapat dipanggil. sehinnga kesalahan tersebut tidak dapat terdeteksi sebagai error oleh compiler.
  2. akses ke prosedur tertentu harus dibatasi
  3. akses data terlalu banyak
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Masalah umum dari dynamic scoping?

A
  1. pada waktu eksekusi, variable local dari sebuah subprogram dapat terlihat di subprogram lain
  2. program menjadi lebih sulit dibaca
  3. akses ke variable yang bukan local memakan waktu yang lebih lama ketika static scope digunakan
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Kelebihan dari dynamic scoping?

A

kemampuan parameternya yang dapat digunakan dengan mudah pada subprogram yang lain

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Type Checking adalah?

A

Type checking adalah aktivitas untuk memastikan bahwa operand dari sebuah operator apakah tipe nya cocok atau tidak. Jika tipe nya tidak cocok makan akan terjadi type error dikarenakan operand dan operator tidak kompatible.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Strong Typing adalah?

A

jika suatu bahasa pemrograman yang karakteristiknya strong typing, maka setiap nama dalam sebuah program harus memiliki tipe data yang telah diasosiasikan. contohnya jika muncul type error maka bahasa pemrograman tersebut dengan karakteristik Strong Typing.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Static variable?

A

variable yang mengikat pada sel memori sebelum eksekusi program dimulai dan akan tetap mengikat ke memori yang sama sampai program berhenti.
Advantage: efisiensi
Disadvantage: mengurangi fleksibilitas

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

int count;

count = count + 5;

A
  • Set possible types for count : bound at language design time
  • Type of count : bound at compile time
  • Set of possible meanings for the operator symbol + : bound at language definition time
  • Set of possible values of count : bound at compiler design time
  • Value of count : bound at execution time with this statement
  • Meaning of the operator symbol + in this statement : bound at compile time
  • Internal representation of the literal 5 : bound at compiler design time
How well did you know this?
1
Not at all
2
3
4
5
Perfectly