Учебное пособие по дисциплине Разработка языков программирования высокого уровня
Скачать 1.74 Mb.
|
Минобрнауки России Федеральное государственное бюджетное образовательное учреждение высшего образования «МИРЭА – Российский технологический университет» РТУ МИРЭА Институт кибернетики Базовая кафедра №252 – информационной безопасности УЧЕБНОЕ ПОСОБИЕ По дисциплине «Разработка языков программирования высокого уровня»
ОглавлениеГлава 1. ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКОВ 6 ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ 6 1.1 Категории языков программирования 6 Императивные языки 6 1.2 Классификация языков программирования 7 1.3 Характеристики основных языков 9 1.4 Критерии оценки языков программирования 13 1.5. Способы реализации 16 ГЛАВА 2. ОБЪЕКТЫ ДАННЫХ 21 2.1 Переменная как базовое понятие языка программирования 21 2.2 Сущность концепции связывания 22 2.3 Тип переменной 23 2.5 Связывание переменной с типом данных 29 2.5 Время жизни переменной. 30 2.6 Область видимости переменных 32 Глава 3. Система типов данных языка. 37 3.1. Целочисленный тип данных 38 3.2. Вещественный тип 39 3.3. Числа с фиксированной запятой. 40 3.4 Логический тип 40 3.5. Символьный и строковый (string) типы 41 3.6 Указатели 42 3.7. Порядковые типы, определяемые пользователем 46 3.7.1. Перечислимый тип 46 3.8 Структурные типы 47 3.8.1. Массивы 47 3.8.2 Множества 51 3.8.3. Запись 53 3.8.4. Объединения 54 ГЛАВА 4. ПОДПРОГРАММЫ 56 4.1. Общие сведения 56 4.2. Структура подпрограмм и их типы 59 4.3. Дескриптор подпрограммы 60 4.4. Механизмы обмена данными с подпрограммой 62 4.5. Режимы и модели передачи данных через параметры 67 4.6. Механизм реализации моделей передачи параметров 69 4.7. Параметры, являющиеся именами подпрограмм 70 4.8. Понятие полиморфизма 71 4.8.1. Перегруженные подпрограммы 71 4.8.2. Настраиваемые подпрограммы 72 4.9. Раздельная и независимая компиляция 72 ГЛАВА 5. ОСНОВНЫЕ ПОНЯТИЯ 74 ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ 74 5.1.Инкапсуляция 75 5.2.Наследование 80 5.4 Концепция связывания в ООП. Полиморфизм. 83 Глава 6. Основы синтаксиса языка программирования. 87 6.1 Основные понятия КС-грамматики. 87 6.2 Основные понятия формы Бекуса-Наура (БНФ) 89 6.3 Синтаксические деревья 91 6.4. Неоднозначность грамматики выражений 93 ГЛАВА 7. ПОНЯТИЕ ОБ АКСИОМАТИЧЕСКОЙ СЕМАНТИКЕ ЯЗЫКА ПРОГРАММИРОВАНИЯ 100 7.1 Аксиоматическое описание программы. Основная теорема 100 7.2. Слабейшее предусловие 103 7.3. Схемы доказательства корректности программы 103 7.3.1. Правила вывода 104 7.3.2. Аксиомы присваивания 106 7.4. Схемы доказательств корректности некоторых операторов 106 7.4.1 Пустой оператор 106 7.4.2. Оператор присваивания 107 7.4.3. Группы операторов присваивания 109 7.4.4. Оператор условного перехода 111 7.4.5. Операторы цикла 112 Принципы фон Неймана: Программное управление работой ЭВМ. Программа, реализующая алгоритм задачи, состоит из команд, каждая команда осуществляет единичный акт преобразования информации. Все разновидности команд данной ЭВМ составляют систему команд этой ЭВМ. Принцип хранимой программы. В машине всегда должно быть запоминающее устройство (ЗУ), которое хранит команды и данные, при этом данные отправляются в арифметико-логическое устройство (АЛУ), а команды – в устройство управления (УУ). Способ выборки команд и данных из памяти и время выборки одинаковы. Наличие команд условного перехода, переход на любой участок программы в зависимости от условий. Принцип позволяет также ввести конструкции, осуществляющие итерационные вычисления. Иерархичность ЗУ. Несоответствие между быстродействием АЛУ и ЗУ частично преодолевается введением в архитектуру различной по быстродействию памяти. Быстрая регистровая память для хранения управляющей информацией в процессе счёта Оперативная память (ОП), в которой хранятся данные и сама программа во время счёта Долговременная память (жёсткие диски, дискеты, CD и прочие) Двоичная система счисления для кодирования информации, обрабатываемой ЭВМ. Причины: Достаточно простая элементарная база Использование минимальной единицы измерения в один бит (код 1 или 0) Реализация операции умножения с помощью сложения и сдвига разрядов Принципы фон Неймана напрямую определяют не только архитектурный состав и структуру ЭВМ, но и влияют на состав языковых средств. Таким образом, эти принципы определяют метафункциональность любого языка программирования высокого уровня данного класса. Различие языков состоит в синтаксическом описании, а также наличии, разнообразии тех или иных дополнительных возможностей и некоторой специфике. Например, язык Pascal, в отличие от C, обладает хорошо продуманным, структурным, наглядным синтаксисом, высокой надёжностью. Он является универсальным языком, в котором реализованы все необходимые языковые механизмы, однако, за счёт указанных способностей, он хорошо приспособлен для учебных целей (хотя высокая надёжность языка позволяет использовать Pascal и в промышленных целях), именно поэтому примеры конструкций, используемых в пособии, зачастую приводятся в синтаксисе языка Pascal. В состав пособия входят 7 глав. Первая глава посвящена описанию общего представления о том, что представляет собой язык программирования высокого уровня (ЯПВУ), его характеристики и свойства, классификация и системы реализации. Во второй главе даётся представление о базовых механизмах, составляющих основу не только реализации языка, но и процесса надёжного программирования. Именно поэтому эта глава является особо значимой для понимания всей дисциплины. В третьей главе приведены сведения, касающиеся представления системы типов данных языка, начиная от базовых простых типов до структурных указателей. Четвёртая глава включает вопросы реализации подпрограмм в языке, механизмы их подключения, модели передачи данных в подпрограммы. Пятая глава содержит описание понятий объектно-ориентированного программирования: инкапсуляции, абстрактного типа данных, объекта, наследования, динамического связывания. Все вопросы рассматриваются в исторической связи со свойствами императивной языковой модели. Шестая глава посвящена синтаксису языка программирования высокого уровня. Даётся понятие КС-грамматики и формы Бэнукса-Наура. Рассмотрены грамматики языка палиндромов, арифметических выражений, операторов присваивания, показаны механизмы вывода соответствующих цепочек в данных грамматиках, включая представление в виде синтаксического дерева. В седьмой главе описаны базовые понятия аксиоматической семантики языка, используемые при доказательстве правильности (корректности) программного обеспечения. Показаны примеры доказательств корректности отдельных операторов с помощью таких инструментов, как правила вывода и аксиомы присваивания. |