Виды программирования

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

К процедурным языкам программирования относятся: Ada, Basic (версии, начиная с Quick Basic до появления Visual Basic), Си, КОБОЛ, Фортран, Модула- 2, Pascal, ПЛ/1, Рапира, REXX.

Структурное программирование — методология разработки программного обеспечения в основе которой лежит представление программы в виде иерархической структуры блоков построенных из трёх типов базовых конструкций: последовательного выполнения, ветвления и цикла.

Объектно-ориентированное программирование - это методология программирования, которая основана на представлении программы в виде совокупности объектов, каждый из которых является реализацией определенного класса (типа данных особого вида), а классы образуют иерархию, основанную на принципах наследования.

Под объектами понимается объединение данных и обрабатывающих их процедур в единое целое. Объекты могут обмениваться между собой сообщениями. При получении объектом сообщения запускается соответствующий ему обработчик, иначе называемый методом. У объекта есть ассоциативный контейнер, который позволяет получить по сообщению его метод для его обработки. Кроме этого, у объекта есть объект-предок. Если метод для обработки сообщения не найден, сообщение будет перенаправлено объекту-предку. Эту структуру в целом (таблица обработчиков + предки) из соображений эффективности выделяют в отдельный объект, называемый классом данного объекта. У самого объекта будет ссылка на объект, представляющий его класс. Объекты взаимодействуют исключительно через посылку сообщений друг другу.

Важно выделить следующие три основные свойства объектов.

Инкапсуляция (защита данных) - механизм, который объединяет данные и методы, манипулирующие этими данными, и защищает и то и другое от внешнего вмешательства.

Наследование - это процесс, посредством которого один объект может наследовать свойства другого объекта и добавлять к ним черты, характерные только для него. Отношение "потомок-предок" на классах принято называть наследованием.

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

Декларативное программирование. Особое внимание в декларативном программировании уделяется тому, что нужно сделать, а не тому, как это нужно сделать (в императивных языках). Здесь главным является точная формулировка задачи, а выбор и применение необходимого алгоритма для ее решения — проблема исполняющей системы, но не программиста. Например, веб-страницы на языке HTML декларативны, так как они описывают, что должна содержать страница, а не как отображать страницу на экране. Этот подход отличается от языков императивного программирования, требующих от программиста указывать алгоритм для исполнения.

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

Логическое программирование основано на математической логике. Но самым известным языком логического программирования является ПРОЛОГ (Prolog). Программа на языке ПРОЛОГ содержит две составные части: факты и правила. Факты представляют собой данные, с которыми оперирует программа, а совокупность фактов составляет базу данных ПРОЛОГа, которая, по сути, является реляционной базой данных. Основная операция, выполняемая над данными, — это операция сопоставления, называемая также операцией унификации или согласования.

Как и для других декларативных языков, при работе с ним программист описывает ситуацию (правила и факты) и формулирует цель (запрос), позволяя интерпретатору ПРОЛОГа найти для него решение задачи. Под интерпретатором ПРОЛОГа понимается механизм решения задачи при помощи языка ПРОЛОГ. Программа на языке ПРОЛОГ представляет собой набор фактов и (возможно) правил. Если программа содержит только факты, то ее называют база данных. Если она содержит еще и правила, то часто используют термин база знаний.

В отличие от программ, составленных на языках процедурного типа, предписывающих последовательность шагов, которые должен выполнять компьютер для решения задачи, на ПРОЛОГе программист описывает факты, правила, отношения между ними, а также запросы по проблеме. Самое характерное применение ПРОЛОГа — это экспертные системы.

Вопросы для самопроверки

1. Что такое программа? Что понимают под исполнителем?

2. Что представляет собой машинный код?

3. Что такое транслятор? Перечислите типы трансляторов.

4. Как работает интерпретатор? В чем его достоинства?

5. В чем заключается достоинство компиляторов?

6. Какие компоненты входят в состав интегрированной системы программирования?

7. Что понимается под структурой данных, какова классификация структуры данных?

8. Что понимается под массивами данных и какие операции можно с ними производить?

9. Какие существуют алгоритмы сортировки массивов?

10. Каково назначение подпрограмм?

11. Для чего нужна библиотека подпрограмм?

12. Какие существуют виды программирования?

Литература

1. Ставровский А.Б., Карнаух Т.А. Первые шаги к программированию. Самоучитель. - М.: Вильямс, 2006. - 400 с.

2. Окулов С. Основы программирования Издательство: Бином. Лаборатория знаний, 2008. - 383 с.

3. Канцедал С.А. Основы алгоритмизации и программирования. - М.: Форум, 2008. - 351 с.

4. httn//www myfreesoft ru/default-windows-nroprams html - стандартные программы Windows

5. httn//khni-iin mink kharkiv edu/lihrary/datastr/hook/nrt01 html#lb11 - модели и структуры данных

6. httn://www.intuit.ru/denartment/se/nhmsu/11/3.html#sect5 - модели и структуры данных

7. http://inf.1sentemher.ru/2007/15/00.htm - энциклопедия учителя информатики

8. http://www.delnhi.int.ru/articles/119/ - подпрограммы.

9. httn//inroc ru/narallel-nroPramminP/lection-5/ - сортировка кучей.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: