Главная » Просмотр файлов » В.Ш. Кауфман - Языки программирования - концепции и принципы (1990)

В.Ш. Кауфман - Языки программирования - концепции и принципы (1990) (1160787), страница 83

Файл №1160787 В.Ш. Кауфман - Языки программирования - концепции и принципы (1990) (В.Ш. Кауфман - Языки программирования - концепции и принципы (1990)) 83 страницаВ.Ш. Кауфман - Языки программирования - концепции и принципы (1990) (1160787) страница 832019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 83)

(и временных) расчетов; принцип защиты авторского права; концепция

раздельной трансляции; динамический принцип выбора реакции на исключение;

принцип динамической ловушки, концепция наследуемости, критерий ЕГМ и др.

Аналогичным образом семиотическая позиция взаимодействовала с авторской

и технологической. А именно, занимаясь моделями Н, МТ, и Б, мы рассмотрели

различные виды семантик. При этом дедуктивная семантика не только позволяет

прояснить такой технологический элемент, как доказательство корректности

программ, но и позволяет обосновать требования к управляющим структурам в

ЯП. [Эти требования иногда неудачно называют принципами структурного

программирования; такая узкая трактовка отвлекает внимание от корректной

структуризации всех аспектов программирования, в частности, структуризации

данных].

Во-вторых, имея дело со всеми моделями, мы, с одной стороны, старались

демонстрировать возможность строить (выделять) достаточно четко

фиксированные модели, критерии, оценки и способы рассуждений (в том числе

убедительных обоснований, вплоть до строгого математического доказательства

содержательных свойств моделей).

Но, с другой стороны, мы постоянно подчеркивали сложность ЯП как

объекта конструирования и исследования, старались показать, как выводы о

свойствах проектных решений зависят от точки зрения, от самых общих подходов

к проектированию ЯП. Особенно наглядно это проявилось при сопоставлении

принципов сундука и чемоданчика. Ведь оказались под сомнением такие ранее

"обоснованные" решения, как указатель контекста, приватные типы и концепция

рандеву, а затем даже перечисляемые типы.

ЯП как сложное явление реального мира (лингвистическое, техническое,

социальное, математическое) всегда уязвимо с точки зрения односторонней

критики. ЯП всегда - плод компромиссов между технологическими потребностями

и реализационными возможностями. Продуктивное творчество в области ЯП -

скорее высокое искусство, чем предмет точной инженерной или тем более

математической науки. С другой стороны, возникнув как артефакты, творения

отдельных людей или относительно небольших авторских коллективов, ЯП

продолжают жить по законам, весьма напоминающим законы развития естественных

языков.

Содержание

Предисловие 2

Часть 1. Современное состояние языков программирования 4

1. Концептуальная схема языка программирования 4

1.1. Что такое язык программирования (ЯП) 4

1.2. Метауровень 4

1.3. Модель передачи сообщения 5

1.4. Классификация недоразумений 5

1.5. Отступление об абстракции-конкретизации.

Понятие модели 6

1.6. Синтактика, семантика, прагматика 7

1.7. Зачем могут понадобиться знания о ЯП 8

1.8. Принцип моделирования ЯП 9

1.9. Пять основных позиций рассмотрения ЯП 10

1.10. Что такое производство программных услуг 10

1.11. Производство программных услуг - основная

цель программирования 12

1.12. Сложность как основная проблема

программирования. 13

1.13. Источники сложности. 13

1.14. Два основных средства борьбы со сложностью.

Основной критерий качества ЯП 15

1.18. Язык программирования как знаковая система 15

1.19. Разновидности программирования 16

1.20. Понятие о базовом языке 17

1.21. Концептуальная схема рассмотрения ЯП 18

2. Пример современного базового ЯП (модель А) 19

2.1. Общее представление о ЯП Ада 19

Пример простой программы на Аде 21

2.2. Обзор языка Ада 22

2.2.1 Модули 22

2.2.2. Объявления и операторы 23

2.2.3 Типы данных 24

2.3. Пошаговая детализация средствами Ады 26

2.4. Замечания о конструктах 29

2.5. Как пользоваться пакетом управление_сетью 31

2.6. Принцип раздельного определения, реализации и

использования услуг (принцип РОРИУС) 37

2.7. Принцип защиты абстракций 37

3. Важнейшие абстракции: данные, операции, связывание 38

3.1 Принцип единства и относительности трех абстракций 38

3.2. Связывание 39

3.3. От связывания к пакету 40

3.3.1. Связывание и теория трансляции 42

