BLACK

welcome to the BLACK

Selasa, 08 Maret 2011

Jenis Sistem


Prosentase besar kesalahan didalam program adalah dalam kaitan dengan aplikasi operasi ke object jenis yang bertentangan. Jenis sistem telah dikembangkan untuk membantu programmer didalam pendeteksian kesalahan.

Sistem jenis adalah :

satu set aturan untuk penjelasan jenis dan menghubungkan suatu jenis dengan ungkapan didalam bahasa.

Suatu sistem jenis menolak suatu ungkapan jika tidak menghubungkan suatu jenis dengan ungkapan. Jenis pemeriksaan boleh berjalan pada waktu kompilasi atau waktu berjalan atau kedua-duanya.

Jika kesalahan diharapkan untuk dideteksi pada waktu kompilasi maka suatu sistem pengecekan jenis statis diperlukan. Satu pendekatan ke pemeriksaan jenis statis adalah untuk memerlukan programmer untuk menetapkan jenis masing-masing obyek didalam program.

Ini mengizinkan kompilator untuk melaksanakan jenis pemeriksa sebelum pelaksanaan program dan ini adalah pendekatan yang diambil oleh bahasa seperti Pascal, Ada, C++, dan Java.

Jika pendeteksian kesalahan diharapkan untuk ditunda sampai waktu pelaksanaan, maka pemeriksaan jenis dinamis diperlukan.

Didalam pemeriksa jenis dinamis, masing-masing nilai data berlabel dengan jenis informasi sehingga lingkungan waktu berjalan dapat memeriksa kecocokan jenis dan mungkin melaksanakan konversi jenis jika perlu.

Contoh dari bahasa jenis dinamis :

Bahasa program Lisp, Scheme dan Small-Talk

Jenis Pemeriksa

Suatu bahasa disebut :

tidak berjenis jika tidak ada jenis abstrak yang berlaku,

jenis kuat jika menyelenggarakan jenis abstrak (operasi mungkin diterapkan hanya untuk object jenis yang sesuai),

jenis statis jika jenis ungkapan masing-masing dapat ditentukan dari teks program,

jenis dinamis jika penentuan jenis beberapa ungkapan tergantung pada perilaku waktu berjalan program.

Keuntungan dari bahasa tidak berjenis adalah fleksibilitas mereka. Programmer mempunyai kendali penuh atas bagaimana suatu nilai data digunakan tetapi harus mengasumsikan tanggung jawab penuh untuk mendeteksi aplikasi operasi ke object jenis yang tidak cocok/bertentangan.

Jenis kuat membantu untuk memastikan portabilitas dan keamanan kode dan sering memerlukan programmer dengan tegas menggambarkan jenis masing-masing object di dalam suatu program. Ini penting juga dalam kumpulan untuk pemilihan operasi yang sesuai dan untuk optimisasi.

Jenis statis secara luas dikenali sebagai kebutuhan untuk produksi perangkat lunak yang dapat dipercaya dan aman. Jenis statis yang memeriksa menyiratkan bahwa jenis dicek pada waktu kompilasi. Jenis statis dipilih ketika efisiensi di dalam waktu pelaksanaan adalah penting dan kompilator pendukung digunakan untuk mendukung rancang bangun perangkat lunak berjalan.

Jenis pemeriksa dinamis menyiratkan bahwa jenis dicek pada waktu pelaksanaan dan bahwa tiap-tiap nilai berlabel untuk mengidentifikasi jenisnya dalam rangka membuat jenis pemeriksa mungkin. Hukuman untuk pemeriksaan jenis dinamis adalah biaya waktu dan ruang tambahan.

Jenis Kesamaan

Dua jenis tak dikenal (satuan object) adalah sama jika mereka berisi unsur-unsur yang sama. Yang sama tidak bisa dikatakan jenis nama mereka yang dulu, maka tidak diperlukan untuk memisah jenis union. Kapan jenis dinamai, ada dua pendekatan utama untuk menentukan apakah dua jenis sama.

Kesamaan Nama

Didalam kesamaan nama dua jenis adalah sama jika mereka mempunyai nama yang sama. Jenis diberi nama berbeda perlakukan sebagai beda dan tidak bisa secara kebetulan dicampur hanya karena struktur mereka secara kebetulan adalah sama. Kesamaan nama perlu definisi jenis untuk global.

Kesamaan Struktural

Didalam kesamaan struktural, nama jenis diabaikan dan unsur-unsur jenis dibandingkan untuk persamaan. Adalah mungkin bahwa dua jenis logika yang berbeda boleh menjadi kebetulan yang sama dan dapat dicampur.

Definisi jenis tidak diperlukan untuk menjadi global. Kesamaan struktural adalah penting didalam sistem distribusi pemrograman, dimana program terpisah harus mengkomunikasikan jenis data.

Definisi N.1:

Dua jenis T, T' adalah kesamaan nama iff T dan T' adalah nama yang sama.

Dua jenis T, T' adalah kesamaan struktural iff T dan T' memiliki satuan nilai yang sama.

3 aturan yang digunakan untuk menentukan jika dua jenis adalah kesamaan struktural :

Suatu nama jenis sama secara struktur dengan dirinya sendiri.

Dua jenis yang sama secara struktur jika mereka dibentuk dengan menerapkan jenis pembangun yang sama (secara berulang) ke jenis kesamaan secara struktural.

Setelah suatu deklarasi jenis, jenis n = T, nama jenis n secara struktural setara dgn T.

Jenis Kesimpulan

Adalah masalah yang umum dalam menjelmakan tak berjenis atau sintaksis jenis parsial ke dalam terminologi yang baik. Deklarasi tetap Pascal adalah suatu contoh kesimpulan jenis, jenis nama adalah kesimpulan dari jenis yang tetap. Dalam Pascal untuk pengulangan jenis index pengulangan dapat ditarik kesimpulan dari jenis batas pengulangan dan dengan begitu indeks pengulangan harus suatu variabel lokal dari pengulangan.

Bahasa pemrograman Miranda dan Haskell adalah jenis statis dan menyediakan sistem kesimpulan jenis kuat sehingga seorang programmer tidak perlu mendeklarasikan jenis apapun. Bahasa juga mengijinkan para programmer untuk menyediakan spesifikasi jenis eksplisit.

Suatu pemeriksa jenis harus mampu :

menentukan jika suatu program adalah jenis yang baik dan

jika program adalah jenis yang baik, tentukan jenis ungkapan manapun di dalam program.

Jenis Deklarasi

Bahkan bahasa yang menyediakan suatu sistem kesimpulan jenis mengijinkan para programmer untuk membuat deklarasi jenis tegas/eksplisit. Sekalipun kompiler dapat dengan tepat menyimpulkan jenis, pembaca manusia mungkin harus meneliti beberapa halaman kode untuk menentukan jenis suatu fungsi.

Kesalahan kecil oleh programmer dapat menyebabkan kompiler mengeluarkan pemberitahuan kesalahan atau untuk menyimpulkan suatu jenis yang berbeda dibanding yang diharapkan. Karena pertimbangan ini adalah praktek pemrograman yang baik dengan tegas menyatakan jenis atas semua kecuali kasus yang paling nyata.

Polymorphisme

Suatu sistem jenis adalah monomorphic jika masing-masing konstanta, variabel, parameter, dan hasil fungsi mempunyai suatu jenis unik. Jenis pemeriksa suatu sistem monomorphic adalah secara langsung. Tetapi sistem jenis monomorphic semata-mata adalah tidak memuaskan untuk penulisan perangkat lunak yang bisa dipakai kembali.

Tidak ada komentar:

Posting Komentar

Pengikut