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

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

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

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

Проблемы разработки языка му важно, чтобы языки программирования могли легко использоваться в разных странах. Соответственно появляется необходимость, чтобы компьютеры могли «изъясняться» на разных языках. Например, для представления различных символов обычно недостаточно 8-битного байта, в котором можно закодировать лишь 256 различных символов. При обсуждении подобных вопросов обычно пользуются термином интернационализация (тпгегпагтопа1иаГтоп)'. Зачастую на способ хранения и обработки данных влияют местные соглашения.

Такие моменты, как коды символов, схема упорядочения, формат даты и времени и другие местные стандарты влияют на вид входных и выходных данных. Некоторые из соответствующих факторов перечислены в работе Мартина 179~. + Схемы упорядочения.

По какой схеме должно происходить упорядочение символов? .0. Сортировка. Позиции нелатинских символов, таких как Л, 1с), р, о и других, не имеют единого определения и могут быть разными в разных странах. Ф. Регистр. Некоторые языки, такие как японский, арабский, иврит и тайский, не имеют понятия о верхнем и нижнем регистрах. -11. Направленность письма. На многих языках читают слева направо, но бывает и по-другому (например, справа налево или сверху вниз), + Формат даты, Формат даты зависит от страны. Так, в Америке принято писать 11/26/02 (26 ноября 2002 г.), в Англии же наоборот — 26/11/02. Во Франции и России пишут 26.11.02, а в Италии — 26-Х1-02 и т.

д, + Формат времени. Формат времени также зависит от страны. В Америке пишут 5АО р. гп., а в Японии и России — 17:40, в Германии зто же время выглядит как 17АО, а во Франции — 17Ь40. + Часовые пояса. Хотя существует стандартное правило изменения местного времени на один час на каждые 15' долготы, на самом деле это скорее общий принцип, нежели реальность.

Обычно часовые пояса различаются на целое количество часов, но некоторые могут различаться на 15 минут или на полчаса. Сдвиги времени (такие как летнее время в Америке и Европе) во всем мире осуществляются неодинаково. Произвести пересчет местного времени во всемирное стандартное время иногда бывает непросто. В южном полушарии переход на летнее время осуществляется противоположно тому, как это происходит в северном полушарии. + Идеографические системы. Письменность некоторых языков основана на большом количестве иероглифов, а не на алфавите, состоящем из небольшого набора символов (например, в японском, китайском и корейском языках). Обычно для представления текста на таких языках требуется 16 бит.

+ Денежные единицы. Представление денежных единиц также зависит от страны (используются, например, такие символы, как 3, Ы, У). Иногда используется термин «проблема Ияс'», поскольку само слово ппгегпацопа11забоп» слишком для ииос (20 символов), и, кроме того, название 1181Ч позволяст избежать споров о том, как писать слово «1пгегпаг1опа11ваг1оп»: чсрез британское «в» или америкаискос «в». 1.4. Среда программирования 53 1.4. Среда программирования Понятие срелы программирования, в которой программа создается и тестируется, наверняка знакомо большинству читателей этой книги, Однако, как правило, среда программирования меньше влияет настроение языка программирования, нежели операционная среда, использующаяся для запуска программ.

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

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

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

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

Объявление типа данных для любой используемой переменной позволяет компилятору определить способ представления каждой внешней переменной в памяти. Тогда ссылка на эту переменную может быть скомпилирована с использованием соответствующей формула доступа (например, правильный сдвиг внутри общего блока). 3. Опрелеление тех внешних типов данных, которые используются для описания локальных переменных внутри подпрограммы. Это позволит компиля- 54 Глава 1. Проблемы разработки языка тору выделить для них память и вычислить формулы доступа для таких локальных переменных.

Чтобы предоставить компилятору информацшо о раздельно скомпилированных подпрограммах, совместно используемых объектах данных и определении типов, язык может: 1) либо требовать, чтобы эта информация объявлялась си~враз внутри подпрограммы (как в языке ГОКТКАХ); 2) либо предписывать конкретный порядок компиляции, то есть перед компиляцией каждой подпрограммы должна производиться компиляция определений всех вызываемых подпрограмм и совместно используемых данных (как в языке Ада и до некоторой степени в Разса1); 3) либо требовать при компиляции наличия библиотек, содержащих все соответствующие определения, так чтобы компилятор мог получать их цо мере необходимости (как в языках 1а~ а и С++). Термин «разделъвая компитяция» обычно используется для первого варианта.

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

Варианты 2 и 3 требуют наличия в языке возможности того, чтобы спецификации подпрограмм, типов данных и общего окружения были предоставлены или помещены в библиотеку еще до компиляции подпрограммы. Для этих целей желательно, чтобы язык позволял определять подпрограммы с единственным обязательным заданием раздела спецификаций, а тело подпрограммы (локальные переменные и операторы) могло бы быть опущено.

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

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

Другим аспектом раздельной компиляции, влия|ощим на строение языка, является наличие совместно используемых переменных. Если различные группы разработчиков пишут отдельные части большой программы, обычно бывает трудно гарантировать, что все имена переменных, используемые каждой группой для подпрограмм и общего окружения, будут различными, то есть не произойдет слу- Е4. Среда программирования 55 чайного совпадения имен. Обычным делом при сборке программы в единое целое является обнаружение одинаковых имен в различных подпрограммах или других компонентах программы. Как правило, это приводит к кропотливому и трудоемкому исправлению уже оттестированного кода.

Для избежания этой проблемы в языках применяется три метода. Е Каждое совместно используемое имя (например, в операторе ехСегп языка С) должно быть уникальным. Обеспечение выполнения этого требования входит в обязанности программиста. В начале работы должно быть составлено соглашение об использовании имен, так чтобы каждой группе выделялся свой набор имен для использования в подпрограммах (например, все имена, используемые некоторой группой, должны начинаться с 00). Так, все имена, используемые в стандартных, включаемых директивой 1)1 пс1иде, файлах С, начинаются с символа, поэтому программистам не рекомендуется использовать имена, начинаюшиеся с символа подчеркивания.

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

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

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