Gw mau tau Pemeriksaan jenis dari Sistem jenis. Jelasin dalam bahasa melayu

Pemeriksaan jenis dilakukan semasa pengkompilan seperti yang digunakan dalam C dan C++.

int angka = 1; //pemboleh ubah angka diisytiharkan sebagai berjenis int, iaitu integer

Dalam penjenisan dinamik, sesuatu pemboleh ubah tidak semestinya kekal sebagai jenis yang ia mula-mula diisytiharkan, sebaliknya boleh bertukar-tukar sedang atur cara dijalankan. Ini kerana pemeriksaan jenis dilakukan semasa atur cara dijalankan oleh pelaksanaan bahasa berkenaan. Penjenisan sebegini biasanya diguna oleh bahasa-bahasa tafsiran seperti Python dan JavaScript.

Pelaksanaan bahasa berjenis dinamik secara umum mengkaitkan objek-objek masa jalanan dengan "tag" yang mengandungi maklumat jenis bagi objek-objek tersebut. Pengelasan masa jalanan ini kemudian diguna untuk melaksanakan pemeriksaan jenis dan menempatkan fungsi-fungsi banyak takrifan (overload function), tapi juga membolehkan penggunaan merata bagi serahan dinamik, ikatan lewat serta ungkapan serupa yang menjadi rumit lagi tidak cekap terutamanya dalam bahasa yang berjenis statik, di mana jenis varian atau ciri sepertinya perlu diguna.

Contoh penjenisan dinamik dalam Python:

angka = 1 #diisytiharkan sebagai integer

angka = "Tukar kepada rentetan" #ditukar secara dinamik menjadi rentetan

Gabungan penjenisan dinamik dan statik

Adanya penjenisan statik dalam sesebuah bahasa pengaturcaraan tidak semestinya bermaksud tiada langsung mekanisme penjenisan dinamik. Sebagai contoh, Java dan beberapa bahasa yang kononnya dijeniskan secara statik menyokong downcasting di samping pengendalian jenis lain yang bergantung kepada pemeriksaan ketika jalanan, suatu bentuk penjenisan dinamik.

Pemeriksaan jenis statik dan dinamik secara praktikal

Penjenisan kuat dan lemah: Takrifan Liskov

Pada 1974, Liskov dan Zilles memerihalkan bahasa berjenis kuat sebagai "bila saja sesuatu objek dihulurkan daripada fungsi pemanggil kepada fungsi yang dipanggil, jenisnya mesti serasi dengan jenis yang diisytiharkan dalam fungsi yang dipanggil."

Jackson menulis, "Dalam bahasa berjenis kuat, setiap kawasan data akan mempunyai jenis tertentu dan setiap proses akan menyatakan kehendak komunikasinya dalam sebutan jenis-jenis ini."