Anda di halaman 1dari 4

BAB II

RINGKASAN JURNAL

2.1 PENGANTAR

Pemrograman generik (GP) 1 adalah pemrograman baru Paradigma yang didukung oleh
bahasa pemrograman C ++. Program menggunakan pemrograman generik termasuk data generik
struktur (dalam bentuk kelas templat) dan generik algoritma (dalam bentuk fungsi templat).
Struktur data tures dan algoritma dihubungkan satu sama lain oleh "konsep". Suatu konsep
menggambarkan sekumpulan persyaratan pada a tipe data, dan ketika tipe data tertentu
memenuhi semua ini persyaratan, kami mengatakan bahwa itu adalah "model" dari konsep itu.
Sebenarnya, algoritma beroperasi pada model yang argumennya kecuali, dan struktur data ditulis
sebagai model algoritma konsep argumen rithms. Abstraksi "konsep" ini adalah esensi dari
pemrograman generik. GP berbeda dari paradigma berorientasi objek (OO), 2 yang melibatkan
asosiasi tipe data dengan hierarki pewarisan dalam banyak aspek.

Adapun pengembangan perangkat lunak kimia, GP telah digunakan untuk desain


program komputasi ilmiah, 5-7 tetapi ada tidak ada perpustakaan untuk pemrograman generik
yang menyediakan beberapa fungsi umum. Perpustakaan templat, Penanganan Molekuler
Perpustakaan Templat (MHTL, Gambar 1), telah dirancang untuk persyaratan ini. Ini mencakup
beberapa struktur data umum dan algoritma generik, dan dua bagian ini digabungkan bersama
oleh dua konsep: Properties dan Molekul. Konsep Properti menjelaskan antarmuka untuk
mengakses objek yang layak - ikatan, dan konsep Molekul menggambarkan minimum
persyaratan untuk kelas molekul. Struktur data termasuk tujuh model Properti, masing-masing
menggunakan metode yang berbeda untuk mengakses properti, dan dua model kelas molekuler.
Algoritma termasuk subrutin manipulasi file molekuler, Fungsi penerjemah dan pencocokan
bahasa SMARTS, dan fungsi rendering molekul OpenGL. Versi lengkap Bagian MHTL terdiri
dari sekitar 6000 baris kode dalam bahasa pemrograman C ++. Semua percobaan perhitungan
dilakukan pada PC. Program ini telah diuji pada Sistem operasi IRIX, Linux, dan Windows, dan
sumbernya kode dapat diperoleh secara bebas dari penulis atas permintaan. Dua bagian MHTL
dibahas dalam dua berikut bagian, masing-masing.
2.2 STRUKTUR DATA

Bagian struktur data MHTL mencakup beberapa kelas, yang terutama merupakan model
dari dua konsep: Properties dan Molekul. Properti Konsep dan Modelnya. Tindakan umum yang
dilakukan pada benda kimia adalah mengatur dan mendapatkan propertinya. Properti dapat
berupa posisi dan gaya atom, ikatan memesan, titik didih molekul, dan titik leleh. Yang bisa
terlihat, properti dapat berupa tipe data apa pun, bahkan yang ditentukan pengguna jenis.
Ketidakpastian dalam jenis properti ini membuat aksesnya dan penyimpanan pekerjaan yang
sulit, dan di GP solusi untuk jenis ini ketidakpastian adalah mengatur tipe sebagai argumen
templat; jadi kami mensyaratkan bahwa model Properties memiliki dua beriku fungsi anggota:

Kedua fungsi ini dapat digunakan untuk mengakses properti tipe apa pun, tetapi properti
dengan tipe yang sama tidak bisa dibedakan, dan mengharuskan pengguna menyatakan masing-
masing properti tipe data secara eksplisit. Untuk membantu pengguna mendefinisikan jenis
properti dengan mudah, kami telah mendefinisikan kelas templat PropertyT sebagai berikut:

PropertyT mengambil dua argumen templat: satu adalah Pid, yang merupakan nomor
identifikasi dari jenis properti, dan dapat digunakan untuk membedakan berbagai properti; yang
lainnya adalah Ptype, tipe data aktual dari properti. Untuk memastika perilaku tipe turunan
adalah sama dengan tipe aktual, miliki salinan konstruktor dan fungsi konversi tipe data sudah
termasuk dalam kelas. Anggota data statis dan const bernama PropertyId telah didefinisikan di
dalam kelas, yang digunakan untuk identifikasi tipe properti. Kami mendefinisikan a sifat untuk
properti untuk membantu pengguna mengakses PropertyId. Sifat itu berikut:

Terkadang pengguna perlu mendeklarasikan jenis properti mereka tanpa menggunakan


PropertyT, dan mereka mungkin tidak dapat mendeklarasikan PropertyId di dalam tipe data;
namun, mereka dapat mendeklarasikan PropertyId dengan mengkhususkan PropertyTraits seperti
ini:

Jenis UDT diberi PropertyId dari 10 dengan cara ini, dan pengguna harus menjaga
keunikan PropertyId oleh mereka sendiri. Karena konsep Properties telah didefinisikan dan jenis
properti telah dideklarasikan, masalah kita adalah bagaimana caranya menyadari dua fungsi
anggota ini. Secara tradisional, properti disimpan sebagai variabel anggota dan diakses
menggunakan fungsi setter dan pengambil. Ini Metode ini sangat efisien, tetapi dengan cara ini
adalah properti tidak diakses oleh antarmuka terpadu. Kode berikut illus- menguraikan
bagaimana metode ini bisa mendapatkan akses ke elemen atom ment:

Teknik spesialisasi templat dapat digunakan untuk meningkatkan metode tradisional. Dengan
menggunakan metode ini, kita dapat mewujudkan kelas yang merupakan model Properti dan
menyimpan properti sebagai variabel anggota. Kode berikut ini menunjukkan teknik ini:
Ketika kami menggunakan metode spesialisasi templat ke mengakses properti, kita masih
perlu mendefinisikan dua fungsi anggota untuk setiap properti. Pekerjaan ini dapat
disederhanakan dengan menggunakan templat meta-programming. Meta-pemrograman template
adalah bahasa waktu kompilasi, yang berarti program yang ditulis dalam template meta-program-
menjalankan dan mendapatkan hasilnya dalam waktu kompilasi. MPL modul perpustakaan
BOOST adalah produk dari meta template pemrograman.

Komponen inti MPL adalah daftar jenis. Orang bisa lebih dulu membangun daftar jenis
dan kemudian melakukan berbagai macam operasi di atasnya, seperti menambahkan,
menghapus, menemukan, dan sebagainya. Komponen tuple10 MPL sesuai untuk digunakan di
sini, yang dihasilkan oleh warisan linier bidang tuple. Itu penggunaan tuple seperti struct dalam
bahasa C, tetapi menyediakan a antarmuka terpadu untuk mengakses anggotanya berdasarkan
jenis. Pengikut kode menggambarkan metode tuple:

Anda mungkin juga menyukai