|
Программирование >> Полиморфизм без виртуальных функций в с++
Год Месяц Событие
Таблица 1 В настоящее время уже вышел русский перевод третьего издания этой книги (Б. Страус-труп Язык программирования С++ , издательство Бином , 1999). - Прим. перев. Пользователь превыше всего Эта книга написана для пользователей С++, то есть для программистов и проектировщиков. Я старался избегать запутанных и понятных лишь немногим экспертам предметов, стремясь увидеть С++, его средства и эволюцию глазами пользователя. Узкоспециальные аспекты языка обсуждаются только тогда, когда связаны с вопросами, непосредственно касающимися пользователей. В качестве примеров можно привести рассмотрение правил разрешения имен в шаблонах (см. раздел 15.10) и периода существования временных объектов (см. пункт 6.3.2). Специалисты по языкам программирования, языковые пуристы и разработчики найдут в этой книге немало поводов для критики, но я стремился дать общую картину, а не точные и исчерпывающие разъяснения по поводу каждой мелочи. Если вам нужны технические детали, обратитесь к книге The Annotated С++ Reference Manual [ARM], где дано определение языка, или к книге Язык программирования С++ (второе издание) [2nd]или к рабочим материалам комитета ANSI/ISO по стандартизации. Языки программирования Несколько рецензентов просили меня сравнить С++ с другими языками. Но я решил этого не делать. Еще раз выскажу свою неизменную точку зрения: сравнение языков редко бывает осмысленным, а еще реже честным. Для хорошего сравнительного анализа основных языков программирования требуется больше времени, чем можно себе позволить, нужно иметь опыт работы во многих прикладных областях, быть беспристрастным и объективным. Времени у меня нет, и вряд ли я, как создатель С++, могу рассчитывать, что многие поверят в мою беспристрастность по этому поводу. Еще меня беспокоит некий феномен, который я неоднократно наблюдал, когда другие пытались заняться честным сравнением языков. Авторы изо всех сил стараются быть объективными, но обязательно делают упор на каком-то одном виде приложений, одном стиле или определенной культуре программирования. А уж если один язык более известен, чем другой, то в оценке чуть ли изначально возникает некая предубежденность: дефекты хорошо известного языка признаются несущественными, для них предлагаются простые способы обхода, тогда как аналогичные изъяны в других языках объявляются фундаментальными проблемами. Но ведь часто бывает, что в менее популярном языке давно известны методы решения подобных задач, только автор сравнительного обзора о них не знает или считает неудовлетворительными, поскольку в знакомом ему языке они работать не будут. Кроме того, самая свежая информация о хорошо известном языке доступна. Говоря о языке менее популярном, авторы подчас вынуждены полагаться на устаревшие сведения. Если языки вообще уместно сопоставлять, то сравнивать язык X на основе определения трехлетней давности с языком У в том виде, в каком он - Fortran - PL/1 Algol 60- Pascal BCPL Simula 67- Modula-2 Ada- Algol 68 Beta С with ; Classes. Xtf ANSI С Modula-3 Ada9X -Kif C++arm C++std .ML Clu Lisp -60 -Smalltalk-80- 80 Objective С Eiffel CLOS 90 существует в данный момент, нечестно и бессмысленно. Поэтому, как уже было сказано выше, в отношении отличных от С++ языков я ограничусь общими высказываниями и небольши.ми замечаниями на узкие темы. Чтобы прояснить историческое место С++, на рисунке ниже показано, когда появились на свет другие языки программирования, часто упоминае.мые в связи с данным. Данная диаграмма ни в коей мере не претендует на полноту и отражает лишь важнейшие влияния на С++. В частности, воздействие концепции классов из Simula на диаграмме отражено явно неполно: на языки Ada [Ichbiah, 1979] и Clu [Liskov, 1979] Simula повлияла не очень сильно, а на Ada9X [Taft, 1992], Beta [Madsen, 1993], Eiffel [Meyer, 1988] и Modula-3 [Nelson, 1991] - весь.ма заметно. Диафамма не отражает влияние С++ на другие языки. Сплошными линиями обозначено воздействие на структуру языка, пунктирными - на его специфические
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |