Главная » Просмотр файлов » Б. Страуструп - Дизайн и Эволюция C++. 2006

Б. Страуструп - Дизайн и Эволюция C++. 2006 (1160775), страница 38

Файл №1160775 Б. Страуструп - Дизайн и Эволюция C++. 2006 (Б. Страуструп - Дизайн и Эволюция C++. 2006) 38 страницаБ. Страуструп - Дизайн и Эволюция C++. 2006 (1160775) страница 382019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 38)

Официально самым важным считается комитет ЖС-21, сформированный Международной строить как интерпретатор, предоставляющий приложениям собственную среду. Но у такого подхода есть свои нюансы: в частности, становится трудно воспользоваться особенностями специализированной аппаратуры и следовать локальным требованиям к стилю. Работая на языке, пригодном для построения серьезных систем, мы должны смириться с тем, что вновь и вновь наивный пользователь посылает в сетевую конференцию сообщение: «Я перенес свой объект с Мас на БРАКС, и он перестал работать».

Как и переносимость, способность к взаимодействию — это вопрос проектирования и понимания тех ограничений, которые налагает среда. Некоторые программисты не знают, что фрагменты, откомпилированные двумя разными компиляторами С для одной и той же системы, необязательно можно будет связать друг с другом (скорее всего, это не получится). И тем не менее они приходят в ужас, оттого что С««не гарантирует такое взаимодействие. Это обычное явление, и мы должны просвещать пользователей. Работа комитета ИИИИИИИВ организацией по стандартизации (150).

Он работает по международным прави- лам и принимает окончательное решение о придании стандарту статуса междуна- родного. В частности, действует правило «одна страна — один голосы Другие стра- ны, в том числе Великобритания, Германия, Дания, Россия, Франция, Швеция и Япония, теперь имеют собственные национальные комитеты по стандартизации С++, которые направляют запросы, рекомендации и своих представителей на со- вместные заседания комитетов АХБ1/150. Мы не стали принимать никаких решений в обход процедуры голосования, удовлетворяющей правилам как АХЯ, так и 150.

Это означает, что комитет функ- ционирует, скорее, как двухпалатный парламент, где основные дебаты проходят в «нижней палате» (АХВ1), а затем решение ратифицируется в «верхией пала- те» (150). Однажды такая процедура привела к отклонению предложения, которое в про- тивном случае было бы принято незначительным большинством голосов. Таким образом национальные представители уберегли нас от ошибки, которая могла бы вызвать разногласия. Вопрос был в том, следует ли в какой-то форме определять для С++ ограничения на трансляцию.

Гораздо лучшее решение по этому поводу принято позднее. АХБ1 и 150 проводят совместные заседания три раза в год. Чтобы не вносить путаницу, я буду называть две зти структуры словом «комитет». Каждая встреча продолжается неделю, много часов уходит на решение процедурных вопросов.

Но гораздо больше времени тратится на всякие недоразумения, неизбежные, когда 70 человек пытаются разобраться, чту же все-таки обсуждается. Несколько днев- ных и несколько вечерних заседаний носят технический характер: здесь обсуж- даются такие вопросы, как международные наборы символов и идентификация типов во время выполнения, а также проблемы, относящиеся собственно к стан- дартизации, например формальные методики и организация международных структур по стандартизации. Остальное время отведено для встреч рабочих групп и обсуждений представленных ими отчетов.

Сейчас в работе участвуют такие группы: о по совместимости с С; о по ядру языка; о редакторская; о по окружению; о по расширениям; ст по вопросам интернационализации; о по библиотекам; а по синтаксису, Ясно, что за три недели в году комитету не справиться с таким обширным спектром вопросов, поэтому большая часть работы проводится в промежутках межзу встречами. На каждое заседание представляется стопка отпечатанных на обеих сторонах листа документов толщиной около трех дюймов.

Документы посылаются в двух бандеролях: одна за пару недель до заседания, чтобы все члены комитета могли с ними ознакомиться, а вторая — через две недели после заседания. йПИИИИИИВ Стандартизация 6.3. Как велась работа Большая часть работы над станлартами не вилна среднему программисту, а котла начинаешь ее описывать, выглядит зта работа скучной и понятной лишь посвященным. Множество усилий тратится на ясное и полное выражение и без того известных всем, но не упомянутых в руководстве возможностей, а также на разрешение вопросов, важных лля произволителей компиляторов.

Ведь зто они хотят быть уверены, что правильно поняли то или иное языковое средство. Однако подобные вопросы становятся потом существенными и для программистов, поскольку в основу даже очень тщательно написанной большой программы может быть случайно или намеренно положена возможность, для кого-то не полностью понятная. Если произволители компиляторов не договорятся, то программист окажется <заложником» единственного поставщика, а это уже противоречит моим взглялам на то, каким должен быть С++ (см. разлел 2.1).

б.2Л. Кто работает е комитете В комитет по С++ входят люди с разными интересами, ожиланиями и подготовкой. Одни работают на персональных компьютерах, другие — на 13Х1Х-машинах, третьи — на мейнфреймах и т.д. Одни используют С++, другие — нет, Кто-то хочет, чтобы С++ стал более объектно-ориентированным языком (причем «объектной ориентированностиь даются очень разные определения), других бы больше устроило, если бы зволюция С остановилась на АХВ1 С. Многие, но не все работали с С. Некоторые имеют опыт работы над станлартами, но их меньшинство. Есть профессиональные программисты. Олни обслуживают интересы конечных пользователей, другие поставляют на рьшок инструментальные средства. Некоторым интересны крупные проекты.

Кому-то необходима совместимость с языком С, комуто — нет. Если не считать того, что все входящие в комитет — добровольцы, не получающие за свою работу в нем ни копейки (хотя некоторые прелставляют компании), то трудно выделить какие-то черты, присущие всем без исключения. И зто хорошо: только очень разношерстная группа люлей может выразить интересы весьма неоднородного сообщества пользователей С++. Правда, из-за зтого дискуссии бывают не очень конструктивными и занимают много времени. Меня беспокоит также, что голос пользователей С++ (программистов и проектировщиков) может быть не услышан в хоре языковых пуристов, так называемых проектировщиков языков, бюрократов от стандартизации, разработчиков компиляторов и т.д.

