лекция_непроцедурные_яп
.pdfНе-процедурные языки программирования
Не-процедурные языки более эффективны для написания программ по поиску больших объёмов данных, а так же когда невозможно точно описать процесс решения задачи.
К языкам не-процедурным относятся декларативные и объектно-ориентированные языки программирования.
При использовании декларативных языков подробно описываются критерии, которым должен соответствовать искомый результат, имеющийся исходной структуры и связи между ними, но не указываются способы достижения (т.е. нет готового алгоритма).
Делятся декларативные языки на две группы:
1.логические (например, Prolog)
2.Функциональные (Lisp)
При использовании логического программирования, разработчик задаёт совокупность определённых фактов, логических правил, отношений между ними в виде формул, создаёт запросы по искомой проблеме. Далее, система сама решает данную проблему, применяя механизмы логического вывода, основанные на математической логике. Программа, написанная на Prolog, состоит из двух частей:
1.Факты, совокупность которых составляет
реляционную базу данных.
2. Правила, состоящие из заголовка и подцелей. Функциональное программирование основано на
формулировании задачи в качестве совокупности определённых функций. Здесь программа выглядит как
набор уравнений, которые определяют функции и значение.
Причём значения являются функциями от других значений.
Объектно-ориентированное программирование.
Данная методика появилась в конце 20 века, основное понятие здесь - объект. С помощью ООП создаётся окружение в виде большого кол-ва объектов, каждый из которых является независимым блоком. Блоки используют для решения задач, не вникая в принципы их внутреннего функционирования.
Наиболее популярным сегодня языком ООП является
C++.
По ориентации на класс задач
По ориентации на класс задач языки делятся на:
1.Универсальные - нацеленные на решение
широкого спектра задач (Python, C++, Delphi)
2.Специализированные - многие ЯП
разрабатывались для решения строго определённого круга задач, с учётом специфики конкретной области. (Экономика, WEB
программирование, Скрипты, языки разметки, для работы с БД, для решения учебных задач,
для информационно-логических задач, для первоначального обучения основам ЯП, и.т.д.)