Логические реляционные языки программирования

3 Типы языков программирования высокого уровня

Если в качестве признака классификации взять синтаксис образования его конструкций, можно условно разделить на следующие типы:

3.1. Процедурный (алгоритмический) язык

  • необходимостью явного управления памятью, в частности, описанием переменных;
  • малой пригодностью для символьных вычислений;
  • отсутствием строгой математической основы;
  • высокой эффективностью реализации па традиционных ЭВМ.

3.2 Функциональный (аппликативный) язык

  • классы констант, которыми могут манипулировать функции;
  • набор базовых функций, которые программист может использовать без предварительного объявления и описания;
  • правила построения новых функций из базовых;
  • правила формирования выражений на основе вызовов функций.

3.3 Логический (реляционный) язык

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

3.4 Объектно-ориентированный язык

Объектно-ориентированный язык создает окружение в виде множества независимых объектов. Каждый объект ведет себя подобно отдельному компьютеру, их можно использовать для решения задач как «черные ящики», не вникая во внутренние механизмы их функционирования. Объектно-ориентированные языки программирования пользуются в последнее время большой популярностью среди программистов, так как они позволяют использовать преимущества объектно-ориентированного подхода не только на этапах проектирования и конструирования программных систем, но и на этапах их реализации, тестирования и сопровождения. В современных объектно-ориентированных (ОО) языках используются следующие методы: наследование,инкапсуляция,полиморфизм. В некоторых объектно-ориентированных языках все методы классов являются виртуальными. Многие современные языки специально созданы для облегчения объектно-ориентированного программирования. Однако следует отметить, что можно применять техники ООП и для не-объектно-ориентированного языка и наоборот, применение объектно-ориентированного языка вовсе не означает, что код автоматически становится объектно-ориентированным. Часть языков (иногда называемых «чисто объектными» — Java или Ruby) целиком построена вокруг объектных средств — в них любые данные являются объектами, любой код — методом какого-либо класса и невозможно написать программу, в которой не использовались бы объекты. Другие языки («гибридные») включают ООП-подсистему в исходно процедурный язык. В них существует возможность программировать, не обращаясь к объектным средствам. Классические примеры — C++ и Delphi (Object Pascal).

Читайте также:  Tia portal язык программирования sql

Источник

Функциональное программирование

Сущность функционального (аппликативного) программирования определена А. П. Ершовым как «. способ составления программ, в которых единственным действием является вызов функции, единственным способом расчленения программы на части является введение имени для функции, а единственным правилом композиции — оператор суперпозиции функции. Никаких ячеек памяти, ни операторов присваивания, ни циклов, ни, тем более, блок-схем, ни передачи управления».

Роль основной конструкции в функциональных языках играет выражение: К выражениям относятся скалярные константы, структурированные объекты, функции, тела функций и вызовы функций. Функция трактуется как однозначное отображение из X в X, гдеX — множество выражений.

Аппликативный язык программирования включает следующие элементы:

  • классы констант, которыми могут манипулировать функции;
  • набор базовых функций, которые программист может использовать без предварительного объявления и описания;
  • правила построения новых функций из базовых;
  • правила формирования выражений на основе вызовов функций.

Логическое программирование

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

Источник

14.1.3. Логическое программирование

Новую область – логическое, или реляционное программирование, – открыло появление языка PROLOG (ПРОЛОГ) (PROgramming in LOGic – программирование в терминах логики). Этот язык был создан французским ученым А. Кольмероэ в 1973 году. В настоящее время известны и другие языки, однако наиболее развитым и распространенным языком логического программирования является именно Пролог. Так, имеется свыше 15 его различных реализаций на ПЭВМ. Языки логического программирования, в особенности Пролог, широко используются в системах искусственного интеллекта.

Центральным понятием в логическом программировании является отношение. Программа представляет собой совокупность определений отношений между объектами (в терминах условий или ограничений) и цели (запроса). Процесс выполнения программы трактуется как процесс общезначимости логической формулы, построенной из программы по правилам, установленным семантикой используемого языка. Результат вычисления является побочным продуктом этого процесса. В реляционном программировании нужно только специфицировать факты, на которых алгоритм основывается, а не определять последовательность шагов, которые требуется выполнить. Это свидетельствует о декларативности языка логического программирования. Она метко выражена в формуле Р. Ковальского: «алгоритм = логика + управление».

Языки логического программирования характеризуются:

— строгой ориентацией на символьные вычисления;

— возможностью инверсных вычислений, то есть переменные в процедурах не делятся на входные и выходные;

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

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

14.2. Основные понятия языков программирования.

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

алфавит– множество символов, с помощь которых записывается текст программы;

оператор – синтаксическая конструкция, предназначенная как для записи алгоритмических действий по преобразованию данных, так и для задания порядка выполнения других действий;

идентификатор (имя) – специальная неделимая группа символов из алфавита языка, используемая при записи операторов и ряда других элементов программы;

константа – идентификатор, имеющий постоянное значение, которое может быть в дальнейшем использовано в программе; изменять значение констант запрещается;

метка – элемент программы, предназначенный для указания в программе места, на которое затем можно передать управление.

переменная – элемент данных, с которыми производятся действия; переменная обозначается идентификатором; любая переменная характеризуется таким важным понятием, как

тип – множество значений переменной и, как следствие, множество допустимых операций над этой переменной;

подпрограмма – часть программы в виде отдельной синтаксической единицы, в которой описываются определенные действия; каждая подпрограмма имеет свое имя; подпрограммы, как правило, подразделяются на процедуры и функции;

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

Источник

Оцените статью