3.5. Принцип цельности 45

3.5.1. Принцип цельности и нормальные алгоритмы 46

3.5.2. Принцип цельности и Ада. Критерий цельности 47

4. Данные и типы 48

4.1. Классификация данных 48

4.2. Типы данных 50

4.2.1. Динамические, статические и относительно

статические ЯП. 50

4.2.2. Система типов как знаковая система 52

4.2.6. Строгая типизация и уникальность типа 54

2.2.7. Критичные проблемы, связанные с типами 54

4.2.8. Критичные потребности и

критичные языковые проблемы 54

4.2.9. Проблема полиморфизма 55

4.2.10. Янус-проблема 56

4.2.12. Критерий содержательной полноты ЯП.

Неформальные теоремы 57

4.3. Регламентированный доступ и типы данных

58

4.3.1. Задача моделирования многих сетей 58

4.3.2. Приватные типы данных 60

4.3.3. Строго регламентированный доступ.

Ограниченные приватные типы 62

4.3.4. Инкапсуляция 63

4.4. Характеристики, связанные с типом.

Класс значений, базовый набор операций 63

4.5. Воплощение концепции уникальности типа.

Определение и использование типа в Аде (начало) 64

4.5.1. Объявление типа. Конструктор типа.

Определяющий пакет 64

4.6. Конкретные категории типов 65

4.6.1. Перечисляемые типы. "Морская задача" 65

4.6.2. Дискретные типы 71

4.6.3. Ограничения и подтипы 73

4.6.4. Квазистатический контроль 75

4.6.5. Подтипы 76

4.6.6. Принцип целостности объектов 77

4.6.7. Объявление подтипа 78

4.6.8. Подтипы и производные типы. Преобразования типа 78

4.6.9. Ссылочные типы (динамические объекты) 80

4.7. Типы как объекты высшего порядка.

Атрибутные функции 81

4.7.1. Статическая определимость типа 81

4.7.2. Почему высшего порядка? 81

4.7.3. Действия с типами 82

4.8. Родовые (настраиваемые) сегменты 83

4.8. Числовые типы (модель числовых расчетов) 84

4.8.1. Суть проблемы 84

4.8.2. Назначение модели расчетов 85

4.8.3. Классификация числовых данных 85

4.8.4. Зачем объявлять диапазон и точность 86

4.8.5. Единая модель числовых расчетов 86

4.8.7. Допустимые числа 87

4.8.8. Управление операциями 87

4.9. Управление представлением 88

4.10. Классификация данных и система типов Ады 90

4.11. Предварительный итог по модели А 92

5. Раздельная компиляция 92

5.1. Понятие модуля 92

5.2. Виды трансляций. 92

5.3. Раздельная трансляция 93

5.4. Связывание трансляционных модулей 93

5.4.1. Модули в Аде. 93

5.5. Принцип защиты авторского права. 94

6. Асинхронные процессы 95

6.1. Основные проблемы 95

6.2. Семафоры Дейкстры 98

6.3. Сигналы 100

6.4. Концепция внешней дисциплины. 101

6.5. Концепция внутренней дисциплины: мониторы 102

6.6. Рандеву 105

6.7. Проблемы рандеву 106

6.8. Управление асимметричным рандеву

(семантика вспомогательных конструктов) 108

6.9. Реализация семафоров, сигналов и

мониторов посредством асимметричного рандеву 109

6.10. Управление асинхронными процессами в Аде 111

7. Нотация 113

7.1. Проблема знака в ЯП 113

7.2. Определяющая потребность 114

7.3. Основная абстракция 114

7.4. Проблема конкретизации эталонного текста 115

7.5. Стандартизация алфавита 115

7.6. Основное подмножество алфавита 116

7.7. Алфавит языка Ада 116

7.8. Лексемы 117

7.9. Лексемы в Аде 117

8. Исключения 118

8.1. Основная абстракция 118

8.2. Определяющие требования 119

8.3. Аппарат исключений в ЯП 121

8.4. Дополнительные особенности обработки исключений 126

9. Библиотека 131

9.1. Cтруктура библиотеки 131

9.2. Компилируемый (трансляционный) модуль 131

9.3. Порядок компиляции и перекомпиляции

(создания и модификации программной библиотеки) 132

9.4. Резюме : логическая и физическая

структуры программы 132

10. Именование и видимость (на примере Ады) 133

10.1. Имя как специфический знак 133

10.2. Имя и идентификатор 133

10.3. Проблема видимости 133

10.4. Аспекты именования 134

10.5. Основная потребность и определяющие требования 134

