Парадигмы программирования
Парадигмы программирования - представляет собой некоторый цельный набор идей и рекомендаций, определяющий стиль программы.
1-й уровень: В качестве признака классификации выберем парадигму прогрм., точнее семантику (модель вычислительного процесса). Различают языки программирования высокого уровня и машинные языки (в связи с исполнителями).
О модели выделяют 2 основных направления:
1) Повелительное (императивное) Оно представленных операторами, командами.
2) Изъявительное (декларативное, т.е. описательное):
· Fo
· Basic
· Pascal
3) Декларативные языки:
a) Функциональные-Lips, Loga
b) Продекционные – Refal
c) Линейчатые – Prolog
2-й уровень: Парадигмы, не ориентированы на объекты. Возникла на зоре возникновении вычислительной технике, в последствии уступая место объектно-ориентированным.
Парадигма объектно-ориентированного программирования (в основе лежит идея активности данных) вкл. В себя 3 основных понятия: ОБЬЕКТ, СООБЩЕНИЕ и Метод.Объект-компонент системы на выполнение одной из его операций. Сообщение-запрос как выполнять одну из операций объекта. Метод-описание как выполнять одну из операций объекта.Класс-описание группы подобных объектов. Экземпляр - один из объектов, который описывается классом.
3-й уровень: метапрограммирование (последовательное – традиционное, параллельное-допускает параллельную обработку данных, конкурентное-программирование предст. как множество процессов, выполняемых параллельно друг другу, распределенное – отдельные компоненты одновременно функционируют на различных ЭВМ.)
Объектно-ориентированное программирование. Логическое и функциональное программирование.
Парадигма объектно-ориентированного программирования (в основе лежит идея активности данных) вкл. В себя 3 основных понятия: ОБЬЕКТ, СООБЩЕНИЕ и Метод.Объект-компонент системы на выполнение одной из его операций. Сообщение-запрос как выполнять одну из операций объекта. Метод-описание как выполнять одну из операций объекта.Класс-описание группы подобных объектов. Экземпляр - один из объектов, который описывается классом.
Парадигма объектно-ориентированного имеет преимущества перед парадигмой традиционной программ при формализации знаний.
Логическое программирование - использование логики в качестве языка программирования - строится на идее, что не человека следует обучать компьютерному мышлению, а компьютер должен выполнять инструкции, свойственные человеку. В логическом программировании программа представляет собой не набор команд и инструкции для компьютера, а описание абстрактной модели решаемой задачи; в виде логических аксиом [хорновых предложений] (утверждений).Наиболее известным языком логического программирования является Пролог.
В функциональном программировании программа представляет собой не набор команд и инструкции для компьютера, а совокупность функций, вызывающих друг друга, часто опосредованно, самих себя. Каждый вызов возвращает некоторое значение вызвавшей его функции . Вычисление продолжается до тех пор, пока не произойдет возвращение значения в функцию, которая вызвала и запустила всю программу. Эта функция возвращает результат пользователю. Лисп является самым известным языком функционального программирования
Понятие языка высокого уровня. Синтаксис и семантика. Элементы и структуры данных, алфавит, имена, выражения, операции, операторы, структура программ, аппарат подпрограмм, реализация логических структур.
Для представления алгоритма в виде, понятном ПК, служат языки программирования. Различают языки: ВЫСОКОГО УРОВНЯ и МАШИННЫЕ ЯЗЫКИ.
Особенности:1) язык должен быть близок к естественным языкам.
2)ср-ва языка должны быть формализованы в такой степени, что бы их можно было реализовать как машинные программы.
3) он должен структурировать развитие предметно-ориентированной деятельность.
4) Язык программирования не только средство описания алгоритма, но он несет в себе систему понятий, на основе которых человек может обдумать свою задачу и аннотацию с помощью, которой пользователь определяет решение задачи.
Появились на рубеже 50-х -60-х годов. Реализованы на первых ЭВМ II поколения (1957-Far-Ram, 1960-Algol 60, 1965-BASIC, 1970-Pascal, 1972-C++).
Языки программирования принято делить на 5 поколений. 1-е поколение – появились с появлением первых ЭВМ, 2-е поколение – конец 50-х – начало 60-х, 3-е поколение - 60-е годы (появились универсальные языки высокого уровня), 4-е поколение – 70-е годы (языки для крупных проектов), 5-е поколение – в середине 90-х годов (идея языков – возможность автоматического формирования результирующего текста).
Имеются 2 основных способа реализации языка:
1. Компиляторы- транслируют весь текст в машинный код, который затем можно использовать без компилятора.
2. Интерпретаторы– в каждый момент времени распознает и выполняет по одному предложению программы превращая его в машинную программу.
Программа Транслятор –точно описанные тексты и их интерпретация.
Каждый язык имеет 3 стороны:
1. Синтаксис – совокупность правил, которые позволяют формально проверить текст программы, разработать эти программы на составляющие конструкции и лексемы.
2. Семантика - соответствие между синтаксисом правильной программы и действием абстрактной исполнителя.
3. Прагматика - связывает программу с ее конкретным реализатором.
Различают 2 вида прагматики: синтаксическую и семантическую.
Элементы и структура данных:
1. Элементарные конструкции (слова).