Cтраница 2
Преподаватели логического программирования соглашаются, как правило, в том, что логику более легко воспринимают те, у кого нет предшествующего опыта вычислений на машине, чем те, которые уже привыкли к традиционным формальным системам программирования. Того, кто в течение десяти лет программировал с помощью такого формализма при поддержке хорошо знакомого обеспечения и с ожиданием определенных стандартов, потребуется, видимо, долго убеждать в том, что логика, находящаяся все еще на сравнительно ранней стадии развития, предлагает довольно заманчивую альтернативу. Разумеется, нельзя ожидать - или даже желать - чтобы обращение в другую веру состоялось сразу же вслед за демонстрацией хорошо подобранных примеров, которые тонко показывают в выгодном свете такие фантастические возможности, как получение многочисленных решений или свойство обратимости. Более общие принципы методологии программирования, важность приложений, связанных с базами знаний, и соответствующая эксплуатация грядущего нового поколения архитектур вычислительных машин - вот те действительные проблемы, которые следует использовать для мотивировки интереса к логике, и все эти проблемы, где необходимо, нужно довести до сознания при помощи надлежащей подготовки и образовательных программ. До сих пор, однако, имеется слишком мало доступной литературы, написанной специально для того, чтобы помочь работающим профессиональным программистам по достоинству оценить логику. [16]
В логическом программировании существует другая важная категория символов - функциональные символы. Отсутствие функциональных символов является одной из наиболее важных характеристик Дейталога. [17]
В логическом программировании и в более общем случае в некоторых формализациях логики первого порядка допускаются сложно-структурированные термы, построенные с помощью функциональных символов, констант и переменных. Использование функциональных символов позволяет представлять объекты реального мира согласованным и компактным образом. [18]
В логическом программировании таким водителем является логический интерпретатор - программа, знающая, как использовать компьютер для того, чтобы выводить следствия из произвольного множества логических предложений. Программист должен обеспечить как правильность данных предложений, так и достаточную их информативность для того, чтобы требуемые следствия оказались выводимыми. [19]
В логическом программировании истина понимается в автоэпи-стемическом смысле: истина - это доказуемость на основании знаний агента. Возможна ситуация, когда не удается доказать ни само утверждение, ни его отрицание, находясь на данном уровне знаний, тогда истинностное значение этого утверждения не определено. [20]
В логическом программировании в представлении программы и данных наблюдается другая крайность. В логическом программировании нет необходимости отделять данные от программы, программу можно трактовать как совокупность логических правил. [21]
В логическом программировании и продукционных системах - - процедурная интерпретация правила вида если А то В, при которой добавление в базу знаний факта А вызывает добавление в нее и факта В. [22]
В логическом программировании и продукционных системах - процедурная интерпретация правила вида если А то В, при которой добавление в базе знаний факта А вызывает добавление в нее факта В. [23]
В логическом программировании, а также в большинстве версий ПРОЛОГа, преобладает следующая система обозначений. [24]
Введение в логическое программирование на микро - Прологе: Пер. [25]
Введение в логическое программирование на микро - Прологе. Кларк и Сикель ( Clark К. [26]
Естественное расширение логического программирования и управления базами данных заключается в построении новых классов систем, расположенных на пересечении этих двух областей. Такие системы основаны на использовании логического программирования в качестве языка запросов и соединяют формулирование запросов и ограничений в стиле логического программирования с технологией баз данных для эффективного и надежного запоминания данных в массовой памяти. [27]
Взаимодействие системы логического программирования и систем баз данных реализуется в процессе вывода с целью извлечения конкретных фактов, необходимых для ответа на текущую цель или подцель. При этом связывание осуществляется, когда системе логического программирования требуются дополнительные данные от системы баз данных для продолжения вывода. Сильное связывание называется также динамическим связыванием, поскольку оно выполняется в рамках реализации каждого правила. [28]
Практическая эффективность логического программирования зависит не только от удачной аксиоматизации задачи, но в еще большей мере от качества интерпретатора, реализующего поиск Доказательства. [29]
Существенное отличие логического программирования от традиционного заключается в том, что мы должны описывать логическую структуру задач, а не указывать компьютеру, как именно ему следует их решать. Люди, не имеющие предыдущего опыта вычислений на ЭВМ, склонны считать, что программирование есть и всегда было по природе своей логическим делом, и часто они бывают удивлены или даже разочарованы, когда, познакомившись с языками, подобными языку Бейсик, обнаруживают, что на самом деле это не так. Они узнают вместо этого, что традиционный способ написания программ сильно зависит от внутренних механизмов компьютера, что, конечно, само по себе разумно, но тем не менее не связано, по-видимому, непосредственно с исходным пониманием задачи. Наоборот, программисты, обученные использованию только традиционных языков, при знакомстве с логическим программированием могут столкнуться со сравнимыми трудностями приспособления. Инстинктивно, желая эффективно управлять машиной, они испытывают смутное чувство потери, когда осваивают язык, не имеющий машинно-ориентированной специфики. У них может наблюдаться программистский эквивалент синдрома лишения, следующий за длительным периодом наркотического пристрастия к оператору присваивания. [30]