Основные конструкции программирования

 

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

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

Имя (идентификатор) — это строка символов, используемая для обозначения некоторой сущности в программе. Такими сущностями могут быть переменные, типы, метки, подпрограммы, формальные параметры и другие конструкции языков программирования.

Константа — это объект данных, имя которого связано со значением (значениями) в течение всего времени жизни. В языках программирования используются константы двух видов:

- литералы;

- именованные константы.

Литерал представляет собой буквальную запись значения константы. Например, 25 — это десятичная форма записи целочисленной константы, представляющей собой объект данных со значением 25. Форма записи значений литералов предопределенного типа задается в языке.

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

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

- имя;

- адрес;

- значение;

- тип;

- время жизни;

- область видимости.

Парадигмы языков программирования

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

- императивная;

- функциональная;

- декларативная;

- объектно-ориентированная.

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

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

К императивным языкам относятся такие распространенные языки программирования, как ALGOL-60, BASIC, FORTRAN, PL/1, Ada, Pascal, С, C++, Java.

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

функцияn ( ... функция2 (функция1 (данные)) ... ).

На практике наибольшее распространение получили язык функционального программирования LISP и два его диалекта: язык Common LISP и язык Scheme.

Кроме языка LISP, основной областью применения которого являются системы искусственного интеллекта, известны и другие языки функционального программирования: ML (MetaLanguage), Miranda и Haskell. Программирование как на императивных, так и на функциональных языках является процедурным. Это означает, что программы на этих языках содержат указания, как нужно выполнять вычисления.

Декларативные языки программирования - это языки программирования, в которых операторы представляют собой объявления или высказывания в символьной логике. Типичным примером таких языков являются языки логического программирования (языки, основанные на системе правил).

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

разрешающее условие 1 → последовательность операторов 1

разрешающее условие 2 → последовательность операторов 2

разрешающее условие n → последовательность операторов n