10.6. Конструкты и требования, связанные с именованием 135

10.7. Схема идентификации 137

10.7.1. Виды объявлений в Аде: 137

10.7.3. Области локализации и "пространство имен"

Ада-программы 139

10.7.4. Область непосредственной видимости 140

10.7.5. Идентификация простого имени 141

10.8. Недостатки именования в Аде 142

11. Обмен с внешней средой 143

11.1. Специфика обмена 143

11.2. Назначение и структура аппарата обмена 146

11.3. Файловая модель обмена в Аде 147

11.4. Программирование специальных устройств 153

12. Два альтернативных принципа создания ЯП 155

12.1. Принцип сундука 155

12.2. Закон распространения сложности ЯП 154

12.3. Принцип чемоданчика 154

12.4. Обзор языка Модула-2 154

12.4.1. Характеристика Модулы-2 в координатах

фон-неймановского языкового пространства

(технологическая позиция) 157

12.4.2. Характеристика Модулы-2 в терминах

концептуальной схемы 158

12.5. Пример М-программы 158

12.5.1. Управление сетями на Модуле-2 158

12.5.2. Определяющий модуль 158

12.5.3. Использующий модуль 160

12.5.4. Реализующий модуль 160

12.6. Языковая ниша 163

12.7. Принцип чемоданчика в проектных решениях

ЯП Модула-2 164

12.7.1. Видимость 164

12.7.2. Инкапсуляция 165

12.7.3. Обмен 166

12.8. Принцип чайника 170

12.9. ЯП Оберон 171

12.9.1. От Модулы-2 к Оберону 171

12.9.2. Управление сетями на Обероне. 173

Часть 2. Перспективы языков программирования 177

13. Перспективные модели языка 177

13.1. Введение 177

13.3. Ситуационное программирование - модель

Маркова-Турчина (модель МТ) 180

13.3.1. Перевод в польскую инверсную запись (ПОЛИЗ) 180

13.3.2. Модификации модели Маркова (введение в Рефал) 181

13.3.3. Исполнитель (МТ-машина) 185

13.3.4. Программирование в модели МТ 185

13.3.5. Основное семантическое соотношение

в модели МТ 186

13.3.6. Пример вычисления в модели МТ 187

13.3.8. Аппликативное программирование 189

13.3.9. Структуризация поля определений: МТ-функции 189

14. Функциональное программирование (модель Б) 191

14.1. Функциональное программирование в модели МТ 191

14.1.1. Модель МТ с точки зрения концептуальной схемы 191

14.1.2. Модель МТ и Лисп 191

14.1.3. Критерий концептуальной ясности и

функции высших порядков 192

14.1.4. Зачем нужны функции высших порядков 193

14.1.6. Примеры структурирующих форм 194

14.1.8. Пример программы в стиле Бэкуса 196

14.2. Функциональное программирование в стиле Бэкуса

(модель Б) 198

14.2.1. Модель Бэкуса с точки зрения

концептуальной схемы 198

14.2.2. Объекты 198

14.2.3. Аппликация 199

14.2.4. Функции 199

14.2.5. Условные выражения Маккарти 199

14.2.6. Примеры примитивных функций 200

14.2.7. Определения 203

14.2.8. Программа вычисления факториала 203

14.2.9. Программа перемножения матриц 205

15. Доказательное программирование (модель Д) 208

15.1. Зачем оно нужно 208

15.2. Доказательное программирование методом Бэкуса 209

15.2.1. Алгебра программ в модели Б 209

15.2.2. Эквивалентность двух программ

перемножения матриц 210

15.2.3. Модель Д 213

15.2.4. Дедуктивная семантика 215

15.2.5. Компоненты исчисления Хоара 216

15.2.6. Правила преодоления конструктов языка Д 218

15.2.7. Применение дедуктивной семантики 223

16. Реляционное программирование (модель Р) 226

16.1. Предпосылки 226

16.2. Ключевая идея 227

16.3. Пример 228

16.4. Предопределенные отношения 232

16.5. Связь с моделями МТ и Б. 233

16.5.1. Путь от модели Б 233

16.5.2. Путь от модели МТ 235

17. Параллельное программирование в Оккаме-2

(модель О). 236

17.1. Принципы параллелизма в Оккаме. 236

17.2. Первые примеры применения каналов. 237

17.3. Сортировка конвейером фильтров 238

Характеристики

Тип файла
Документ
Размер
1,26 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6367
Авторов
на СтудИзбе
310
Средний доход
с одного платного файла
Обучение Подробнее