Главная » Просмотр файлов » Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002)

Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (1160801), страница 14

Файл №1160801 Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002)) 14 страницаТ. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (1160801) страница 142019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Однако федеральные стандарты всегда принимаются в качестве общих, а о(1ЯТ, А)Ч51, 1ЕЕЕ и 1ЯО обычно разрабатывают стандарты совместно. Процесс разработки стандартов во всех подобных организациях одинаков. В некоторый момент специальная группа решает, что язык необходимо стандартиэовать. Затем совет по стандартам нанимает группу добровольцев для разработки стандарта.

Когда зта рабочая группа вырабатывает свой вариант стандарта, он переходит на голосование в группу заинтересованных лиц. Расхождения, выявленные при голосовании, прорабатываются, и затем выпускается стандарт языка. 1.3, Роль языков программирования 49 Хотя теоретически все выглядит хорошо, на самом деле создание стандартов является отчасти технической, а отчасти и политической проблемой.

Например, поставщики компиляторов имеют определенный финансовый интерес в созлании определенных стандартов. Естественно, они хотят, чтобы стандарт был как можно ближе к их компилятору, чтобы не пришлось вносить изменения в свою реализацию. Такие изменения не только дорого стоят сами по себе, они приводят еще и к тому, что программы пользователей, работающих с измененным компилятором, перестают отвечать станларту. Это, разумеется, созлает неудобства потребителям. Поэтому, как и отмечалось выше, создание стандартов — процесс, основанный на компромиссах. Не каждый извлекает из него выгоду, но все же имеется надежда что получивши йся в результате язык будет приемлемым для всех.

Рассмотрим следующий простой пример. В процессе обсуждения стандарта ГОКТКАЫ 77 все стороны пришли к соглашению, что поскольку большинство реализаций ЕОКТКАХ уже имели строки и подстроки, желательно стандартизовать такую возможность. Однако существовало несколько реализаций цодстрок. Для пояснения рассмотрим строку М = "аЬсЬе19". Согласно одной реализации, подстрока ьбсце" обозначалась М12: 5), то есть строка, состоящая из символов строки М со второго по пятый. В другой реализации та же подстрока обозначалась М12: 4), то есть строка, начинающаяся с позиции 2 и имеющая 4 символа. Если же считать символы справа налево, ту же подстроку можно было записать и как М13: б) .

Поскольку невозможно было достигнуть никакого соглашения по этому вопросу, было решено просто оставить его за рамками стандарта, Хотя этот стандарт не отвечает большинству высказанных вданной главе требований, принятое решение оказалось вполне подходящим. По этой причине стандарты являются полезными документами, но на определение языка могут оказать влияние некоторые сиюминутные политические соображения. Чтобы использовать стандарт эффективно, следует рассмотреть три аспекта стандартизации. 1. Своввречецность. Когда нужно стандартизовать язык? 2.

Соответстгае. Как определить, что программа соответствует стандарту, а компилятор компилирует согласно стандарту? 3. Уоларевание. Что обусловливает устаревание стандарта и как его следует модифицировать? Рассмотрим все эти вопросы по очереди. Своевременность. Одним из важных вопросов я вляется определение момента, хогди следует стандартизовать язык. Язык ЕОКТКАЫ впервые был стандартизован в 1966 г., когда уже существовало несколько несовместимых его версий. Это привело к некоторым проблемам, поскольку каждая реализация отличалась от других.

Другой крайностью является язык Аг)а, который впервые бьп стандартизован в 1983 г., еще до того, как возникла первая реализация. Когда создавался этот стандарт, еще никто не мог сказать, будет ли вообще этот язык работать. Первые эффективные компиляторы Ас!а появились только в 1987 г., а некоторые недостатки этого языка были обнаружены только при создании этих первых реализапий. Таким образом, слелует создавать стандарт языка не слишком рано, чтобы 50 Глава 1. Проблемы разработки языка накопилось достаточно опт па в его применении, но и не слишком поздно, чтобы не поощрять создание несовместимых реатизаций.

Из языков, описанных в данной книге, ЕОКТКАХ был стандартизован слишком поздно, когда было уже много несовместимых реализаций, а Ада, наоборот,— слишком рано, когда еще не было ни одной. Вовремя появились стандарты языков С н Рааса!, когда они уже начали распространяться, но еще не было большого количества несовместимых версий. Соответствие. Если существует стандарт языка, то, естественно, возникает вопрос о соответствии тому стандарту. Программа счикгается соответствующей стиндирту, если она использует только те возможности, которые определены данным стандартом. Компилятор является соответствующим стиндарту, когла после компиляции соответствующей стандарту программы прн ее выполнении получается правильный результат. Следует отметить, что здесь ничего не говорится о расширениях стандарта.

