Р.У. Себеста - Основные копцепции языков программирования (2001) (1160794), страница 2
Текст из файла (страница 2)
Основные понятия 3.5.3. Определение атрибутивных грамматик 3.5.4. Внутренние атрибуты 3.5.5. Примеры атрибутивных грамматик 96 98 100 102 102 102 103 103 !04 104 106 106 107 109 109 110 1!1 123 124 125 126 126 127 127 138 139 140 141 143 144 144 144 145 146 148 149 !50 !50 152 162 173 ГЛАВА б.
ТИПЫ ДАННЫХ 213 5.1. Введение 5.2. Элементарные типы данных 5.2.1. Числовые типы 5.2.2. Булевские типы 5.2.3. Символьные типы 5.3. Символьные строки 2!4 "15 2!б 218 218 219 Содержание 3.5.6. Вычисление значений атрибутов 3.5.7. Оценка 3.6. Описание смысла программ: динамическая семантика 3.6.1. Операционная семантика 3.6.2. Аксиоматическая семантика 3.6.3.
Денотационная семантика ГЛАВА 4. ИМЕНА, СВЯЗЫВАНИЕ, ПРОВЕРКА ТИПОВ И ОБЛАСТИ ВИДИМОСТИ 4.1. Введение 4.2. Имена 4.2.1. Вопросы стрултуры 4.2.2. Виды имен 4.2.3. Специальные слова 4.3. Переменные 4.3.1. Имя 4.3.2. Адрес 43.3. Тип 4.3.4. Значение 4.4. Концепция связывания 4.4.1. Связывание атрибутов с переменными 4.4.2. Связывание типов 4.4.3. Связывание переменных с ячейками памяти и время их жизни 4.5. Проверка типов 4.6. Строгая типизация 4.7.
Совместимость типов 4.8. Область видимости 4.8.1. Статическая область видимости 4.8.2. Блоки 4.8.3. Оценка статического обзора данных 4.8.4. Динамические области видимости 4.8.5. Оценка динамического обзора данных 4.9. Область видимости переменных и время их жизни 4.10. Среды ссылок 4.11. Именованные константы 4.12. Инициализация переменных 174 174 !75 175 !76 177 177 177 !79 !79 179 180 180 184 187 188 189 192 193 195 196 198 199 200 201 203 204 пользователем и указателей 5.3.1. Вопросы разработки 5.3.2. Строки и действия над ними 5.3.3.
Варианты длины строк 5,3.4. Оценка 5.3.5. Реализация символьных строк 5.4. Порядковые типы, определяемые пользователем 5.4.1. Перечислимые типы 5.4.2. Ограниченные типы 5.4.3. Реализация порядковых типов, определяемых 5.5. Массивы 5.5.1. Вопросы разработки 5.5 ". Массивы и индексы 5.5.3. Связывания индексов и категории массивов 5 5.4. Количество инлексов массива 5.5.5 Инициализация массива 5.5.6. Операции над массивами 5.5.7. Сечения 5.5.8. Оценка 5.5.9. Реализация типов л~ассивов 5.6. Ассоциативные массивы 5.6.! . Структура и операции 5.6.2.
Реализация ассоциативных массивов 5.7. Записи 5.7.1. Описания записей 5.7.2, Ссылки на поля записи 5.7.3. Операции нал записями 5.7.4. Оценка 5.7.5. Реализация записей 5.8. Объединения 5.8.! . Вопросы разработки 5.8.2. Свободные объелинения 5.8.3. Размеченные объединения языка А1.ОО1. 68 5.8.4. Типы объединения в языке Рааса! 5.8.5. Объединения в языке Ада 5.8.6. Оценка 5.8.7. Реализация объединений 5.9. Множества 5.9.! . Множества в языках Рааса! и Моди!а-2 5.9.2. Оценка 5.9.3. Реализация множественных типов данных 5.! О. Указатели 5.10.1. Вопросы разработки 5.10.2. Операшш над указателями 5.
10.3. Проблемы. возникающие при использовани 5.10.4. Указатели в языке Рааса! 5.10.5. Указатели в языке Ада 219 2!9 221 122 222 224 227 227 118 228 119 1 1 3 232 233 235 236 236 24! 241 141 241 141 245 245 146 246 247 247 247 248 250 252 252 153 153 254 255 155 "6 ' 6 "8 159 1'9 Содержание 260 261 262 263 263 276 276 277 277 284 286 287 288 289 289 289 290 291 293 '93 294 294 294 294 296 297 303 304 пользователем Содвржаннв 5.10.6. Указатели в языках С и С— 5.10.7.
Указатели в языке РОКТКАУ 90 5.10.8. Ссылки 5.10.9. Оценка 5.10.10. Реализация ссылок и указателей ГЛАВА 6. ВЫРАЖЕНИЯ И ОПЕРАТОРЫ ПРИСВАИВАНИЯ 6.1. Введение 6.2. Арифметические выражения 6.2,1. Порядок вычисления операторов 6.2,2. Порядок вычисления операндов 6.3. Перегруженные операторы 6.4. Преобразования типов 6.4.1. Приведение типов в выражениях 6.4.2. Явное преобразование типов 6.4.3. Ошибки в выражениях 6.5. Выражения отношений и бзлевские выражения 6.5.1. Выражения отношения 6.5.2. Булевские выражения 6.6.
Сокрашенное вычисление 6.7. Операторы присваивания 6.7.1. Простые присваивания 6.7.2. Множественные целевые объекты 6.7.3. Условные целевые ооъекты 6.7,4. Составные операторы присваивания 6.7,5. Унарные операторы присваивания 6.7.6. Присваивание как выра. кение 6.8. Смешанные присваивания ГЛАВА 7. СТРУКТУРЫ УПРАВЛЕНИЯ НА УРОВНЕ ОПЕРАТОРОВ 7.1. Ввеление 7.2. Составные операторы 7.3.
Операторы ветвления 7.3.1. Двухвариантныс операторы ветвления 7.3.2. Конструкции л~ноговариантного ветвления 7.4. Операторы цикла 7.4.1. Циклы со счсзчиком 7.4.2. Логичссли управляемые циклы 7.4.3. Циклы с мсханизмалш управления. размешенными ' 7.4.4. Циклы, основанные на структурах ланиых 7.5. Безусловный переход 7.5.1. Проблемы безусловного перехода 7.5.2. Виды меток 7.5.3. Ограничения переходов 305 306 306 311 318 318 326 328 330 331 331 332 333 334 338 7ю. Защищенные команды 7.7.
Выводы ГЛАВА 8. ПОДПРОГРАММЫ 348 346 346 346 347 348 350 351 353 354 354 355 393 394 394 397 397 400 402 12 Содержание 8.1. Введение 8.2. Основы подпрограмм 8.2.1. Общие свойства подпрограмм 8.2.2. Основные определения 8.2.3. Параметры 8.".4. Процедуры и функции 8.3. Вопросы разработки подпрограмм 8.4. Среды локальных ссылок 8.5. Методы передачи параметров 8.5.1. Семантические модели перелачи параметров 8.5.2. Модели реализации передачи параметров 8.5.3. Метолы передачи параметров в основных языках программирования 8.5.4. Проверка типов параметров 8.5.5. Методы реализации передачи параметров 8.5.6.
Многомерные массивы в качестве параметров 8.5.7. Вопросы разработки 8.5.8. Примеры передачи параметров 8.6. Параметры, являющиеся именамн подпрограл~м 8.7, Перегруженные подпрограммы 8.8. Настраиваемые подпрограммы 8.8.1, Настраиваемые подпрограммы в языке Ада 8.8.2. Настраиваемые подпрограммы в языке С++ 8.9. Раздельная и независимая кол~пиляция 8.10. Вопросы разработки функций 8.10.! . Побочные эффекты ф>нкций 8.! ОД. Типы возвращаемых значений 8.11. Даст> п к нелоказьным средам 8.11.1. Блоки СОННОВ языка РОСТКАХ 8.1!.2.
Внешние обьявления и модули 8.! 2. Перегруженные операторы, определяемые пользователем 8.! 3. Сопрограммы ГЛАВА 9. РЕАЛИЗАЦИЯ ПОДПРОГРАММ 9.1. Общая семантика вызовов и возвратов 9.2. Рекзизация подпрограмм на языке РОКТКАХ 77 9.3. Реазизацпя подпрограмм на языках. подобных языку А!.ОО!. 9.3.1. Более сложные записи активации 9.3.2. Пример без рекурсии и нелокальных ссылок 9.3.3.
Рекурсия 360 362 363 366 368 369 373 375 376 377 379 380 382 382 382 383 383 384 385 386 405 416 418 419 421 422 422 423 423 429 Содержание 9.3.4. Механизмы реализации нелокальных ссылок 9.4. Блоки 9.5. Реализация методов динамического обзора данных 9.5.1. Глубокий доступ 9.5.2. Теневой доступ 9.6. Реализация параметров. являющихся илленами подпрограмл! 9.6.1.
Статические цепочки 9.6.2. Индикаторы 9.6.3. Ошибочное повторное обрашение к среде ссылок ГЛАЗА 10. АБСТРАКТНЫЕ ТИПЫ ДАННЫХ 1О.1. Понятие абстракции 10.2. Инкапсуляция 10.3. Введение в абстракцию данных 10.3.1. Число с плавающей точкой как абстрактный тип данных 10.3.2. Абстрактные типы данных, определяемые пользователем 10.3,3. Пример 10.4. Вопросы разработки типов 10.5.
Примеры абстракции данных в разных языках 10.5.1. Классы в языке 51М!Л.А 67 10.5.2. Абстрактные типы данных в языке Ада 10.5.3. Абстрактные типы ланных в языке Сь+ 10.6. Параметризованные абстрактные типы данных 10.6.1. Язык Ада 10.6.2. Язык С++ ГЛАВА 11.
ПОДДЕРЖКА ОБЬЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ 11.1. Ввеление 11.2. Объектно-ориентированное программирование 11.2.1. Введение 11.2.2. Наследование 11.2.3. Полиморфизм и динамическое связывание 11.2.4. Вычисления в объектно-ориентированных языках 11.3. Вопросы разработки объектно-ориентированных языков 11.3.1. Исключительность объектов 11.3.2.
Являются ли подклассы подтипами 11.3.3. Реализация и наследование интерфейса 11.3.4. Проверка типов и полиморфизм 11.3.5. Одиночное и множественное наслелование 11.3.6. Размещение в памяти и удаление из памяти объектов 11.3.7. Динамическое и статическое связывание 11.4. Обзор языка Бшарйайс 11.4.1. Общие характеристики 11.4.2. Среда языка Бгла!Кайс 430 431 432 433 433 434 435 436 436 437 441 446 446 447 451 452 452 452 453 455 456 457 457 457 458 459 459 460 461 461 461 462 12,1.2. Разновидности параллельности 12.1,3. Почему нужно изучать параллельность 12.2.