ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Логическое и процедурное программирование
Логическое программирование — парадигма программирования, а также раздел дискретной математики, изучающий методы и возможности этой парадигмы, основанная на выводе новых фактов из данных фактов согласно заданным логическим правилам. Логическое программирование возникло как упрощение функционального программирования для математиков и лингвистов, решающих задачи символьной обработки. Вместо описания алгоритма решения задачи описывается мир задачи, какие имеются объекты, их свойства и отношения между ними. За основу описания берутся отношения между объектами. Логическая программа представляет собой набор отношений, которые называются фактами, и правил, на основании которых могут быть получены новые отношения. Она не задает никакого процесса вычислений. Это своего рода база данных (БД) о предметной области задачи. Ее применение инициализируется запросом. Поиск ответа на запрос заключается в попытке логического вывода запроса на основании фактов и правил, имеющихся в БД. Поиск решения выполняется специальной программой - интерпретатором. Первым языком логического программирования был язык Planner, в котором была заложена возможность автоматического вывода результата из данных и заданных правил перебора вариантов (совокупность которых называлась планом). Planner использовался для того, чтобы понизить требования к вычислительным ресурсам (с помощью метода backtracking) и обеспечить возможность вывода фактов, без активного использования стека. Затем был разработан язык Prolog, который не требовал плана перебора вариантов и был, в этом смысле, упрощением языка Planner. В настоящее время самый популярный язык логического программирования – Prolog, с множеством диалектов, являющийся по своей сути универсальной машиной вывода, работающей в предположении замкнутости мира фактов. Другие менее популярные языки: Datalog, Mercury, Oz. Преимущества логического программирования: - задача программиста – описание логической модели предметной области в терминах объектов, их свойств и отношений между ними (без деталей): описание данных и логики их обработки ~ аналогия с ООП; - удобство описания отношений между объектами (реляционная модель); - компактность кода (обработка структурированных данных, лог. правила); - возможность перебора и поиска различных решений, заложенная в язык; - легкость понимания (описание отд. Правил), отладки программ (trace); - легкость описания сложных структур данных (деревья, списки и т.п.); - эффективный метод вычислений – рекурсия - отсутствие указателей, операторов присваивания и безусловного перехода; - множество областей для применения: автоматический перевод, обработка текстов, экспертные системы, САПР, Data-minig системы, автоматическое управление, СУБД, символьные вычисления. Процедурное программирование - есть отражение фон Неймановской архитектуры компьютера. Программа, написанная на процедурном языке, представляет собой последовательность команд, определяющих алгоритм решения задачи. Основная идея процедурного программирования - использование памяти для хранения данных. Основная команда- присвоение, с помощью которой определяется и меняется память компьютера. Программа производит преобразование содержимого памяти, изменяя его от исходного состояния к результирующему. Различают следующие языки процедурного программирования: Язык Фортран создан в начале 50-х годов 20-го века для программирования научно-технических задач; Кобол – создан в конце 60-х годов 20-го века для решения задач обработки больших объемов данных, хранящихся на различных носителях данных; Алгол (1960 год) – это многоцелевой расширенный язык программирования. В нем впервые введены понятия “блочная структура программы” и “динамическое распределение памяти”; В середине 60-х годов 20-го века был создан специализированный язык программирования для начинающих – BASIC. Характеризуется простотой освоения и наличием универсальных средств для решения научных, технических и экономических задач, а также задач, например, игровых. Все перечисленные выше языки были ориентированы на различные классы задач, но они в той или иной мере были привязаны к конкретной архитектуре ЭВМ. В 1963-1966гг был создан многоцелевой универсальный язык PL. Этот язык хорошо приспособлен для исследования и планирования вычислительных процессов, моделирования, решения логических задач, разработки систем математического обеспечения. Язык Паскаль (PASCAL) (1968-1971 гг.) - язык процедурного программирования наиболее популярный для ПК, который и в настоящее время успешно применяется. В основу языка Pascal положен подход от общей задачи к частным (более простым и меньшим по объему). К основным принципам, которыми обладает Паскаль, можно отнести: а) Структурное программирование, которое основано на использовании подпрограмм и независимых структур данных; б) Программирование “сверху-вниз”, когда задача делится на простые, самостоятельно решаемые задачи. Затем выстраивается решение исходной задачи полностью сверху вниз. К языкам процедурного программирования можно отнести язык АДА (1979 г) Язык назван в честь первой программистки Ады Лавлейс- дочери Байрона. Его отличает модульность конструкций. Язык СИ (начало 70-х годов) также относится к языкам процедурного программирования. Первоначальный его вариант планировался как язык для реализации операционной системы Unix вместо языка Ассемблера. Одной из особенностей языка СИ является то, что различия между выражениями и операторами сглаживаются, что приближает его к функциональным языкам программирования. Кроме того, в языке СИ отсутствует понятие процедуры, а использование подпрограмм основано на понятии функции, которая может сочетать в себе возможности процедуры. С одной стороны, по набору управляющих конструкций и структур данных его можно отнести к языкам высокого уровня, а с другой – он имеет набор средств прямого обращения к функциональным узлам компьютера, а это означает, что его можно использовать как операционный язык.
Не нашли, что искали? Воспользуйтесь поиском:
|