Вторник, 22.05.2012, 10:23
Приветствую Вас Гость

Сайт факультета ЭВТ ВолгГТУ

Меню сайта
Форма входа
Логин:
Пароль:

Войдите, чтобы не видеть рекламу
Категории раздела
Дополнительно
Реклама


Это интересно...

Сисадмин мнил себя богом сети, однако электрик грубо развеял этот миф ...

Поиск
Наш опрос
С какими из данных библиотек Вам приходилось работать?
Всего ответов: 268
Статистика

Онлайн всего: 15
Ныкаются: 15
Пользователей: 0
Главная » Статьи » Статьи » Программирование [ Добавить статью ]

Пролог, ООП и визуальное программирование


Сегодня почти идеальным языком программирования является C++, которым обеспечивается как высокая эффективность получаемых кодов, так и поддержка структур данных, максимально приближенных к моделируемым программами взаимосвязанным сущностям. C++ легко вписывается в любую систему визуального создания программ. Это обусловлено его объектно-ориентированной природой. С другой стороны, попытайтесь представить ход решения на C++ следующей задачи: рассчитать в заданной электрической схеме сопротивление между заданными точками. Электрическая схема естественно формализуется нумерацией точек соединения контактов и таблицей из трех столбцов, содержащих пары номеров непосредственно соединенных контактов и сопротивления между ними. Используя Пролог, автор решил эту задачу менее чем за час. В программе на C++ фактически пришлось бы реализовывать встроенные механизмы Пролога. Однако, используя Пролог, трудно создать приемлемый пользовательский интерфейс в силу того, что этот язык практически невозможно соединить с концепциями ООП.

Работая с системой наподобие Visual Prolog, ощущаешь, что работаешь на самом деле с двумя хотя и искусстно, но искусственно склеенными частями от разных механизмов. Единственная возможность естественным образом соединить механизмы вывода Пролога с современным интерфейсом пользователя — это создать на C++ класс Prolog, в простейшем случае, имеющий вид:

class Prolog
{
  public:
    list<string> db; // пролог-программа
    string goal; // цель
    list<string> results; // список результатов
    void find(); // поиск решений
};.

Подобный подход позволит как использовать метод поиска решений, встроенный в Пролог, так и использовать средства C++, в частности, для организации ввода-вывода. Предложенный класс Prolog можно значительно усовершенствовать. Например, добавив в закрытую часть класса внутреннее, эффективное для поиска решений представление базы данных. Можно добавить средства для отслеживания работы функции поиска и прочее, и прочее...

Создавая подобный класс, можно использовать неплохие средства GNU Пролога или других реализаций этого языка для связи с программами на C++.


Copyright © 2000 Лидовский Владимир Викторович.
Опубликована в журналах "Компьюлог” №4, 2000, с.63–65, "Информационные технологии” №3, 2001, с.11–13.

Похожие статьи

Категория: Программирование | Добавил: mauzer (06.02.2011)
Просмотров: 566 | Теги: ООП, пролог, prolog | Рейтинг: 1.0/1 |
Всего комментариев: 0
Имя *:
Email:
Код *:

Рейтинг@Mail.ru Создать сайт бесплатно