Программирование >>  Полиморфизм без виртуальных функций в с++ 

1 [ 2 ] 3 4 5 ... 144


Год Месяц Событие

1979

Начало работы на С with Classes

октябрь

Готова первая реализация С with Classes

1980

апрель

Первый внутренний документ по С with Classes в Bell Labs [Stroustrup, 1980]

1982

январь

Первая опубликованная статья по С with Classes [Stroustrup, 1982]

1983

август

Готова первая реализация С++

декабрь

С++ получил имя

1984

январь

Вышло первое руководство по С++

1985

февраль

Первая распространяемая версия С++ (Release Е)

октябрь

Cfront Release 1.0 (первая коммерческая версия)

октябрь

Вышла книга The С++ Programming Language [Stroustrup, 1986]

1986

август

Статья Whatis? [Stroustrup, 1986b]

сентябрь

Конференция OOPSLA (положившая начало безудержной рекламе объектно-ориентированного программирования, крутящейся вокруг Smalltalk)

ноябрь

Первая коммерческая версия Cfront для ПК (Cfront 1.1, Glockenspiel)

1987

февраль

Cfront Release 1.2

ноябрь

Первая конференция USENIX, посвященная С++ (Сайта Фе, штат Нью-Мексико)

декабрь

Первая версия GNU С++ (1.13)

1988

январь

Первая версия Oregon Software С++

июнь

Первая версия Zortech С++

октябрь

Первый симпозиум разработчиков С++ в рамках USENIX (Эстес Парк, штат Колорадо)

1989

июнь

Cfront Release 2.0

декабрь

Организационная встреча комитета ANSI X3J16 (Вашингтон, округ Колумбия)

1990

март

Первое техническое совещание комитета ANSI ХЗЛ 6 (Сомерсет, штат Нью-Джерси)

Первая версия Borland С++

Вышла книга The Annotated С++ Reference Manual [ARM]

июль

Одобрены шаблоны (Сиэтл, штат Вашингтон)

ноябрь

Одобрен механизм обработки исключений (Пало Альто, штат Калифорния)

1991

июнь

Вышло второе издание The С++ Programming Language [2nd]

июнь

Первая встреча рабочей группы IS0WG21 (Лунд, Швеция)

октябрь

Cfront Release 3.0 (включающая шаблоны)

1992

февраль

Первая версия DEC С++ (включающая шаблоны и обработку исключений)

март

Первая версия Microsoft С++

Первая версия IBM С++ (включающая шаблоны и обработку исключений)

1993

март

Одобрена идентификация типов во время исполнения (Портленд, штат Орегон)

июль

Одобрены пространства имен (Мюнхен, Германия)

1994

август

В комитете ANSI/ISO зарегистрирован предварительный стандарт

Таблица 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] - весь.ма заметно. Диафамма не отражает влияние С++ на другие языки. Сплошными линиями обозначено воздействие на структуру языка, пунктирными - на его специфические



1 [ 2 ] 3 4 5 ... 144

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика