|
0 / 0 / 0
Регистрация: 27.05.2019
Сообщений: 22
|
|
Какой Prolog выбрать для обучения логическому программированию (наглядный синтаксис и удобство отладки)?27.05.2019, 20:47. Показов 1896. Ответов 9
Метки нет (Все метки)
Всем доброго времени суток.
Занялся самостоятельным изучением Prolog. Встал вопрос отладки и трассировки программы. В TurboProlog, на котором я пока остановился по соображениям простоты синтаксиса, отладка есть через директиву trace, но результат трассировки выводится в окно шириной в 4 строки: ощущение, как будто в замочную скважину читаешь - очень неудобно. Как это окно расширить (и можно ли вообще) в DosBox? Какие есть альтернативы? Это первый вопрос. Второй: есть ли в Prolog универсальные средства трассировки программы, т.е. вывод логов, как printf в Си? И третий: посматриваю в сторону Visual Prolog PE. Но смущает обилие файлов и директив непонятного назначения в шаблоне простейшего проекта и ограничения бесплатной версии. Есть ли смысл переходить? Удобней ли будет обучаться, отлаживать программу? Какие подводные камни могут встретиться при работе с этой средой? Ваше мнение. Буду признателен за помощь.
0
|
|
| 27.05.2019, 20:47 | |
|
Ответы с готовыми решениями:
9
Какой ВУЗ выбрать для обучения программированию: МИРЭА или МАИ? Полезен ли наглядный стенд для обучения строению компьютера Какой метод обучения выбрать? |
|
Фрилансер
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
|||
| 27.05.2019, 20:58 | |||
|
Turbo Prolog на свалку истории, однозначно
Берите SWI. Синтаксис стандартный - это ANSI-пролог Есть на любой платформе, есть онлайн вариант - http://swish.swi-prolog.org/
1
|
|||
|
0 / 0 / 0
Регистрация: 27.05.2019
Сообщений: 22
|
||||||
| 27.05.2019, 22:35 [ТС] | ||||||
|
Спасибо, что напомнили про SWI, несколько лет назад с него и пытался начать..
Мне не совсем понятно, как у него дела обстоят с типизацией и доменами имен: раздела domains, как в Turbo Prolog, тут, я так понял, вообще нет. И, соответственно, не совсем понятно, как множества значений переменных в предикатах задавать. Перечислять все возможные реализации предикатов с этими переменными что ли? Чтобы был понятен мой вопрос, такой пример: программа про обезьяну с ящиком и бананом из книги Братко "Программирование в Пролог для искусственного интеллекта", которую я попытался написать на Турбо Прологе:
З.Ы. Буду признателен, если на ошибки укажете, если таковые имеются в программе
0
|
||||||
|
Фрилансер
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
|||||||
| 28.05.2019, 03:29 | |||||||
|
В ANSI-прологах нет статической типизации. Это как раз изобретение PDC (arlat поправит, если ошибаюсь).
Если Вам нужна статическая типизация, то единственный путь - это линейка visual Prolog. Последний Пролог этой линейки без особых "синтакстических сахаров" - это версия 5.2 Она практически полностью совместима с Turbo Prolog: Объясните что к чему Но я лично не вижу особых преимуществ статической типизации. Добавлено через 5 минут
Добавлено через 48 секунд Почитайте подробнее тут: Поиск в пространстве состояний (поиск по графам тоже сюда!)
1
|
|||||||
|
798 / 601 / 158
Регистрация: 07.10.2013
Сообщений: 1,330
|
|
| 28.05.2019, 10:21 | |
|
swi-prolog IDE
Для изучения парадигмы, - SWI-Prolog, - постоянно развивается, хорошая документация (в том числе онлайн, особенно быстрый поиск), много библиотек как на самом Прологе, так и внешних на С (DLL), есть возможность работать со встроенной версией. Если надо графика, своя библиотека XPCE случай непростой, лучше интегрировать с другими средами. Собственно все можно найти на сайте swi-prolog features При необходимости перейти на Visual-Prolog не составит труда (скорость увеличится в примерно 5-7 раз), но надо иметь ввиду, что Visual он очень относительно, а если сравнивать с Visual Studio или Delphi, то совсем не вижуал ![]() Хотя сам я недавно начал изучать Visual-Prolog более плотно, может скоро выложу в доступ Крестики-нолики (пять в ряд) в графическом исполнении... Персональная версия для обучения вполне сгодиться, версии 5.2, 7.5 не берите, сразу на 9-ку без вариантов... Если докатитесь до реального проекта, то 300 евро за коммерчекую версию не такие уж деньги. Добавлено через 2 минуты по Visual Prolog есть форум как бы менее популярный, но более под него заточенный, ссылка запрещена, найдете самостоятено
1
|
|
|
0 / 0 / 0
Регистрация: 27.05.2019
Сообщений: 22
|
|||||
| 28.05.2019, 11:06 [ТС] | |||||
|
А если в приоритете наоборот передвигать и ходить, тогда да, она просто из угла в угол будет ходить только и двигать ящик возможно до бесконечности. Большое спасибо.Добавлено через 6 минут Первое, насколько я понял, в версии 9 просто свой код в проект как в 5.2 не вставишь. Надо разбираться со всей этой кодовой обвязкой, которая там в проекте автоматически генерится. А второе, не пойму, чем конкретно коммерческая версия от персональной отличается?
0
|
|||||
|
Фрилансер
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
||
| 28.05.2019, 11:09 | ||
|
0
|
||
|
798 / 601 / 158
Регистрация: 07.10.2013
Сообщений: 1,330
|
|||||
| 28.05.2019, 13:46 | |||||
|
В 9-ке сообщение выскакивает уже только один раз на 10-20 запусков, при частой отладке гораздо легче, чем раньше , да и Esc нажать-то не сложно. Компилирует чуть побыстрее, ну и добавлено кое-что (например именованные аргументы).Собственно PDC и не скрывает, - Visual Prolog is a multi paradigm programming language based on the logical language Prolog. Сам редактор кода со всякими примочками, например Ctrl+F12 переход к определению, F12 к реализации, а то с этими секциями... Однако SWI-Prolog дает все-таки классический отладчик... Из архива с примерами из файлов с номерами просто копировать в main.pro.
1
|
|||||
|
0 / 0 / 0
Регистрация: 27.05.2019
Сообщений: 22
|
|
| 28.05.2019, 16:48 [ТС] | |
|
Большое спасибо за информацию. Остальные вопросы у меня уже больше по коду, наверное, так что логично их в другой теме задать.
0
|
|
|
798 / 601 / 158
Регистрация: 07.10.2013
Сообщений: 1,330
|
|
| 29.05.2019, 09:27 | |
|
0
|
|
| 29.05.2019, 09:27 | |
|
Помогаю со студенческими работами здесь
10
"1С:Предприятие 8.1 Версия для обучения программированию" Книги для обучения программированию на Visual Basic Верный ли путь для обучения программированию с нуля? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|