Хорошо, я знаю, что это очень общий вопрос и что были написаны некоторые статьи по этому вопросу, но у меня есть ощущение, что эти публикации охватывают очень простой материал, и я ищу что-то более продвинутое, что улучшит стиль и Efficency. Это то, что у меня есть в документе:
- "Исследовательский отчет AI-1989-08" Эффективный пролог: практическое руководство "Майкла А. Ковингтона, 1989 г.
- "Эффективное программирование пролога" Тимо Кнутила, 1992 г.
- "Руководства по кодированию для Prolog" от Covington, Bagnara, O'Keefe, Wielemaker, Price, 2011
Образцы, охватываемые в этих разделах: хвостовая рекурсия и дифференциальные списки, правильное использование индексирования, правильное использование разрезов, исключение утверждений и отводов, исключение CONSING, рекомендации по форматированию кода (отступы, if-then-elses и т.д.), соглашения об именах, документирование кода, порядок аргументов, тестирование.
Что бы вы добавили здесь из своего личного опыта с Prolog? Существуют ли специальные правила стиля, применимые только к программированию CLP? Знаете ли вы о некоторых проблемах с общей эффективностью и знаете, как с ними бороться?
UPDATE:
Некоторые интересные (но все же слишком простые и слишком общие для меня) пункты сделаны здесь: Инструкции по программированию Prolog команды Lifeware
Просто чтобы выделить всю проблему, я хотел бы ответить "Правила кодирования для Prolog" (Covington и др.):
Насколько нам известно, когерентный и достаточно полный набор правил кодирования для Prolog никогда не публиковался. Более того, когда мы смотрим на сборник опубликованных программ Prolog, мы не видим де-факто стандарта. Важнейшей причиной этого очевидного упущения является то, что небольшое сообщество Prolog из-за отсутствия всеобъемлющего языкового стандарта далее фрагментируется в суб-сообществах, сосредоточенных вокруг отдельных систем Prolog, ни одна из которых не имеет доминирующего положения.