Binding dimaksudkan sebagai pengikatan (association) antara suatu entity dengan atributnya, misalnya binding/pengikatan antara suatu variable dengan tipe datanya atau dengan nilainya, atau dapat juga antara suatu operasi dengan simbol, misalnya simbol + dikenali sebagai operasi penjumlahan atau simbol ^ dikenali sebagai operasi pangkat, dll.
Peristiwa binding dan kapan terjadinya binding (biasanya disebut dengan binding time) berperan penting dalam membicarakan semantics suatu bahasa pemrograman. Beberapa kemungkinan binding time adalah:
- Language design time, yaitu ketika simbol suatu operasi dikaitkan (binding) dengan suatu operasi (misal simbol * dikenali sebagai operasi perkalian)
- Language implementation time, yaitu ketika tipe floating point dikaitkan/binding ke cara penyajian
- Compile time, yaitu binding yang dilakukan ketika suatu program berada dalam tahap compilation (binding antara variable dan tipe datanya untuk C atau Java)
- Load time, yaitu binding yang terjadi ketika variable static di-load ke memory untuk eksekusi (pada C atau C++)
- Run time, yaitu binding pada variable lokal non-static ke memory atau juga sering disebut saat run-time karena terjadi selama program berjalan.
Sebagai contoh, simbol asterisk (*) dihubungkan dengan operasi perkalian (mutiplication) pada language design time. Suatu tipe data, misalnya int pada bahasa C, dihubungkan dengan suatu rentang nilai pada language implementation time. Suatu variable dihubungkan dengan suatu tipe data pada compile time seperti bahasa Java. Suatu variable dapat dihubungkan pada (address) memory cell pada saat load time, dsb.
Pada contoh berikut, statement penugasan count = count + 5; pada bahasa Java mengalami binding seperti berikut:
- Tipe dari variable count pada saat compile time
- Rentang nilai dari variable count pada compiler design time (language implementation time)
- Makna dari operator + pada compile time ketika tipe data dari operand count telah ditentukan
- Representasi internal dari literal 5 pada compiler design time (language implementation time)
- Nilai (value) dari count ketika assignment statement dimaksud di eksekusi (run time).
Tambahan tentang salah satu terjadinya binding dalam proses kompilasi (dari salah satu mahasiswi pembelajaran jarak jauh):
ReplyDeleteBeranjak dari proses compiling
Kalau berbicara tentang pemrograman komputer pasti tau dong tentang compiling? Yaitu menerjemahkan instruksi (kode) ke dalam bentuk intermediary, berupa file object. Sebagai contoh pada C++. Sesaat setelah proses compiling dilakukan maka akan terbentuk file-file yang memiliki tipe *.o (objek). Sebelum terbentuknya file eksekusi (*.exe), objek-objek yang ada akan dihubungkan dengan linker yang telah dipersiapkan oleh preprosesor.
Apa itu preprosesor dan linker?
Preprosesor merupakan tahapan sesaat proses compiling berlangsung. Preprosesor akan secara otomatis berlangsung pada saat kamu menjalankan compiler.
Tugas dari preprosesor adalah membaca instruksi dan mempersiapkan semua yang tertera pada instruksi tersebut. Instruksi pada C++ selalu diawali dengan simbol pound (#), contohnya seperti: #include, #define, #ifndef, #endif, dll.
Pemrograman seperti C, C++, dan juga java, menggunakan library sebagai koleksi dari fungsi-fungsi.Pada C++, jikalau mau menggunakan cout maka kita harus terlebih dahulu mengetahui di mana letak fungsi tersebut. cout merupakan koleksi dari iostream.h, oleh karena itu kita akan memberikan instruksi kepada preprosesor untuk mempersiapkan library tersebut karena akan digunakan, instruksi tersebut berupa #include
Untuk selanjutnya pada saat compiler kamu jalankan, dengan segera preprosesor memindai kode-kode kamu, untuk mencari instruksi yang diawali dengan simbol #, dan melakukan sesuai dengan fungsi dari instuksi tersebut. Untuk instruksi #include <...>, preprosesor dengan segera akan mempersiapkan library yang dimaksud, untuk dicompile bareng-bareng saat proses compiling berlangsung, dan jadi deh file eksekusi (*.exe).
Binding?
Di dalam proses kompilasi binding berarti menghubungkan library (linker) dengan aplikasi (kode). Tapi saat di mana preprosesor memilah-milah kode tsb, untuk menemukan simbol pound (#) juga bisa disebut binding lho.
Sumber:
http://en.wikipedia.org/wiki/Binding_%28computer_science%29