- •Языки и системы программирования
- •Примеры
- •Программа должна удовлетворять требованиям:
- •Определения
- •Определения
- •Определения
- •Система программирования
- •Каждый язык программирования определяет свою модель вычислений, которая зависит от
- •Методологии
- •Методология
- •Основные ядра методологий:
- •Методология императивного программирования:
- •Происхождение, история, эволюция
- •Методы
- •Вычислительная модель
- •Синтаксис и семантика
- •Языки программирования
- •Класс задач
Основные ядра методологий:
Методология императивного программирования
Методология объектно-ориентированного программирования
Методология логического программирования
Методология функционального программирования
Методология программирования в ограничениях
Методология императивного программирования:
Подход, характеризующийся принципом последовательного изменения состояния вычислителя пошаговым образом.
Управление изменениями полностью определено и полностью контролируемо
Происхождение, история, эволюция
Исторически первая, поддерживаемая аппаратно методология программирования
Ориентирована на фон Неймановскую архитектуру
Методы
Метод изменения состояний
(поддерживается концепцией алгоритма)
Метод управления потоком исполнения
Вычислительная модель
Для ПК
Состояние – значение всех ячеек памяти,
состояние процессора и всех сопряженных устройств
Единственная структура данных –
последовательность ячеек (пар «адрес-> значение») с линейно упорядоченными адресами
Математическая модель – машина Тьюринга-
Поста (абстрактное вычислительное устройство для описания алгоритмов)
Синтаксис и семантика
Оператор- основное синтаксическое
понятие
Атомарный оператор – оператор, у которых
никакая его часть не является самостоятельным
оператором
Структурные операторы – операторы,
объединяющие другие операторы в новый, более крупный оператор
Средство структурирования- подпрограмм
Языки программирования
Plankalkuel (Конрад Цузе, 1945-46)
Fortran (1954)
Algol (1960)
Pascal (1970)
C (1972)
ICON (1974)
Класс задач
Императивное программирование
наиболее пригодно для решения задач, в которых последовательное выполнение команд является естественным. Например, управление современными аппаратными средствами
Поскольку практически все современные компьютеры императивны, эта методология позволяет создавать достаточно эффективный порождаемый код