Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
18 / 18 / 0
Регистрация: 08.05.2012
Сообщений: 61

dll на SWI Prolog

18.07.2013, 06:16. Показов 2669. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Кто-нибудь знает, можно ли создавать dll в SWI Prolog? В хелпе есть, как вызывать из него код C/C++, но это, по-моему, все равно что из SQL-запросов вызывать код, обрабатывающий их результаты. Можно ли использовать SWI Prolog, например, из C#? И еще, какие есть нюансы с компиляцией/интерпретацией? Можно приложения SWI Prolog запускать на машине, где нет интерпретатора?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.07.2013, 06:16
Ответы с готовыми решениями:

Как переделать программу написанную на Turbo-Prolog в SWI-Prolog?
Ребята подскажите пожалуйста как переделать эту программу написанную на Turbo-Prolog в SWI-Prolog? domains i=integer il=i* ...

В Turbo-Prolog есть возможность описать Goal. Как это реализовано в SWI-Prolog
Здравствуйте. в Turbo-Prolog есть возможность описать Goal: Goal father(X,_), write(X). И ответ мы получим сразу при запуске...

Перевод программы из Turbo Prolog в SWI-Prolog
Здравствуйте! У меня есть программа по определению внука Петра III, она написана на Turbo Prolog. Я пытался перевести её на SWI-Prolog,...

13
Заблокирован
18.07.2013, 06:41
Присоединяюсь к вопросу.
Больше интересует не DLL, а статическая сборка, вот это:
Можно приложения SWI Prolog запускать на машине, где нет интерпретатора?
Ньюансов там хватает, я например баловался с Prolog-script, штука прикольная, но без интерпретатора никак (это логично, ведь скрипт).

В СВИ для компиляции есть куча флажков, я их уже не помню, но вроде бы там есть флажок, который засовывает интерпретатор в исполняемый файл, но зависимость от библиотек сохраняется (под линуксом во всяком случае) и как впихнуть все в тот же исполняемый файл библиотеки я не нашел. Было желание завернуть все это в С++ приложение и уже к енму прилинковать библиотеки, но я забил. Кто-нибудь знает, это единственный выход?

Суть такова, что неразрешимость этого вопроса - одна из причин, по которой я забросил сви-пролог (пролог-скрипт - очень крутая штука, и кроссплатформенная, но у кого из ваших друзей установлен сви-пролог?).

Если кто-нибудь уверен что знает в каком направлении копать - подскажите, я покопаю, и оформлю результаты в статью (на блоге), чтобы больше вопросов не возникало (однако, в этом году вижу уже третью тему где поднимается похожий вопрос).

В хелпе есть, как вызывать из него код C/C++, но это, по-моему, все равно что из SQL-запросов вызывать код, обрабатывающий их результаты.
на практике я сви почти не применял, но читал, что так делается постоянно, с целью оптимизации и не только.
Вроде как нормальная перегрузка операторов без С++ не заработает (в СВИ она есть, но какая-то ущербная)
1
18 / 18 / 0
Регистрация: 08.05.2012
Сообщений: 61
13.08.2013, 10:06  [ТС]
Да, исполняемый файл на SWI сделать можно, библиотеки положил в ту же директорию, и все заработало. Не знаю правда, как там что компилируется или интерпретируется, в машинный или промежуточный код. Очень все запутанно.
Но это не главное, хочется связать SWI с другими ЯП, причем вызывать именно пролог-код из ЯП более общего назначения. Если SWI способен компилироваться, то наверно и dll можно как-то сделать. А может и нельзя. Опять-таки неясно, как использовать такую dll, если нет типизации.
http://www.lesta.de/prolog/swi... Index.aspx здесь вроде что-то написали похожее, не разобрался еще. Кажется, оно работает в режиме интерпретатора? В общем, нужна помощь знатоков
0
Заблокирован
13.08.2013, 11:21
Не знаю правда, как там что компилируется или интерпретируется
у СВИ нет компилятора в машинный код, потому что есть фича - в базу данных можно добавлять не только факты, но и правила.
Но это не главное, хочется связать SWI с другими ЯП, причем вызывать именно пролог-код из ЯП более общего назначения.
это можно сделать - в сви есть биндинги для плюсов - я их точно видел. Я не пробовал их использовать - я посмотрел что это очень неудобно.

