ile büyük programlama Prolog kodumu modüler halde tutmaya çalışıyorum ve bunun nasıl yapılacağı konusunda tavsiyede bulunup bulunmadığını merak ediyorum. Ben bu basit consult
s ile yaptığım şekilde, ama benim dosya sayısı artar ve çatışmalara isim başa çıkmak gibi hantal oluyor. Bir kaynak dosyanın üst kısmında bulunan "tipik" bir içe aktarmaya benzer herhangi bir yapı var mıdır? Örneğin, bir kaynak dosyanın en üstünde " " Program özelse, gprolog
kullanıyorum. Herhangi bir yardım için şimdiden teşekkür ederiz.Prolog
Prolog
cevap
GNU Prolog 1.4.0 kararlı sürümü için tam destek sağlar cari Logtalk geliştirme salınımını, alın. Bir Subversion checkout veya Git clone yaparak alabilirsiniz (ayrıntılar için bkz. http://logtalk.org/download.html). Ya da sadece beni özel olarak postala ve senin için bir yükleyici kuracağım. Logtalk, geniş programlama için sıfırdan tasarlanmıştır. Taşınabilir uygulamalar yazmak için kullanabilirsiniz (Logtalk, dokuz farklı Prolog derleyicide çalışır). Hatta bir modül sistemi içermeyen GNU Prolog gibi Prolog derleyicilerinde Prolog modül kodunu çalıştırmak için de kullanabilirsiniz. Logtalk, yüzlerce örneğe, taşınabilir kütüphanelere ve eksiksiz belgelere sahiptir. Prolog'dan Logtalk'a gitmek oldukça kolaydır. Her gün taşınan taşınabilir kod atımları yazıyor ;-)
GNU-Prolog'un gerçek bir modül sistemi yoktur, bu nedenle yaklaşımınız şu anda alabileceğiniz en iyisidir. Belki de GNU-Prolog ileride bir modül sistemi ekleyebilir, ancak bunun üzerine bir iş bahse girmezdim.
En sık kullanılan modül sistemi, aynı mod adı ve ariteyle farklı modüller halinde tanımlamaya izin verir. Böylelikle, isimlerin çarpışmaları önlenir. Atomlar ve jeneratörler modül sınırları üzerinde aynı kalır. SICStus, YAP, SWI, Ciao, IF ve ISO standardı gibi sistemler böyle bir sisteme sahiptir.
XSB tarafından başka bir modül sistemi sunulmaktadır - functor tabanlı olarak adlandırılır.
Doğru olanın yanlış olduğu söyleniyor. Bununla birlikte, birkaç Prolog'un (GNU Prolog dahil) üzerine bir modül sistemi ve bir OO sistemi uygulayan Logtalk'ı düşünebilirsiniz.
- 1. Prolog
- 2. Prolog
- 3. Prolog
- 4. Prolog -
- 5. Bir prolog betiği çalıştırırken prolog yazdırma sorgusu sonuçlarını nasıl yapabilirim
- 6. Dizeleri prolog olarak yönet
- 7. Prolog sembolü tablo
- 8. Prolog listesi ardışık çift
- 9. SICStus Prolog JIT derleyicisi
- 10. prolog sonsuz döngü bilinmiyor
- 11. Kural bağımlılığı grafiği Prolog
- 12. Rastgele öğeler Prolog
- 13. C# ile Prolog Entegrasyonu #
- 14. Prologların listesini al Prolog
- 15. Prolog kural bağımlılıklarını görüntüleme
- 16. Prolog: Yinelenenleri Kaldırma
- 17. Dosyaya yazılıyor (Prolog)
- 18. Bir Prolog algoritması
- 19. Prolog: toplam X heceleri
- 20. Prolog kullanarak listedeki iki eleman?
- 21. Basitleştirilmiş Gezici Satış Noktası Prolog
- 22. Anahtarı ifadeleri Prolog yüklemler ise
- 23. Saf prolog küçük programların kaynağı
- 24. İki Prolog ilişkisi oluşturmak ve tanımlarını tek bir Prolog dosyasına yerleştirmek istiyorum
- 25. Basit PROLOG sorunu: Prolog veritabanınıza karşı birden çok sorguyu nasıl test edersiniz?
- 26. Prolog, BST ağaçlarını inorder listesinden yeniden oluştur
- 27. Bad Ivy dosya - içerik izin verilmiyor prolog
- 28. Prolog - bazı temel aritmetik işlemleri uygulaması
- 29. Windows'ta Swipl prolog içindeki Ekranı Temizleme
- 30. Prolog Or (;) Kural Dönüş Birden Fazla Sonuç
Belirtilen tahmini tabanlı modül sistemleri, açık kaynak veya ticari olmaları ile çok benzerler. Birinden diğerine bağlantı nispeten basit. Yani, birkaç olası sağlayıcı var. Logtalk sistemi oldukça farklı ve tek bir kaynak var. – false
Evet, Logtalk farklı. Ancak, farklılıklara rağmen, Logtalk, Prolog modüllerini işlevselliklerinin çoğunda kullanır ve Prolog modüllerini nesne olarak derleyebilir. Örneğin, geçerli SWI-Prolog temel kütüphanesinin çoğu, dosya adı uzantısının sadece .pl'den .lgt'ye değiştirilmesiyle derlenebilir ve nesne olarak kullanılabilir. –