Основные конструкции программирования
Язык программирования предоставляет программисту абстрактную модель, в которой объекты данных и операции специфицированы в проблемно-ориентированных терминах.
Под объектом данных будем понимать один или несколько однотипных элементов данных, объединенных в одно целое. Объект данных называется элементарным, если представляющее его значение является единым целым. В противном случае, если объект данных представляет собой совокупность некоторых других объектов, будем называть его структурным
Имя (идентификатор) — это строка символов, используемая для обозначения некоторой сущности в программе. Такими сущностями могут быть переменные, типы, метки, подпрограммы, формальные параметры и другие конструкции языков программирования.
Константа — это объект данных, имя которого связано со значением (значениями) в течение всего времени жизни. В языках программирования используются константы двух видов:
- литералы;
- именованные константы.
Литерал представляет собой буквальную запись значения константы. Например, 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