"Мюррэй Хилл, Бьярн Страустрап. Язык С++" - читать интересную книгу автора Исключались те черты, которые могли бы повлечь дополнительные
расходы памяти или времени выполнения. Например, мысли о том, чтобы сделать необходимым храние в каждом объекте "хозяйственной" информации, были отвергнуты; если пользователь описывает структуру, состоящую из двух 16-битовых величин, то структура поместится в 32- битовый регистр. C++ проектировался для использования в довольно традиционной среде компиляции и выполнения, среде программирования на C в системе UNIX. Средства обработки особых ситуаций и параллельного программирования, требующие нетривиальной загрузки и поддержки в процессе выполнения, не были включены в C++. Вследствие этого реализация C++ очень легко переносима. Однако есть полные основания использовать C++ в среде, где имеется гораздо более существенная поддержка. Такие средства, как динамическая загрузка, пошаговая трансляция и база данных определений типов могут с пользой применяться без воздействия на язык. Типы и средства скрытия данных в C++ опираются на проводимый во время компиляции анализ программ с целью предотвращения случайного искажения данных. Они не обеспечивают секретности или защиты от умышленного нарушения правил. Однако эти средства можно использовать без ограничений, что не приводит к дополнительным расходам времени на выполнение или пространства памяти. Исторические замечания подможество, поэтому сделанного в C акцента на средствах низкого уровня достаточно, чтобы справляться с самыми насущными задачами системного программирования. C, в свою очередь, многим обязано своему предшественнику BCPL [9]; на самом деле, комментарии // (заново) введены в C++ из BCPL. Если вы знаете BCPL, то вы заметите, что в C++ по-прежнему нет VALOF блока. Еще одним источником вдохновения послужил язык Simula67 [2,3]; из него была позаимствована концепция класса (вместе с производными классами и функциями членами). Это было сделано, чтобы способствовать модульности через использование виртуальных функций. Возможности C++ по перегрузке операций и свобода в расположении описаний везде, где может встречаться оператор, похожи на Алгол68 [14]. Название C++ - изобретение совсем недавнее (лета 1983его). Более ранние версии языка использовались начиная с 1980ого и были известны как "C с Классами". Первоначально язык был придуман потому, что автор хотел написать модели, управляемые прерываниями, для чего был бы идеален Simula67, если не принимать во внимание эффективность. "C с Классами" использовался для крупных проектов моделирования, в которых строго тестировались возможности написания программ, требующих минимального (только) пространства памяти и времени на выполнение. В "C с Классами" не хватало перегрузки операций, ссылок, виртуальных функций и многих деталей. C++ был впервые введен за пределами исследовательской группы автора |
|
|