Если вам нужен нормальный компилируемый пролог - то я думаю стоит на VIP посмотреть (хотя, он платный и только под win работает).
0
18 / 18 / 0
Регистрация: 08.05.2012
Сообщений: 61
09.09.2013, 11:02  [ТС]
А можно интерпретатор SWI встроить в приложение C#, чтобы оно работало на машинах, где не установлен SWI-prolog?
0
 Аватар для arlat
798 / 601 / 158
Регистрация: 07.10.2013
Сообщений: 1,330
07.10.2013, 12:46
Все можно, только надо потрудиться...
Если к Delphi прицепили и через COM на VBScript, то уж на C# наверняка можно.
code.google.com_p_gedemin-prolog
code.google.com_p_gedemin
gedemin.blogspot.com/2013/08/embedded-swi-prolog_html
0
18 / 18 / 0
Регистрация: 08.05.2012
Сообщений: 61
07.10.2013, 14:29  [ТС]
Цитата Сообщение от arlat Посмотреть сообщение
Все можно, только надо потрудиться...
Если к Delphi прицепили и через COM на VBScript, то уж на C# наверняка можно.
code.google.com_p_gedemin-prolog
code.google.com_p_gedemin
gedemin.blogspot.com/2013/08/embedded-swi-prolog_html
Спасибо, раньше я бы у вас порасспрашивал что-нибудь, но уже как-то охладел
Не вижу задач, где недостаточно было бы известных языков с большими удобными красивыми IDE, кучей библиотек, поддержкой известных технологий, прекрасной документацией и технической поддержкой, огромным русскоязычным сообществом и совместимостью со всем и вся, а потребовался бы еще маленький, никем не понятый пролог, для которого всё почему-то только начинает развиваться и писаться (в основном энтузиастами), хотя пролог стар, как мамонт. Негде его на практике применять, а может и незачем. Вот вы говорите, что уже очень много лет прологом не интересовались, так может он уже и не нужен вовсе стал за это время?
0
 Аватар для arlat
798 / 601 / 158
Регистрация: 07.10.2013
Сообщений: 1,330
07.10.2013, 14:59
Интересовался всегда... но ведь и зарабатывать надо.
Конъюнктура в свое время заела, но по серьезному ни на один императивный ЯП я так и не перешел, специализируюсь в большей степени как SQL-программист + всякое-разное-что-для-интерфейса.
Посмотрим, вот появился реальный проект, где будет использоваться SWI-Prolog.
Там же Delphi 5, Firbird, VBScript, все для своих задач.
0
 Аватар для nullxdth
2304 / 1063 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
07.10.2013, 19:50
Цитата Сообщение от feofilakt Посмотреть сообщение
Спасибо, раньше я бы у вас порасспрашивал что-нибудь, но уже как-то охладел
Всё дело в неверном восприятии такого нишевого языка, как Prolog. Сделать из Prolog-а язык общего назначение - это глупо и совершенно нецелесообразно.
Prolog язык для прототипирования, например, ЭС с обратным логическим выводом или задач machine learning. Язык для исследователей и эксперементаторов. И в этом смысле, у Prolog-а достаточно хорошая поддержка.
SWI-Prolog имеет отличную документацию. Также блестящую поддержку имеет коммерческий SICStus Prolog.
То есть Prolog сейчас там, где и должен быть и нет никакой несправедливости в этом смысле.

