Pengkaitan (binding) tipe data dari subscript pada variabel berbentuk array biasanya bersifat static, namun rentang nilai dari subscript terkadang dikaitkan secara dynamic binding.
Ada lima kategori array berdasarkan binding to subscript range, binding to storage, dan dari mana storage dialokasikan, yaitu:
- Static array, yaitu array yang menerapkan static subscript range binding, dan static storage allocation
- Fixed stack-dynamic array, yaitu array yang menerapkan static subscript range binding, tapi storage allocation dilakukan pada elaboration time saat execution.
- Stack-dynamic array, yaitu array yang menerapkan dynamic binding (at elaboration time) untuk subscript range maupun storage allocation.
- Fixed heap-dynamic array, array yang menerapkan binding yang mirip dengan fixed stack dynamic dalam pengertian bahwa kedua binding yaitu subscript range maupun storage binding bersifat tetap (fixed) setelah storage dialokasikan.
- Heap-dynamic array, yaitu array yang menerapkan dynamic binding untuk subscript range maupun storage allocation, dan dapat berubah berkali-kali selama lifetime dari array.
Contoh dari kelima kategori tersebut diberikan sebagai berikut:
- Pada bahasa C and C++, array yang dilengkapi dengan static modifier adalah static array.
- Pada bahasa C and C++, array tanpa static modifier adalah fixed stack-dynamic array
- Bahasa C and C++ juga menyediakan fixed heap-dynamic arrays melalui penggunaan fungsi malloc dan free (pada C), atau new dan delete (pada C++).
- Bahasa C# dilengkapi dengan suatu second array class, ArrayList, yang menyediakan fixed heap-dynamic array.
- Bahasa Perl, JavaScript, Python, and Ruby mendukung heap-dynamic arrays.
Comments
Post a Comment