Алфавитный указатель
@AspectJ
альтернативный синтаксис, 519 , 77 , 77 , 77 , 76
абстрактное синтаксическое дерево
правила обхода, 160 абстрактный тип данных, 403 язык Ada, 405 C#, 411 C++, 408 Java, 410 Ruby, 413
абстракции данных, 402 абстракции процессов, 400 абстракция, 400 аксиоматическая семантика аксиома присваивания, 192 вычисление предусловия для цикла FOR, 195 общий случай определения инварианта цикла, 199 определение инварианта цикла по индукции, 196 правило вывода для оператора цикла WHILE, 196 правило вывода для последовательности, 193 правило вывода для условного оператора, 194 правило консеквенции, 192 предусловия и постусловия, 190
слабейшее предусловие, 190 схема доказательства программы, 191 алгоритм,42
анонимные классы в языке Java, 460
аппарат абстракции-конкретизации, 23
аппликативные языки, 67 аргументы
манипуляторы, 566 асинхронного отбора, 601 аспект, 508, 512, 517
аспектно-ориентированное программирование (АОП) описание, 503 аспекты,503 ассемблер, 48 атрибут, 76 буфер ввода-вывода, 561 буфер потока, 561 ввод-вывод задачи, 538 логическое внешнее устройство, 538 особенности внешней среды, 537 потоковая библиотека, 561 классы,562 файл, 539 взаимное исключение, 585 виртуальные машины, 47, 51 виртуальный компьютер, 49 иерархия,51 восстановление памяти, 386 вплетение аспекта, 514 временной вызов входа, 601 Всемирная паутина, 29 вторичная память, 45 вызов подпрограммы в Pascal последовательность действий, 395 вызов подпрограммы в С последовательность действий, 390 выражение ассоциативность, 102 инфиксное, 102 порядок вычисления операндов, 105 постфиксное, 101 префиксное, 99 приоритетность, 102 смешанная нотация, 103 выражения укороченное вычисление, 107 выражения языка Scheme, 620 вычислительная машина, 42 вычислительный процесс, 43 гиперссылка, 78 Д-К денотационная семантика отображение выражения, 203 отображение двоичных чисел, 201 |
денотационная семантика (продолжение) отображение десятичных чисел, 201 отображение оператора присваивания, 204 отображение цикла с предусловием, 204 состояние программы, 202 динамические связные структуры, 284 динамическое связывание в С++, 482 дискретность алгоритма, 43 загрузчик, 48 зарезервированные слова, 155 защищенный объект, 589 знак и денотат, 24 избыточный синтаксис, 147 инварианты в программах, 138 инкапсуляция,401 интерпретатор, 47 интерпретация, 47 исключения, 524 язык C#, 536 язык Java генерация исключения, 534 классы исключений, 533 обработчики исключений, 533 связывание с обработчиками, 534 секция finally, 535 язык C++ catch-функция, 531 блок try, 531 оператор throw, 531 оформление функций, 532 поиск подходящего обработчика, 532 исчисление предикатов, 648 класс, 433 абстрактный, 442 изображение в UML, 434 интерфейс, 433 область действия атрибута или операции, 434 отношения агрегации, 439 по величине, 439 по ссылке, 440 |
684 |
Алфавитный указатель |
класс (продолжение) ассоциации, 437 единичное наследование, 440 зависимости, 439 иерархия наследования, 442 множественное наследование, 441 мощность ассоциации, 438 наследование, 440 обобщение-специализация, 440 реализация, 440 роли в ассоциации, 438 ромбовидная решетка наследования, 441 реализация, 433 синтаксис представления атрибута, 435 синтаксис представления операции, 435 экземпляр, 443 классы виртуальные деструкторы, 461 конструкторы, 461 потоковые классы istringstream, 575 stringstream, 575 клонирование путем оптимизации, 504 команда, 43 компилятор, 48 корректность наследования, 453 критерий эффективности, 30 критическая секция, 585 куча повторное использование свободного пространства, 386 уплотнение свободного пространства, 387 фрагментация памяти, 388 Л-О ленивые вычисления, 645 ловушка исключения, 524 макропроцессор, 48 макрорасширение, 342 конфликты именования, 343 передача параметров, 343 макрос, 57 массовость алгоритма, 43 машинный язык, 46 межтиповое объявление, 508, 518 мемоизация, 644 метод наиболее подходящего, 386 метод первого подходящего, 386 механизм статического пересечения, 508 минимизация сцепления для ограниченных буферов, 505 |
многоуровневая система исключений, 529 модель точек соединения, 508, 513 модульная декомпозиция, 503 модульные элементы,503 монитор, 588 наследование абстрактных классов, 456 виртуальные методы, 454 его тестирование, 451 интерфейсов, 455 копирование, наращивание, изменение, 448 принцип подстановки, 453 транзитивность, 451 наследование на языке C#, 496 вложенные классы, 497 динамическое связывание, 497 наследование на языке Java вложенные классы, 495 единичное, 493 смешанное, 494 наследование на языке Ruby, 499 динамическая типизация, 497 динамическое связывание, 499 наследование на языке Ада абстрактные классы, 486 интерфейсы, 488 классы, 484 надклассовые типы, 489 расширяемые типы , 484 родовые классы, 489 наследование на языке C++ единичное приватное, 480 публичное, 478 множественное публичное, 481 неоднозначность, 148 неразрушающая адаптивность, 505 области видимости вложенные, 377 области применения языков искусственный интеллект, 28 научные вычисления, 27 обработка деловой информации, 28 системная область, 29 обработка исключений принцип катапульты, 529 обработчик исключения, 524 общее состояние аспекта, 506 объект, 443 данных, 210 атрибуты, 210 макроопределение константы, 211 |
объект (продолжение) объявление, 216 переменная, 211 обязанности, 445 операции, 444 поведение, 443 потоки сообщений, 448 связи, 446 синтаксис представления атрибута, 445 имени, 445 сообщения, 446 состояние, 443 объектно-ориентированный ввод-вывод язык C++, 560 объектный язык, 47 объекты создание, 466 объявление времени вплетения, 508, 519 ограниченное вхождение имени, 376 ОЗУ, 45 ОП, 45 оперативное запоминающее устройство, 45 оператор приема accept, 593 оператор цикла, 126 секция управления, 126 тело, 126 операторы break, 113 continue, 113 составной, 115 goto, 112 блок, 116 ввода, 111 операторы выбора, 121 охраняемые структуры ветвления, 136 охраняемые циклы, 137 повторение, основанное на данных, 128 условные операторы, 116 вложенность, 117 операторы цикла бесконечное число повторений, 129 переменная цикла, 126 с заданным числом повторений, 126 в функциональных языках, 129 с повторением по данным, 128 с постусловием,133 с предусловием,132 |
Алфавитный указатель |
685 |
операторы цикла (продолжение) универсальность цикла for в языке С, 134 операционная система, 51 , операция извлечения, 565 определение среза, 512 определенность алгоритма, 43 определяемые исключения, 525 оптимизация предметно-ориентированная, 504 организация иерархии наследования, 452 ортогональность(свойство языка), 31 основная память, 45 основные термины аспектноориентированного подхода, 509 отложенные вычисления нестрогие функции, 642 специальные формы , 643 ошибки потоков, 568 ввод чисел, 569 избыток символов, 569 П-С пакеты ввода-вывода, 539 конкретизация, 540 память с произвольным доступом, 45 парадигмы языка аппликативный язык, 67 передача по необходимости, 644 передача сообщений и типизация, 464 переменная атрибуты, 222 время жизни, 223, 228 динамическое связывание типа, 225 неявная динамическая, 231 связывание, 224 статическая, 228 стековая, 229 явная динамическая, 230 переопределение методов, 472 замещение, 473 C++, 473 Java, 474 уточнение, 475 Java, 477 С++, 475 переплетение, 506 пересечение в аспектно-ориентированном программировании, 504 |
пересечение на уровне классов, 506 пересечение на уровне экземпляров, 506 ПЗУ, 45 побочный эффект функции, 105 подпрограммы, 320 Pascal высота вложенности, 394 установка связей доступа, 394 активация, 325 альтернативное использование дисплея, 397 вызов, 321 деревья активации, 382 дисплеи для быстрого доступа, 396 запись активации, 327 количество возвращаемых значений, 356 массивы в качестве параметров, 350 методы передачи параметров, 329 позиционное сопоставление, 329 примеры, 346 проверка типов, 349 реализация, 345 сопоставление по имени, 330 направление передачи информации, 324 объявление, 322 перегруженные, 361 передача параметров по значению, 333 передача параметров по ссылке, 334 передача по значению-результату, 337 передача по имени, 344 передача по результату, 339 побочные эффекты функций, 356 подпрограммы в качестве параметров, 352 поток управления между активациями, 381 преимущества, 329 прототип, 323 процедуры, 322 размещение и освобождение в куче, 385 размещение и освобождение в стеке, 388 реализация, 323 рекурсия, 328 |
родовые, 363 методы в языке C#, 371 методы в языке Java, 369 язык Ada, 363 язык С++, 367 сигнатура, 323 спецификация, 323 типы возвращаемых значений, 355 фактические параметры, 321 формальные параметры, 322 формат записи активации, 383 функции, 322 шаблон активации, 326 язык С эффект передачи по ссылке, 336 показатели качества легкость создания программ, 33 надежность, 34 стоимость, 35 читабельность, 31 полиморфизм, 356 неявное приведение, 360 параметрический полиморфизм, 357 перегрузка, 360 полиморфизм подтипов, 359 переопределение, 359 разновидности, 357 реализация, 360 полиморфная операция, 449 динамическое связывание, 449 порядок выполнения типовой команды, 45 постоянное запоминающее устройство, 45 потоки категории, 561 стандартные, 561 стандартный поток ввода, 565 стандартный поток вывода, 564 строковой, 561 структура, 561 файловый, 561 потоки ввода-вывода язык Ada, 556 потоки в языке C# основные операции, 610 синхронизация, 612 потоки языка Java, 602 класс Thread, 602 неблокирующая синхронизация, 608 приоритеты, 604 семафоры, 604 |
686 |
Алфавитный указатель |
потоки языка Java (продолжение) синхронизация взаимодействия, 606 синхронизация конкуренции, 605 явная блокировка, 609 поток управления, 113 структурированный, 114 формы, 114 правила вплетения, 511 правила области видимости, 341, 376 блочно-структурированные, 380 динамические, 341 статические, 341, 380 устранение конфликтов имен, 342 прагматические ошибки, 25 предметно-ориентированная оптимизация, 504 предопределенные исключения, 524 преобразование типа неявное приведение, 312 различные мнения, 315 расширяющее, 312 сужающее, 312 явное приведение, 306 const_cast, 309 dynamic_cast, 311 reinterpret_cast, 310 static_cast, 309 язык C++, 308 препроцессор, 48 директива, 563 принцип динамической ловушки, 527 принцип программного управления, 43 принцип разделения понятий, 503 принцип синтаксической однозначности, 25 принцип сокрытия информации, 401 присваивание, 104 левостороннее значение, 104 правостороннее значение, 104 проверка типов динамическая, 316 статическая, 315 программа структурированная, 114 программы программирование с инвариантами, 139 |
прозрачность ссылок, 617 пространства имен, 427, 564 в языке C++, 428 модули в языке Ruby, 430 пакеты в языке Ada, 429 пакеты в языке Java, 428 процедуры ввода, 540 процедуры вывода, 541 процесс, 578 взаимодействие, 585 иерархия,579 многопоточность, 581 модель потоков, 581 синхронизация, 585 синхронизация на основе сообщений, 592 состояния, 579 условная синхронизация, 585 язык Ада задача, 582 процессор, 45 разбрасывание, 507 разделение понятий, 503 разделители, 566 рандеву оператор отбора select, 596 распространение исключения, 527 расширенное рандеву, 593 реализация динамическое связывание сообщений с методами, 501 организация памяти для сохранения объекта, 500 резолюция, 656 результативность алгоритма, 43 родовые АТД в языке Ada, 416 в языке C#, 422 в языке C++, 418 в языке Java, 420 самодокументируемая программа, 146 свойства языка естественность, 33 неоднозначность, 148 удобство написания,147 удобство трансляции, 147 удобство чтения, 146 связывающее вхождение имени, 376 семантика аксиоматическая семантика, 190 атрибутные грамматики, 185 денотационная семантика, 200 |
семантика (продолжение) операционная семантика, 188 синтезируемые атрибуты, 183 семантика языка, 24 семантические ошибки, 25 семантический разрыв, 26 семафор, 586 сильная система типизации, 317 символ реализация, 243 символы операций, 146 синтаксис абстрактное синтаксическое дерево, 159 абстрактный, 158 выражения, 157 грамматики, 161 идентификаторы, 151 ключевые слова, 155 комментарии, 156 константы и литералы, 152 контекстно-свободная грамматика, 161 выводы, 166 грамматический разбор, 164 дерево разбора, 163 левая рекурсивность правил подстановки, 170 неоднозначность, 165 неоднозначность повисшего Else, 165 обработка ассоциативности и приоритетности, 171 правая рекурсивность правил подстановки, 170 расширенная BNF, 173 синтаксические схемы, 175 списки в инфиксных выражениях, 167 точки с запятой и пустые операторы, 177 форма Бэкуса-Наура, 162 лексемы, 157 набор символов, 148 необязательные слова, 156 операторы, 157 пробелы, 156 скобки, 157 спеллинги, 157 синтаксис сообщений, 462 синтаксис языка, 24 синтаксические ошибки, 25 скриптовые языки общие характеристики, 80 слабая система типизации, 317 сложность программирования, 26 |
Алфавитный указатель |
687 |
совет, 508, 517 содержание аспекта, 515 сообщение связывание с методом, 468 C++, 469 Java, 470 псевдопеременная для получателя, 464 специальные формы языка Scheme, 622 способы построения критериев, 37 спутывание, 506 спутывание кода из-за предметно-ориентированной оптимизации, 504 срез, 507, 512, 516 строковые потоки, 575 структура вычислительной машины, 44 схемы организации повторений, 125 Т-Я тег, 76 тип выражения, 232 тип данных, 212 дескриптор, 213 десятичные числа, 241 динамический контроль, 219 записи и массивы вложения, 269 запись, 265 вариантная, 270 надежность, 274 объединение, 272 кортеж, 276 логический, 242 массив, 246 ассоциативный, 259 атрибуты и операции, 252 динамический, 249 инициализация, 251 компоновка, 247 массив массивов, 254 операции в скриптовых языках, 253 проверка значения текущего индекса, 248 прямоугольный, 253 размещение, 247 разреженный, 250 сечение, 256 статический, 248 стековый, 249 явный динамический, 249 явный стековый, 249 |
тип данных (продолжение) множество, 275 перечисление, 236 поддиапазон, 242 символьный, 243 список, 277 ссылка в языке C++, 296 статический контроль, 218 строка символов, 261 выделение подстроки, 263 операции, 262 структура, 266 указатель, 282 безопасность в языке Pascal, 286 операции в языке Pascal, 283 повисшие указатели, 285 реализация, 297 утечки памяти, 285 эффективность доступа, 287 язык Ada, 288 целый и вещественный, 238 элементарный, 213 ткач аспектов, 513 точки соединения, 507 точки соединения в АОП, 506 точки соединения сообщений, 506 транслятор, 47 загрузка, 60 лексический анализ, 54 макрообработка, 57 обнаружение ошибок, 57 поддержка таблицы символов, 57 проходы, 53 семантический анализ, 55 синтаксический анализ, 55 синтез объектной программы, 58 трансляция, 47 требования к аппарату исключений, 523 удобство написания программ (свойство языка), 147 удобство чтения программ (свойство языка), 146 указатели const и указатели, 309 указатель язык С, 291 адресная арифметика, 292 адресное выражение, 291 гибкость указателей, 295 динамическое распределение памяти, 294 операция взятия адреса, 292 |
указатель (продолжение) указатели вида void SYMBOL 42 \f "Symbol" \s 10, 293 укороченное вычисление, 107 унификация, 658 уплотнение, 386 управление памятью метод наиболее подходящего, 386 метод первого подходящего, 386 фазы, 386 управление рандеву, 595 управляющие последовательности, список, 153 условный вызов входа, 601 фазы управления кучей, 386 файл, 45, 543 внешний, 543 внутренний, 543 операции, 544 последовательного доступа, 552 прямого доступа, 554 способы доступа, 543 текстовый, 546 файловые потоки, 570 файлы последовательного доступа, 539 прямого доступа, 539 физические контейнеры, 422 в языке С, 423 в языке C++, 423 пакеты в языке Ada, 424 сборки в языке С#, 426 флаги форматирования, 565 формат записи активации в Pascal, 391 формат записи активации в С, 390 формулы Хорна, 653 запросы, 655 правила, 655 формы наследования для конструирования,457 для обобщения, 458 для ограничения, 458 для расширения, 458 для реализации, 457 для специализации,456 множественное, 459 функции методы ignore(), 569 setf(), 566 |
688 |
Алфавитный указатель |
функции (продолжение) unsetf(), 566 флагов ошибок, 568 функции ios, 567 функции флагов ошибок, 568 функциональные компоненты, 503 функция, 616 величина данных первого класса, 618 высшего порядка, 618 композиция, 618 определение, 616 применение, 616 хвостовая рекурсия, 625 эквивалентность типов данных, 300 именная, 301 нестрогая, 303 строгая, 303 структурная, 301 электронная коммерция, 30 язык C, 65 Fortran, 64 HTML, 75 JavaScript, 84 JSP, 96 LISP, 69 Lua, 88 ML ввод и вывод, 637 карризация,641 проверка типов, 636 списки, 634 типы данных, 638 функции и величины, 633 Perl, 82 PHP, 85 Prolog, 72 арифметика, 661 выполнение, 660 |
язык (продолжение) информация управления, 672 нотация и структуры данных, 660 оператор отсечения, 667 откат, 665 проблема замкнутого мира, 669 проблема логического отрицания, 670 проверки вхождения при унификации, 669 стратегия поиска, 664 унификация, 662 формулы Хорна не выражают всю логику, 671 Python, 86 Ruby, 87 Scheme динамическая проверка типа, 625 создание функций, 623 специализация, 631 статическая область видимости, 630 структуры данных, 626 функции высшего порядка, 629 Smalltalk, 74 XSLT, 92 языки программирования, 25 4GLs, 28 императивные, 63 интерпретируемые, 50 компилируемые, 50 логические, 70 нотации выражений, 99 объектно-ориентированные, 73 парадигмы, 62 скриптовые, 78 |