Добавлено через 4 минуты
И не надо в Prolog-е искать какую-то панацею. Это один из многочисленных инструментов, не более того. Мне он помогает делать свою работу эффективнее.
0
18 / 18 / 0
Регистрация: 08.05.2012
Сообщений: 61
08.10.2013, 04:37  [ТС]
Вам хоть раз встречались задачи, которые нельзя было бы эффективно решить на других ЯП, которые вы знаете, а прямо таки позарез нужен был пролог? Наверняка, если бы вам такую задачу дали до того, как вы прониклись прологом, вы бы и не подумали, что какая-то ее часть, оказывается, "более подходит для пролога", ибо попадает в его "нишу", а спокойненько бы ее решили на вашем тогдашнем любимом ЯП.
0
 Аватар для arlat
798 / 601 / 158
Регистрация: 07.10.2013
Сообщений: 1,330
08.10.2013, 10:41
Цитата Сообщение от feofilakt Посмотреть сообщение
... тогдашнем любимом ЯП.
Дело в том, что Пролог и был можно сказать "тогдашний" первый, ну и пусть будет "любимый", ASM и PL/1 уровня лабораторной работы не в счет...
0
18 / 18 / 0
Регистрация: 08.05.2012
Сообщений: 61
08.10.2013, 10:47  [ТС]
Цитата Сообщение от arlat Посмотреть сообщение
Дело в том, что Пролог и был можно сказать "тогдашний" первый, ну и пусть будет "любимый", ASM и PL/1 уровня лабораторной работы не в счет...
Это был ответ на комментарии nullxdth, а не ваш... Надо было цитату вставить
0
 Аватар для arlat
798 / 601 / 158
Регистрация: 07.10.2013
Сообщений: 1,330
08.10.2013, 11:19
Цитата Сообщение от nullxdth Посмотреть сообщение
Всё дело в неверном восприятии такого нишевого языка, как Prolog. Сделать из Prolog-а язык общего назначение - это глупо и совершенно нецелесообразно. Prolog язык для прототипирования, например, ЭС с обратным логическим выводом или задач machine learning. Язык для исследователей и экспериментаторов. И в этом смысле, у Prolog-а достаточно хорошая поддержка.
SWI-Prolog имеет отличную документацию. Также блестящую поддержку имеет коммерческий SICStus Prolog.
То есть Prolog сейчас там, где и должен быть и нет никакой несправедливости в этом смысле.
Полностью поддерживаю. В процессе разработки ПО сегодня применяется комплекс различных инструментов.
Никто же не будет говорить, - давайте все напишем на SQL. Хотя я знавал программистов, считающих, что они владеют SQL, а на поверку, - жалкие потуги. Так что, ребята, спорить не о чём, используйте согласно своим предпочтениям и сложившейся ситуации те инструменты, которые считаете адекватными для текущей задачи.
Я точно знаю, что буду использовать SWI-Prolog и Embedded SWI-Prolog, также как и то, что буду изначально выжимать максимум от SQL, а потом уже передавать в факты в Prolog, также как и то, что интерфейс будет на Delphi или другой подобной среде... ну, и т.д.
0
 Аватар для arlat
798 / 601 / 158
Регистрация: 07.10.2013
Сообщений: 1,330
12.09.2014, 12:09
В дополнение: SWI-Prolog interface to C#
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.09.2014, 12:09
Помогаю со студенческими работами здесь

Swi Prolog
Ребята помогите решить задания по SWI Prolog: 1.В списке символов S1, S2, ..., Sn найти длину наибольшей последовательности,...

Программа для Turbo Prolog не работает в SWI Prolog
Скажите пожалуйста как работать в SWI Prolog...я работал на турбопролог, вот например есть там решенная задачка: PREDICATES ...

Логическая задача: Какого цвета фрукты, которые любят Бет и Мэри? [SWI Prolog]
Здравствуйте! Помоги пожалуйста с реализацией 4 запроса ( 4. Какого цвета фрукты, которые любят Бет и Мэри?) Мэри любит персики....

Настройка SWI-Prolog
При выводе большого количества строк (после окончания работы предиката) прокрутить до начала вывода не получается. Остаётся или записывать...

SWI prolog. Списки
Помогите пожалуйста кто-нибудь со списками в swi prolog, а то я что-то их не очень понимаю:gsad:( Задача звучит так: Есть список,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru