Главная » Просмотр файлов » Н. Джехани - Язык Ада (1988)

Н. Джехани - Язык Ада (1988) (1160771), страница 45

Файл №1160771 Н. Джехани - Язык Ада (1988) (Н. Джехани - Язык Ада (1988)) 45 страницаН. Джехани - Язык Ада (1988) (1160771) страница 452019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Программирование в широком смысле [(зЕВ76) определяет возможности написания модулей, сокрытие информации, управление видимостью объектов и установление зависимости между модулями. В языке Ада имеются многочисленные возможносз'и, облегчающие разработку и управление большими программными комплексами. Названные возможности обеспечивают как программирование в широком, так и программирование в узком смысле. Например, в языке Ада компоненты программы (такие как описания и тела подпрограмм и пакетов, а также тела задач) могут компилироваться раздельно, и, следовательно, программы могут разрабатываться как сверху вниз, так и снизу вверх.

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

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

Компоненты программы нельзя компилировать самостоятельно, что препятствует разработке больших программ путем проектирования ее компонент, компиляции, тестирования и сборки в одну резуль- и Независимая компиляция является одной из пРичин успеха языка программирования Фортран. 225 Сг кг и сгввлеиия и вммы н в евьнвя ксмлиля ня тируюшую программу. Другой важный недостаток состоит в том, что невозможно создавать библиотеки предварительно компилированных программ ", Независимая компиляция практически необходима, но отсутствие согласованных проверок является для нее серьезной проблемой.

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

Компиляция и библиотечные модули 110.Ц Программа на языке Ада может обрабатываться компилятором за один шаг, когда весь ее текст передается на компиляцию, либо по частям, когда компоненты компилируются раздельно. Компилируемые модули — это компоненты программ, содержащие контекстуальную информацию, которые можно компилировать раздельно. Компилируемые модули имеют форму: контекст библиотечный модуль!контекст вторичный модуль где библиотечный модуль — это описание подпрограммы ! описание пакета ! описание настройки ! конкрепшзация настройки !тело подпрограммы а вторичный модуль — это тело библиотечного модуля ! субмодуль а тело библиотечного модуля — это тело подпрограммы!тело пакета Субмодуль — это тело подпрограммы, пакета или задачи, описанное в другом компилируемом модуле вместе со следом тела.

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

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

Глава у 7.1.3. Порядок компиляции [10.31 Компилируемые модули могут компилироваться в любом порядке, подчиняющемся следующим ограничениям, которые накладываются для того, чтобы можно было проверить соответствие между модулями и сгенерированным кодом: 1. Спецификации подпрограмм или пакетов должны компилироваться раньше их тел (спецификации подпрограмм, не являющихся настраиваемыми, могут опускаться — тела подпрограмм могут выступать в качестве своего собственного описания).

2. Компилируемый модуль С может компилироваться только после компиляции всех компилируемых модулей (по крайней мере после их описаний), используемых в нем. Эти компилируемые модули определяются спецификатором зг11й в контексте С. 3. Субмодуль нельзя компилировать до компиляции модулей, содержащих его след тела. 7.1.4. Перекомпиляция В случае модификации или перекомпиляции отдельных компилируемых модулей всю программу можно не перекомпилировать. !. Перекомпиляция компилируемого модуля, содержащего описания, требует перекомпиляции всех компилируемых модулей, которые используют этот компи-' лируемый модуль, т.е.

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

Разработка программ, отражающих структуру задачи, т.е. структурное программированиа делает программы удобочитаемыми, понятными; их легко проверять и модифицировать [ОАН72[. Во многих языках программирования (из-за отсутствия возможностей) не всегда можно точно отразить структуру задачи. Язык программирования Ада в отличие от них обладает некоторыми средствами для сохранения (частичного) этой структуры. Эти средства поддерживают как нисходящую, так и восходящую разработку программ. Восходящая раэрабошка программ — это составление программы из уже построенных и оттестированных компонент. Такой подход приемлем для создания удобных программных средств [КЕй7б) и библиотек программ.

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

Язык Ада подлерживает нисходяшую разработку с некоторыми ограничениями на использование следов тела. Тела подпрограмм пакетов и задач на высшем уровне компиляции могут компилироваться раздельно как субмодули, если указать для них следы тела. Следы тела имеют следуюшую форму: спениЯикаиия подпрограммы (в зерага(е; ~ раейайе Ьоау иденти(дикатор гв верага$е; ~ гавй Ьооу Ыепббег иденти(дикатор гв верагаге; Тела, соответствующие следам, компилируются как субмодули. Они имеют форму вевагаге (имя родительского модуля) тело Каждому телу, компилируемому как субмодуль, должно предшествовать имя родительского компилируемого модуля (имя родительского-модуля), в котором задан его след.

Если родительский модуль сам является субмодулем, то его имя должно включать имя его предка, и т.д. Имя должно' задаваться расширенным именем н начинаться с имени первого предка, не являюшегося субмодулем. Любой видимый в следе тела объект является видимым в соответствующем субмодуле вместе с любым дополнительным контекстом, специфицированным в субмодуле. 7.2.1. Разработка больших программ Обычно большие программы разрабатываются с использованием методов нисходящего и восходящего программирования. НисходяШий подход позволяет программисту начать с обзора проблемы в целом, в то время как восходящий метод предоставляет программисту возможности попытаться использовать уже имеющиеся в библиотеках системы, инструменты (программы).

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

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

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

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