Если в компилятор добавлены дополнительные возможности, то любая программа, использующая эти возможности, нс является соответствующей стандарту и стандарт ничего не говорит о том, какими должны быть результаты выполнения таких программ. Стандарт обычно относится только к соответствующим стандарту программам. Вследствие этого большинство компиляторов всегда имеют возможности, которые не описаны стандартом. Поэтому следует проявлять осторожность прн использовании локальной реализации как окончательной инстанции при выяснении смысла какой-либо языковой конструкции. (В качестве примера можно рассмотреть программу аяоцз1у на языке Рааса!, приведенную в листинге 9.1.) Устаревание стандартов.

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

Так устарел исходный стандарт РОСТКАХ 66, поскольку в нем не предусмотрены многие возможности современных языков, такие как типы, вложенные управляю вгие структуры, инкапсуляция, блочная структура и многое другое из арсенала современных языков программирования. В связи с этим процесс стандартизации стал предусматривать возможность обновления. Каждый стандарт должен пересматриваться раз в пять лет и либо обновляться, либо совсем отменяться. Правда, всегда находится какая-либо причина для нарушения пятилетнего срока, но тем не менее такой процесс но большей части достаточно эффективен, Первый стандарт языка ГОКТКА11 был принят в 1966 г., затем он был пересмотрен в 1978 г. (хотя срок завершения разработки стандарта в 1977 г.

и был перенесен на несколько месяцев, язык все же называется ГОКТКАг1 77), а затем в 1990 г. стандарт был снова пересмотрен. Язык Ада бьп стандартизован в 1983 г., а пересмотрен в 1995 г. Один из вопросов, связанных с обновлением стандарта, заключается в следующем: что делать с уже существующим набором написанных в соответствии со старым стандартом программ? Компании затратили большие средства на создание программного обеспечения, а переписывать все сугцествующие программы под новую версию языка — весьма дорогостоящее мероприятие. Поэтому в болыиин- 1.3.

Роль языков программирования 51 стве стандартов требуется предусматривать обратную совместимость, то есть новый стандарт должен включать в себя более старые версии языка. Однако при этом возникают некоторые проблемы. Например, язык может стать слишком громоздким, если в неьч накапливать все устаревшие конструкции. Более того, некоторые из таких конструкций могут препятствовать разработке хорошей программы. Оператор Е001ЧАЕЕКСЕ языка РОЙТЕРА)ч' может служить примером такой устаревпшй конструкции.

Пусть Я вегцественное число, а 1 — целое, тогда последовательность операторов ЕСС1ЧАЕЕЯСЕ 1А. 11 Акдь1 1=1~1 располагает переменные й и 1 в одной и той же ячейке памяти. Первая процедура присваивания Ес переменной л) обращается к этой ячейке как к содержащей вещественное число и добавляет к нему единицу. Вторая процедура присваивания (с переменной 1) обращается к той жс ячейке как к содержащей уже целое число и также добавляет к нему единицу. Поскольку представления целых и вещественных чисел в большинстве компьютеров различны, то результат может быть совершенно непредсказуемым.

Поэтому сохранение этой конструкции языка нежелательно. В связи с вышесказанным нелавцо сформировались такие понятия, как устаревшая и не рекомендуемая возможности. Возможность называется устпреешей, если она является кандидатом на исключение из языка уже в следующей версии стандарта. Такое понятие предупреждает пользователей, что пока еще эта возможность доступна, но в ближайшие 5 — 10 лет она будет изъята нз стандарта языка. Таким образом, пользователи предупреждаются заблаговременно и имеют время переписать все коды, содержащие эту конструкцию. Пе рекожендуеиая возможность в очередном стандарте может стать устаревшей.

Таким образом, она может быть исключена из языка после двух его последу1огцих пересмотров. В этом случае предупредительный период составляет 10-20 лет. В новых программах такие возможности уже не следует использовать. Поскольку расширения языка допускаются и в согласующихся со стандартом компиляторах (до тех пор, пока опи правильно компилируют согласуюгциеся со стандартом программы), многие компиляторы пмшот дополнения, которые с точки зрения поставщика программного обеспечения являются полезными п способствуют распространению программного продукта.

Благодаря такому подходу появляются нововведения и развивается язык. Конечно, в академической среде большинство программистов не связывают себя никакими стандартами, а разрабатывают свои собственные продукты, в которых языки модифицированы и расширены подходяпгим для них образом. Это создает плодородную почву для испытания новых языковых концепций, а некоторые наиболее удачные идеи попадают в коммерческие языки и компиляторы. 1.3.4. Интернационализация В связи с глобализацией торговли и появлением Всемирной паутины Ч~ЪЧЪ' программирование становится все более и более глобальной деятельностью, и поэто- 52 Глава 1.

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

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

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