Saya belum pernah mendengar tentang penggunaan bahasa pemrograman logis (seperti Prolog) dalam industri perangkat lunak, saya juga tidak tahu penggunaannya dalam pemrograman hobi atau proyek sumber terbuka. Itu (Prolog) digunakan sebagai bahasa akademik sampai batas tertentu, meskipun (mengapa itu digunakan dalam akademisi?).
Ini membuat saya bertanya-tanya, mengapa Anda harus menggunakan pemrograman logika, dan mengapa tidak? Mengapa tidak mendapatkan penggunaan industri yang terdeteksi?
Kami menggunakannya untuk membuat parser. Itu lebih mudah untuk dikerjakan daripada lex / yacc.
Ini tidak bisa dijawab. Apa artinya "terdeteksi"? Siapa yang perlu mendapatkan memo deteksi?
http://www.meridiansystems.com/landing/ppc/prolog/getvideo.asp
Tanyakan Meridian Software tentang penawaran prolog mereka jika Anda menginginkan fakta.
Namun, ada beberapa hambatan untuk masuk yang saya alami.
Pertama, prolog bisa lambat. Ketika ada banyak aturan kandidat dan tidak ada operasi pemotongan sederhana untuk membatasi ruang pencarian, perlu beberapa saat untuk menyelesaikan sesuatu.
Kedua, prolog tidak prosedural atau fungsional, sehingga banyak programmer menolak menggunakannya. (Menariknya, beberapa programmer menolak menggunakan SQL juga. Untuk itu, beberapa programmer enggan menggunakan SQL dan melakukan hal-hal aneh seperti menghindari bergabung dengan operasi, atau mengklaim bahwa
COUNT(*)
secara ajaib tidak efisien.)Ketiga, prolog membutuhkan pemikiran yang cukup jelas tentang berbagai kasus. Pemrograman prosedural dapat menjadi ceroboh dan masih berfungsi dengan baik. Pernyataan yang tidak dapat dieksekusi dapat diterima.
Berikut ini dapat diterima di sebagian besar lingkaran.
Pemikiran keruh semacam ini membuat Anda kesulitan dalam prolog.
sumber
Salah satu masalah adalah bahwa Prolog tidak benar-benar pemrograman dalam logika predikat tingkat pertama, yang secara komputasi tidak bisa diterapkan (saya tidak ingat sampai sejauh mana, tapi itu tidak dalam NP, dan jika Anda menambahkan aritmatika ke dalamnya, itu secara formal tidak dapat diputuskan). Karena itu, ini penyederhanaan.
Dalam logika, proposisi dapat dibuktikan benar, terbukti salah, atau tidak terbukti baik. Prolog hanya terbukti dan tidak terbukti, "tidak terbukti" biasanya berarti palsu. Selain itu, urutan klausa Prolog dapat mempengaruhi eksekusi, yang tidak berlaku untuk klausa logis. Dalam kursus yang saya gunakan, saya mulai berpikir tentang Prolog sebagai bahasa pencocokan pola lebih dari bahasa logis.
Oleh karena itu, pemrograman Prolog tidak banyak bergantung pada kebenaran logis seperti bahasa Prolog itu sendiri. Ini adalah bahasa yang berguna dalam beberapa hal, tapi itu tidak mendekati mainstream, dan belum memiliki alat dan manfaat komunitas dari bahasa seperti C ++.
sumber