Пример непроцедурных языков программирования

2.2.4. Непроцедурные языки

Непроцедурные языки составляют группу языков, описывающих организацию данных, обрабатываемых по фиксированным алгоритмам (табличные языки и генераторы отчетов), и языков связи с операционными системами.

Позволяя четко описывать как задачу, так и необходимые для её решения действия, таблицы решений дают возможность в наглядной форме определить, какие условия должны быть выполнены прежде чем переходить к какому-либо действию. Одна таблица решений, описывающая некоторую ситуацию, содержит все возможные блок-схемы реализаций алгоритмов решения.

Табличные методы легко осваиваются специалистами любых профессий.

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

Развитие языков программирования

Ассемблер

Язык Ассемблера – это символическое представление машинного языка. Он облегчает процесс программирования по сравнению с программированием в машинных кодах.

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

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

В принципе, язык Ассемблер является машинным языком. И программист реализующий какую-либо задачу на языках высокого уровня, с помощью Ассемблера может определить осмыслено ли решение данной задачи, с точки зрения использования ЭВМ.

Умея разобраться в распечатке языка ассемблера, дает возможность облегчить поиск ошибок в программах, т.к. некоторые языки являются компиляторами (см. п. 1.2.).

    1. Лисп Один из самых старых языков программирования Фортран был создан в 50-х гг. нашего века. Фортран и подобные ему языки программирования (Алгол, ПЛ/1) предназначались для решения вычислительных задач, возникающих в математике, физике, инженерных расчетах, экономике и т.п. Эти языки в основном работают с числами.

    Второй старейший язык программирования Лисп (List Information Symbol Processing), Дж. Маккарти в 1962 г. скорее для работы со строками символов, нежели для работы с числами. Это особое предназначение Лиспа открыло для программистов новую область деятельности, известную ныне, как «искусственный интеллект». В настоящее время Лисп успешно применяется в экспертных системах, системах аналитических вычислений и т.п.

    Обширность области возможных приложений Лиспа вызвала появление множества различных диалектов Лиспа. Это легко объяснимо: применение Лиспа для понимания естественного языка требует определенного набора базисных функций, отличных, например, от используемого в задачах медицинской диагностики.

    Существование множества различных диалектов Лиспа привело к созданию в начале 80-х гг. Common LISP Комитета, который должен был выбрать наиболее подходящий диалект Лиспа и предложить его в качестве основного. Этот диалект, выбранный Комитетом в 1985г., получил название Common LISP . В дальнейшем он был принят в университетах США, а также многими разработчиками систем искусственного интеллекта, в качестве основного диалекта языка Лисп.

    Язык программирования Лисп существенно отличается от других языков программирования, таких, как Паскаль, Си и т.п. Работа с символами и работа с числами как с основными элементами требует разных способов мышления.

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

    Профессор Массачусетского технологического института Дж. Самман заметил, что математическая ясность и предельная четкость Лиспа – это еще не все. Главное – Лисп позволяет сформулировать и запомнить «идиомы», столь характерные для проектов по искусственному интеллекту.

    Источник

    лекция_непроцедурные_яп

    Не-процедурные языки программирования Не-процедурные языки более эффективны для написания программ по поиску больших объёмов данных, а так же когда невозможно точно описать процесс решения задачи. К языкам не-процедурным относятся декларативные и объектно-ориентированные языки программирования. При использовании декларативных языков подробно описываются критерии, которым должен соответствовать искомый результат, имеющийся исходной структуры и связи между ними, но не указываются способы достижения (т.е. нет готового алгоритма). Делятся декларативные языки на две группы: 1. логические (например, Prolog ) 2. Функциональные ( Lisp ) При использовании логического программирования, разработчик задаёт совокупность определённых фактов , логических правил , отношений между ними в виде формул , создаёт запросы по искомой проблеме. Далее, система сама решает данную проблему, применяя механизмы логического вывода, основанные на математической логике . Программа, написанная на Prolog , состоит из двух частей: 1. Факты , совокупность которых составляет реляционную базу данных.

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

    Источник

    Читайте также:  Знаки операции языка программирования
Оцените статью