Ббк 32. 973-018 г рецензент канд физ мат наук, Ф. А. Мурзин


Парадигматическая характеристика языков логического программирования


Download 278.16 Kb.
bet47/68
Sana12.10.2023
Hajmi278.16 Kb.
#1700499
TuriКурс лекций
1   ...   43   44   45   46   47   48   49   50   ...   68
Bog'liq
FIT-Gor-PP3

Парадигматическая характеристика языков логического программирования



Параметр

Конкретика

эксплуатационная прагматика ЯП

Неопределенные постановки задач. Эмпирическое накопление рецептов, достаточное
для решения некоторых практических задач.

регистры абстрактной машины

S E C D R
S – стек промежуточных результатов. E – стек локальных переменных.
C – стек основной программы.
D – дамп для защиты и восстановления данных. R – стек для перебора вариантов.
Результат – заключение об успехе-неудаче вывода цели.

категории команд абстрактной машины

Кроме типов команд, характерных для ФП:

  • выбор варианта;

  • восстановление контекста при переборе вариантов.

реализационная прагматика

В дополнение к ФП обработка разностных списков, отслеживание низкого приоритета тупиков и сечений. Вместо произвольного выбора варианта
реально варианты перебираются в порядке представления.

парадигматическая специфика

Расширение класса решаемых задач
использованием недетерминированных моделей.

ЛЕКЦИЯ 7. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ

При переходе к практическому программированию обычно возникают проблемы, связанные с изменением отношения к постановке задачи и оценке методов еѐ решения в процессе подготовки, отладки и эксплуатации программы.


Прежде всего, необходимость в целостном решении полной задачи «с нуля» теперь встречается достаточно редко. Как правило, необходимо учитывать, что отчасти задача или похожие задачи уже имеют готовые решения. Их надо найти, изучить и выбрать фрагменты, наиболее подходящие для конструирования практичного решения нужной задачи. Обычно сложные задачи декомпозируются на модули, разрабатываемые отдельно, но функционировать модулям предстоит совместно. Кроме того, снижение трудозатрат на создание программ достигается программированием многократно используемых компонентов, условия применения которых заранее не известны.
Решение таких проблем требует углубленного анализа структур данных и логики вычислений, обоснованного выбора методов обработки данных и декомпозиции программы на удобно комплексируемые фрагменты. Объектно-ориентированное программирование (ООП) в настоящее время – самый популярный подход к решению этих проблем для широкого класса задач, не требующих предельно жестких эксплуатационных характеристик. ООП рассматривает информационный процесс как частичную обработку объектов посредством реагирования на события с помощью методов, выбираемых в зависимости от типа обрабатываемых данных. Центральный момент – структурирование множества частных методов, используемых в программе, в соответствии с иерархией классов объектов, обрабатываемых этими методами, в предположении, что определяемые в программе построения могут локально видоизменяться при сохранении основных общих схем информационного процесса. Это позволяет выполнять модификации программы объявлением новых подклассов и дописыванием методов обработки объектов отдельных классов без
радикальных изменений в ранее отлаженном тексте программы.
Связь методов с классами объектов позволяет вводить одноименные методы над разными классами объектов (полиморфизм), что упрощает логику управления: на уровне текста программы можно не распознавать принадлежность классу – это сделает система программирования. Именно так обычно реализовано сложение и другие операции, одинаково изображаемые для чисел, строк, векторов, множеств и т. п. Основной принцип – выбор метода в зависимости от типа данных.
Сборка программы из автономно развивающихся компонентов опирается на формулировку достигаемой ими цели, понимание которой гарантирует не только корректность полученного результата, но и рациональность его использования. Формулировать цели частей программы – процесс нетривиальный. В его основе лежат различные подходы к классификации понятий. Для демонстрации преимуществ ООП следует рассматривать задачи, решение которых требует более одного шага. Первый шаг – программирование ядра программы или его комплектация из готовых модулей с оформлением иерархии классов объектов, содержащих первичный комплект методов. Второй и последующие шаги – развитие иерархии классов и/или перегрузка методов. Задачи, постановки которых допускают более одного сценария развития, потребуют ещѐ одного специального шага: определение абстрактных/виртуальных классов в качестве точек варьирования возможного развития постановки задачи.




    1. Download 278.16 Kb.

      Do'stlaringiz bilan baham:
1   ...   43   44   45   46   47   48   49   50   ...   68




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling