konstanta bernilai dinamis




Download 0.5 Mb.
bet5/5
Sana07.04.2017
Hajmi0.5 Mb.
#3323
1   2   3   4   5
konstanta bernilai dinamis

Selain konstanta statis dijelaskan di atas, bahasa prosedural banyak seperti Ada dan C + + memperluas konsep constantness terhadap variabel global yang dibuat pada saat inisialisasi, variabel lokal yang secara otomatis dibuat pada saat runtime di stack atau di register, memori secara dinamis dialokasikan bahwa diakses oleh pointer, dan untuk daftar parameter dalam header fungsi.

Konstanta bernilai dinamis tidak menunjuk variabel sebagai yang berada di wilayah tertentu dari memori, tidak pula nilai-nilai ditetapkan pada waktu kompilasi. Dalam C + kode + seperti

mengambang func (const APA mengambang) {

const mengapung XYZ = someGlobalVariable * someOtherFunction (APA);

...

}

ekspresi yang konstan diinisialisasi untuk sendiri tidak konstan. Penggunaan constantness tidak diperlukan di sini untuk legalitas program atau kebenaran semantik, namun memiliki tiga keuntungan:



  1. Hal ini jelas bagi pembaca bahwa objek tidak akan diubah lebih lanjut, sekali mengatur

  2. Upaya untuk mengubah nilai dari obyek (oleh programmer kemudian yang tidak sepenuhnya memahami logika program) akan ditolak oleh compiler

  3. Compiler mungkin dapat melakukan optimasi kode mengetahui bahwa nilai objek tidak akan berubah setelah diciptakan. [3]

Konstanta dinamis dihargai berasal sebagai fitur bahasa dengan ALGOL 68 . [3] Studi dari Ada dan C + + kode telah menunjukkan bahwa dinamis-nilai konstanta jarang digunakan, biasanya untuk 1% atau kurang dari objek, ketika mereka bisa digunakan jauh lebih, karena beberapa 40-50% dari lokal, non-kelas objek sebenarnya invarian setelah dibuat. [4] [3] Di sisi lain, seperti "berubah variabel" cenderung menjadi default dalam bahasa fungsional karena mereka mendukung gaya pemrograman tanpa efek samping (misalnya, rekursi) atau membuat deklarasi yang paling berubah secara default. Beberapa bahasa fungsional bahkan melarang efek samping sama sekali.

Constantness sering digunakan dalam deklarasi fungsi, sebagai janji bahwa ketika suatu objek dikirimkan dengan referensi, fungsi disebut tidak akan mengubahnya. Tergantung pada sintaks, baik pointer atau objek yang sedang menunjuk dapat konstan, namun biasanya yang terakhir yang diinginkan. Terutama di C dan C + +, disiplin memastikan bahwa struktur data yang tepat adalah konstan seluruh program disebut const-kebenaran .




By: Nur Alamsyah Nurdin Page


Download 0.5 Mb.
1   2   3   4   5




Download 0.5 Mb.