Б. Страуструп - Дизайн и Эволюция C++. 2006, страница 4
Описание файла
DJVU-файл из архива "Б. Страуструп - Дизайн и Эволюция C++. 2006", который расположен в категории "". Всё это находится в предмете "языки программирования" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла, 4 - страница
раздел 15.10) и периода существования временных объектов (см. пункт 6.3.2), Специалисты по языкам программирования, языковые пуристы и разработчики найдут в этой книге немало поводов для критики, ио я стремился дать общую картину, а ие точные и исчерпывающие разъяснения по поводу каждой мелочи. Если вам нужны технические детали, обратитесь к книге Тйе АппойггеЫ С++ Щегепсе Мапиа! 1АЕМ1, где дано определение языка, или к книге Язык программирования С++ (второе издание) [2пс11', или к рабочим материалам комитета АХ51/15О по стандартизации.
Языки программирования Несколько рецензентов просили меня сравнить С++ с другими языками. Но я решил этого ие делать. Еще раз выскажу свою неизменную точку зрения: сравиеиие языков редко бывает осмысленным, а еще реже честным. Для хорошего сравнительного анализа основных языков программирования требуется больше времени, чем можно себе позволить, нужно иметь опыт работы во многих прикладиых областях, быть беспристрастным и объективным. Времени у меня иет, и вряд ли я, как создатель С++, могу рассчитывать, что многие поверят в мою беспристрастность по этому поводу. Еще меня беспокоит некий феномен, который я неоднократно наблюдал, когда другие пытались заняться честным сравнением языков.
Авторы изо всех сил стараются быть объективными, ио обязательно делают упор иа каком-то одном виде приложений, одном стиле или определенной культуре программирования. А уж если один язык более известеи, чем другой, то в оценке чуть ли изначально возникает некая предубежденность: дефекты хорошо известного языка признаются несущественными, для иих предлагаются простые способы обхода, тогда как аналогичные изъяны в других языках объявляются фундаментальными проблемами.
Но ведь часто бывает, что в менее популярном языке давно известны методы решения подобных задач, только автор сравнительного обзора о иих ие зиает или считает неудовлетворительными, поскольку в знакомом ему языке оии работать ие будут. Кроме того, самая свежая информация о хорошо известном языке доступна. Говоря о языке менее популярном, авторы подчас вынуждены полагаться иа устаревшие сведения. Если языки вообще уместно сопоставлять, то сравнивать язык Х иа основе определения трехлетней давности с языком г' в том виде, в каком ои ' В настоящее время уже вышел русский перевод третьего издания этой книги (Б. Страус- труп «Язык программирования С++и издательство «Бином», 1999). — Прим. перев.
ПИИИИИИН Языки программирования Рог!гас ывр— !во д!99 во Рааса! 70 70 Д!оо! ВВ во во мове!а-2 лов Ве!а с++,, сп!ес!Ме с див!с ".ьж вене! сьов сааре 90 9О мсои!в-3 с++вы ЛсввХ существует в данный момент, нечестно и бессмысленна Поэтому, как уже было сказано выше, в отношении отличных от С++ языков я ограничусь общими высказываниями и небольшими замечаниями на узкие темы. Чтобы прояснить историческое место С++, на рисунке ниже показано, когда появились на свет другие языки программирования, часто упоминаемые в связи с данным. Данная диаграмма ни в коей мере не претендует на полноту и отражает лишь важнейшие влияния па С++.
В частности, воздействие концепции классов из 8!шп!а на диаграмме отражено явно неполно: на языки А![а [!сЪЪ!аЪ, 19791 и С!и [Ъ!в[гоч, 1979[ Б!шп!а повлияла не очень сильно, а на Аг[а9Х [Тай, 1992[, Вега [МасЬеп, 1993[, ЕНе! (Меуег, 1988[ и Мо![и!а-3 [Ъ[е!зоп, 1991] — весьма заметно. Диаграмма не отражает влияние С++ на другие языки. Сплошными линиями обозначено воздействие на структуру языка, пунктирными — на его специфические Обращение к читателю ЫИИИИИВ1 Библиография В этом разделе перечислены работы, на которые даются ссылки во всех главах книги. Таблица 2 вее [81гоив1гир,1991].
Еи! Ацьа: АП Оуелавпг ОГАС!ОГ !Влдиадвз. АСМ 8]ЕР[АН НО6СЕВ. ОС1ОЬЕГ 1986. Аягеб Аьо, яви Вею], впб депгеу О. Овтвп: Сотрг!егвг Рппшрев, Геслпгциев, апб Гиогв. Абб!воп-УУев]еу, Певб!пц, МА. 1986. ШВН 0-201-10088-6. вее [ВГ!]в.1990]. квге! Ввьсмку: 6!ти!а Реггогтапсе Аввеввтеп!. Ргос. !шр ууе2.4 соп1егепсе оп Вув!егп !гпр!етеп1вбоп [апцивцев: Ехрег!епсе впб Аввеввгпеп1.
Свп1егЬигу, Кеп1, []К. Вер1етЬег 1984. [2пб] [Ацьв,1986] [АПо,1986] [АЙМ] [Вввс]вау,1984] средства. Под датой появления языка в большинстве случаев понимается дата первой версии. Например, А]80]68 ['!![гоойуагг], 1974] датирован 1977 г., а не 1968 г. Анализируя отзывы на статью, представленную на конференции НОР[.-2, и многие другие источники, я пришел к выводу: нет согласия по поводу того, что же такое язык программирования и какой главной цели он должен служить.
Как его определить? Это инструмент для составления компьютерных заданий? Средство для обшения программистов? Способ представить высокоуровневые проекты? Система обозначений для записи алгоритмов? Возможность выразить отношения между концепциями? Средство для проведения экспериментов? Механизм управления компьютеризованными устройствами? По-моему, язык программирования общего назначения должен отвечать всем вышеперечисленным критериям и удовлетворять потребности самых разных групп пользователей. Единственное, чем язык быть не может, — это простым набором внзяшных штучекм Разнобой мнений также отражает существующие точки зрения на то, что такое информатика и как следует проектировать языки. Является ли информатика частью математики или это, скорее, отрасль инженерного проектирования? Или архитектуры? Или искусства? Или биологии? Или социологии? Или философии? А может, информатика заимствует методы и подходы, применяемые во всех этих дисциплинах? Я склоняюсь к последнему предположению.
Отсюда следует, что проектирование языка отличается от более строгих и формальных наук вроде математики и фг!лософии. Чтобы стать полезным, универсальный язык программирования должен быть эклектичным и учитывать множество прагматических и социальных факторов. В частности, каждый язык проектируется для решения определенного вида задач в определенное время в соответствии с представлениями определенной группы людей. С появлением новых требований исходный дизайн начинает расширяться, чтобы соответствовать современному пониманию задач.
Эта точка зрения прагматична, но не беспринципна. Я твердо убежден„что все успешные языки программирования именно развивались, а не были просто спроектированы на базе первоначально заложенных принципов. Принципы лежат в основе исходного дизайна и определяют последующую эволюцию языка, однако и сами они не остаются застывшими. Библиография Таблица 2 (лродолкение) 11ИИИИИИН [Ваг!ол, 1994) [Вя1ийве,1979] [Воеле,1993) [Воосл, ! 990] [Воосл,1991! [Воосп,1993] [Воосп,!993Ь! [Вибце,!992) [Вий,1992) [Сав, 1987] [Сатегоп,1992) [СаерЬев,1987) [Са11е9,1991] [Сагц91,!99!] [Саггов, 1991] (Саггов, 1993] [Спапбу,1993] [Спвбап,1989] [Сох, 1986) [ОаЫ,1988] [Оеапе, ! 990) йолп б. Ваг1оп апб Еее Я. Масвеап: 5с!елабс апб Елд!лееплд С++с Ал !л!гобисбоп мй Абчялсеб Тассо!диез алб Ехатр!ез.
Абб!воп-Увез!еу, йеабйц, МА. 1994. !ЯВМ 0-20! -53393-6. 6гаиае В!гвя!вбе, О!е-,]олап Оай, В!огп Мугиаоц, апб Кпв1еп Муцаагб: Я!МОСА ВЕС!М 8!ибепИИ!ега1иг, Сопи, Яччебеп. 1979. 1ЯВМ 91-44-062!2-5. Наив-д. Воепе: Яраса Ел!с!еп! Соляегча!ие ВагЬаде Соявслол. Ргос.
АСМ 8!ОРСАМ '93 Соп1егепсе оп Рецгает1пц [апцоаце Оейцп апб !ер1етепсаиоп. Асм 8!6Р[Ам моисея. Иоле 1993. 6габу Всоси апб М!сьае! м. чио1: тпе Оезlдп ог!Ие сн- Воосл сотролеп!з. Ргос. СОРЯ[А'90. Ос1оЬег 1990. 6габу Воосп: Оь!есс-Спел!еб Сея!дл. Веп]ат!и сотт1пцв, йебвооб сИу, СА. 199!. !ЯВМ 0-8053-0091-0.
6ебу Воось: ОЫесс-Оггел1еб Апа!уяи алб Оейдл зять Арриса!!оля, 2пб ебсдсл. Веп1ае!и Сипмпюцв, йебчюоб СИу, СА. 1993. !ЯВМ 0-8053-5340-2. Огабу Всоси апб м!спае! м. чиоо $!тр!!Иялд Тле с++ Волил сотролел!я. Тпе С+гйерог[. Иоле 1993. Кеп Вибце, 4.8. Репу, апб А.С. ЯоЫпзоп: Н!дл-Регсогглалсе 5с!епддс Сотри!алол ийлд С++. Ргос. 08ЕКИХ С++ Соп1егепсе. Рог[!апб, Ой. Аицив1!992. Ре1ег А. Випг апб 6!еп ОИсЬИей; Абб!лд Солсиггелсу Ю а Ргодгатттд сапдивде. Ргос. 08ЕКИХ С++ Соп1егепсе. Роб!апб, Ой. Аидой 1992. 0за А.
с ау, е1 а! х с[Ам - Ал Орел Яуя!ет гог Ога рыса! 0яег !и!е~асез. Ргос. 08ЕМ!Х С++ Соп1егепсе. Яап1а Ее, ММ. МочегпЬег 1987. Ооп Саеегоп, ес а!х А Рог[аЫе !тр!етепсадол ог С++ Ехсер!юл Налб!!лд. Ргос. 0$ЕМ!Х С++ Соп1егепсе. РогИапб, Ой.
Аицив1 1992. Яоу СагпрЬев, е1 а!х ТЬе Оейдп ог а Чогбргосеввог Орегвллд Яув!ет. Ргос. 08ЕМ1Х С.н. Соп1егепсе. $ап1а Ре, ММ. МсчетЬег 1987. й !си 6.6. Своев: ОЬ!Ьс! Оа!а Ма падете ос ОЬ!еср Ог!ел!во алб Ен1 елбеб Яе!эбола! Ов1аЬаяе Яуя!етз, Абб!зоп-Чгев!еу, йеаб!пц, МА. ! 991. !ЯВМ 0-201-53092-9. тое А.
сагцй: тле сазе Адв!пв! мотбрге !олег!!алое !л с++. 0$ЕМ1ХСоери1ег8ув!еев. Уо!4, по 1, !99!. магип саггои: 0з!лд мотбр!е !пьеп!ассе !о !тр!стел! Аьйгас! Сага турев. Тпе С++йерОг!. Аргв !99!. магип саггои; Оез!дл о! !Ье уяс 5!албагб сотролелй, тле с++ Веро!1. боле !993.
К. Мап! Слапбу впб Саг! Кевве!еап: Сотрояцюла! С++! Сотрозрбопа! Рагаде! Редгатт!лд. Ргос. Еоипп ууогввлор оп Рагаве! Соеридпц апб Согпрвегв. Ярг!пцег-Чег!ац. 1993. Г(ач!о Спвбап: Ехсер!!ол Налб!!лд. ОерепбаЫйу о1 йевИ!еп1 Соерисегв, Т. Апбегвеп, есйог. В$Р Рго1евз!опа! Воо!е, В!асвчю!! ВйепИИс РоЫюавопв, 1989.
Вгаб Сох: ОЬ!ес1-Опепгебргодгятт!лд: Ал Ечо!идолагуАрртасп. АбсцвопАНез!еу, йеаб1пц, МА. 1986. О!е-дсиап Оай: Рееопа! сопхпип!сасоп. Регца! Оеаг!е: Сея!делд РоггаЫе Арр!ааболя Егатечгогая Гог Са К Ргос. 08ЕМ!Х С++Соп1егепсе. Яап Ргапсйсо, СА. Арп! 1990. И!ИИИИШИИ1 Таблица 2 [продолжение) Обращение к читателю [Оопвагб,1990] [Ба[с, ! 991] [ЕЕв, ! 990] [Еаив1, ! 990) [Еопсапв,! 99! ] [Рога! о по,1990) [Оамгоп,1992) )Оепап[,1988] [ОЫИЬегц,! 983] [Особ епсоцп, ! 975) [Оог!еп,1987] [Оогсеп,1990) [НьЬе1,1992) [ссЬЫаЬ,1979) [!пцавз, ! 985) [!п1еггапсе, ! 990) [баппвоп, 1992) [даппвоп, ! 989] [Кецег, ! 992) [Квбег,1993] Веап М. Оопчагб, еС в!с Або!од Меьч Сабе Го а йиллгпд Ргодгвт. Ргос. 08ЕМСХ С++ Сапсегепсе. 8ап Егвлссвсо, СА.