Locks-and-keys (komputasi)

Locks-and-keys adalah solusi yang digunakan untuk menangani masalah dangling pointer dalam bahasa pemrograman komputer.

Dalam pendekatan ini, sebuah pointer direpresentasikan sebagai pasangan terurut berupa (kunci, alamat), di mana kunci adalah sebuah nilai integer. Sementara itu, variabel heap-dynamic direpresentasikan sebagai kombinasi antara penyimpanan untuk nilai variabel dan sebuah sel tambahan untuk menyimpan nilai kunci tersebut.

Ketika variabel dialokasikan, sebuah nilai kunci baru dibuat. Nilai ini kemudian ditempatkan baik di dalam sel variabel maupun dalam bagian kunci dari pointer yang menunjuk ke variabel tersebut. Setiap kali pointer diakses, sistem akan membandingkan kedua nilai kunci tersebut. Akses hanya diizinkan jika nilai kunci yang tersimpan dalam pointer dan variabel cocok.

Jika sebuah variabel dihapus alokasinya, nilai kunci di dalam variabel tersebut akan diubah menjadi nilai yang berbeda. Akibatnya, setiap upaya untuk mengakses variabel menggunakan pointer lama akan gagal, karena nilai kunci pointer tidak lagi cocok dengan nilai dalam variabel. Dengan metode ini, semua salinan pointer yang ada dapat dengan aman dinonaktifkan, karena perubahan kunci otomatis membuat semua referensi lama menjadi tidak valid.

 Lihat juga 

 Tombstone (bahasa pemograman)
 Multiple indirection (pointer)

 Referensi 

Kategori:Bahasa pemrograman