У меня совещательный голос, то есть я представляю свою компанию, но голосует от нее другой человек. Узнать, какие компании представлены в комитете, вы сможете, взглянув на выборку из перечня участников, относящегося к 1990 гс Апн1аЫ, Арр!е, Атйт, ВеПсоге, Вот!апг(, ВПГЬЬ Аегозрасе, С1)С, ОаГа Оепега), 1)ЕС, Гп)!гзп, Неч!ец-расйагг(, 1ВМ, Еоз А!ашоз Хайопа! ЕаЬз, ЕпсЫ, Мепгог ОгарЬ1сз, М1сгозо(ц М1РЯ, НЕС, Ы1Н, ОЬ)ест Оез!яп, Опто!оя1сз, Рпше Сошрцгег, БАБ 1пзйгпге, В!ешепз Ы1хг!ог(, В!!!соп ОгарЬ|сз, Вцп, Таис(еш Сошрнгегз, Тейггоп!х, Техаз 1пзсгцшепгз, ()п!зуз, 1)9 %ЕСТ, ~Чапд, ЕоггесЬ и др.

Надеюсь, вы согласитесь, что отрасль представлена довольно широко. ИИИИИИКИ Как велась работа Чтобы проиллюстрировать возникающие сложности, я подробно остановлюсь на двух вопросах: разрешении имен и продолжительности функционирования временных объектов. Большая часть усилий комитета тратится на решение именно этих проблем. (пс х; с1азз Х ( Гпс т() ( теситп х; ) гпс х; Какой х имеется в виду внутри х:: й ()? А вот другой пример: суреде1 спас* т; с1азз у ( т с() ( т а = 0; сесотп ау ) суредес Гпс т; ); Какое т имеется в виду внутри у:: й ( )? В АВМ даются такие ответы: х в определении х:: й ( ) — это х:: х, а определение класса у содержит ошибку, поскольку смысл т изменяется после использования в у:: б ( ) .

Эндрю Кениг, Скотт Тэрнер (Бсогс Тцгпег), Том Пеннелло, Билл Гиббонс (Вй) 61ЬЪопз) и еще несколько человек потратили много часов, чтобы найти точные, полные, полезные на практике, логически непротиворечивые и совместимые (со стандартом С и существующим кодом С++) решения. Мое участие в такого рода спорах было ограничено: я как раз размышлял о расширениях. Сложность проистекает из противоречивости целей: (з мы хотим, чтобы при синтаксическом анализе можно было ограничиться одним проходом по тексту; (з изменение порядка следования членов не должно менять семантику класса; (з семантика функции не должна зависеть от того, определена данная функция прямо в объявлении класса или вне его; сз имена, объявленные во внешней области действия, должны быть видимы и во внутренней (так же, как в С); (з правила разрешения имен не должны зависеть от того, к чему относится имя.

Если строго следовать всем этим установкам, то синтаксический анализ будет достаточно быстрым, а пользователям не придется заботиться о соблюдении 6ЗЛ. Разрешение имен Самые большие сложности в определении С++ связаны с разрешением имен: с каким точно объявлением связано данное употребление имени. Ниже описана лишь одна проблема такого рода. Она относится к зависимости от порядка объявления членов класса. рассмотрим пример: ПШИИИИИИ Стандартизация 6.3Л.7. Правила разрешения имен в Ай()/( В АВМ эти проблемы решены без особого успеха.

Имена из внешней области действия можно использовать непосредственно, а возникающие при этом зависимости от порядка я попытался минимизировать с помощью двух правил: с) правило переопределения типа; имя типа нельзя переопрелелять в классе после того, как оно в ием уже использовалось; ц правило переписывания: функции-члены, определенные в объявлении класса, разбираются так, как если бы они были определены в точке, непосредственно следующей за концом объявления этого класса.

Из-за правила переопределения класс у дает ошибку: Сурес)ег сваг* Т; с1азз У ( ТГ() (Та=с; сесптпар ) сурес)ес (пс т/ // ошибка: т переопределен после // использования ); Правило переписывания говорит, что с! аз э Х следует интерпретировать как: 1пс х; с1азз Х ( 1пс Г(); 1пс х; 1п11пе 1пс х::1() ( гесигп х; ) // возвращает х::х К сожалению, не все примеры так просты. Рассмотрим: сопзс 1пс 1 = 99; с1азз 2 ( 1пс а[1]1 !пс г() ( сесисп 1; ) епаш ( 1 = 7 ): Этот пример корректен согласно букве правил АВМ, но находится в некотором противоречии их идеям. Два использования 1 относятся к разным определениям и дают разные значения.

Правило переписывания говорит, что 1 в Е:: ! ( )— это а:: 1 и равно 7. Однако для использования 1 в качестве индекса никакого правила переписывания нет, поэтому имеется в виду глобальное а, равное 99. правил, поскольку компилятор по большей части способен найти неоднозначные случаи употребления. В том виде, в каком они сформулированы сегодня, эти пра- вила очень удачны. Как велась работа ЯИИИИИИБ Несмотря на то что 1 используется для определения типа, само оно именем типа не является, поэтому не подпадает под действие правила переопределения. Правила АХЗ1/150 говорят, что этот пример некорректен, так как 1 переопределено после использования.

Характеристики

Тип файла
DJVU-файл
Размер
2,78 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6439
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее