Главная » Все файлы » Просмотр файлов из архивов » Файлы формата DJVU » Лабораторная работа 25 по информатике (Си)

Лабораторная работа 25 по информатике (Си)

DJVU-файл Лабораторная работа 25 по информатике (Си) Информатика (607): Лабораторная работа - 2 семестрЛабораторная работа 25 по информатике (Си): Информатика - DJVU (607) - СтудИзба2015-07-19СтудИзба

Описание файла

DJVU-файл из архива "Лабораторная работа 25 по информатике (Си)", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "информатика" в общих файлах.

Просмотр DJVU-файла онлайн

Распознанный текст из DJVU-файла

Лабо ато ная абота №25 по языкам п ог амму ования: 8 ак льтет 1 с 2 семест ~~флл~~~~~л~л ~дд Автоматизация сборки программ модульной структуры на языке Си с использованием утилиты таКе 1. Краткое описание утилиты звазсе Утилита та~ге предназначена для упрощения сборки (компиляция, редактирование связей, автоллатическая подготовка докуллентации) проектов програлим модульной структуры. Характерными особенностями, позволившими этой достаточно простой утилите стать стандартным средством ведения проектов, является ее переносимость, легкая настраиваемость на конкретные требования и т, д. Утилита алабае очень распространена — ее варианты имеются на всех платформах, где только можно программировать. Например, в состав 1лпих входит ОМ) тле, вместе с М1сгозой Чаша! Яше(1о поставляется утилита птееее фирмы М(сгозой, вместе с 1ВМ Чиша(Аде — нша/ее фирмы 1ВМ.

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

Допустим, есть два модуля, кюкдый из которых представлен двумя файлами: рагс1.с и рагс1.Ь, раг12.с и раг~2.Ь (реализация и интерфейс), в которых содержатся функции йоо1 и Гоо2 соответственно. Модуль основной программы ргоо. с использует обе этих функции. Следовательно, на стадии сборки всех объектных файлов в единый исполняемый модуль редактору связей должен быть указан источник кода для этих подпрограмм. Сценарий компиляции и редактирования связей такой программы может выглядеть следующим образом: сс -с рагг1.с компиляция модуля рагс1.с, содержащего исходный текст для функции Йоо1 компиляция модуля раг~2.с, содержащего исходный текст для функции 1оо2 компиляция основного модуля программы (содержащего точку входа в модульную программу) сс -с рагс2.с сс -с ртов.с сс -о ргоо ргоо.

о рагГ1. о рагс2. о сборка всех модулей в один исполняемый файл ргод Такой подход имеет ряд преимуществ перед обычным вариантом компиляции "в одну строку" командой сс -о ргод ргос1.с рагг1.с рагс2.с. Результатом выполнения приведенных выше команд компиляции является файл рвота. Можно составить схему процесса компиляции: Во-первых, в программных проектах, состоящих из многих файлов, при изменении только одного из них нет нужды компилировать все остальные (необходимо перекомпилировать только измененные файлы и отредактировать связи, что может существенно сократить время сборки исполняемого файла). Во-вторых, раздельная компиляция позволяет в многоязычных системах программирования создавать программы, отдельные части которых написаны на разных языках программирования.

Зависимости этапа редаятирования связей (Ы) Зависимости этапа компиляции (сс -с) раГ('),с )— — раГ('), о 'ф раГ(1.)з рГоо.с 1 — — — — — — — ~ рГоо.о 'ж' "' раГ(2. Г) 1 раГ(2.с , 'раГ(2.о Для автоматизации процесса сборки выполняемого файла утилитой тайе необходимо составить граф зависимостей для Ха)гезий 1 е и описать для каждого перехода правила получения «целого по частям» (например„ргод по объектным файлам). Каждая такая стрелка представляется в )ча)геГ12е таким образом: цель: Файл 1 .

. . файл 1» команда 1 команда п1 В первой строке записывается вершина графа и список вершин, от которых она зависит. Во всех последующих строках, которые должны начинаться знаком табуляции, описываются команды, которые будут поданы интерпретатору команд для того, что бы получить в итоге файл-цель. Таким образом, можно привести примерный вид та)геГ12е (та)геГ11е или г1а)геГз1е — стандартные имена файла с правилами для утилиты та1е) для используемого примера: Й та).е111е 1 ргос: ргос.о рагГ1.о рагГ2.о сс -о ргос ргос.о рагГ1.о рагГ2.о ргод.о: ргод.с рагс1.)з раг12.)з сс -с ргос1.с рагГ1.о: рагГ1.с рагг1.)з сс -с рагс1.с рагТ2.о: рагс2.с раг~2.)т сс -с рагГ2.с Все, что следует в строке этого та)гейз'1е за знаком 1), считается комментарием„и программой та)ге игнорируется. Теперь, для того, чтобы по исходным файлам программы создать исполняемый файл ргос, достаточно запустить утилиту та)ге соответствующей командой: Ьав)тЗ та)~е Мы будем говорить, что файл А зависигп от файла В (или нескольких файлов), если файл В необходим для успешного создания файла А с помощью некоторой последовательности команд.

В данном примере рагГ1.о зависит от рагГ1.с, а ргод зависит от рагГ1.о, рагГ2.о и ргод.о, что и отражено на приведенной выше схеме компиляции, которую также можно считать диаграммой зависимости. Кроме того, интерфейсные функции и константы вынесены в заголовочные файлы раг(1.Ь н раГ(2.Ь, которые включаются в текст соответствующих Си-файлов при помощи препроцессора и, следовательно, объектные файлы зависят также и от них.

Й та!.еГ11е 2 СС = 9сс (! имя компилятора (сс или ссс) Е!Э = асс !! имя редактора связей (сс или асс: редактор связей вызывается через й драйвер системы программирования, когда на вход СП подаются объектные Й модули) ССГЬАСЯ = — д †!йа11 — рес!апгфс †в!=с99 6 флаги компилятора ( — д — — включить режим отладочной компиляции) 6 флаги связывающего загрузчика (не указаны!) Ь!ЗГЬАБЯ ргод: ртов.о рагс1.о рагс2.о Я(ЕП) Я(т.!9ГЕАСЯ) -о рго9.о: рсоа.с рагГ1.!з рагг2 Я (СС) Я (ССГ1АСЯ) — с рагТ1.о: рагс1.с раг11.!з Я(СС) Я(ССГЕАСЯ) -с рагг2.о: рагс2.с рагг2.!з Я(СС) Я(ССГЕАСЯ) -с рагс1.о: рагс2.Л рсоа рсоа.о раг11.о раг12.о ргос.с раг11.с рагс2.с Последняя строка отражает зависимость первого модуля от интерфейса второго. Вместо Я (пате) утилита та!~е подставит значение переменной с именем пате, как оно было определено ранее в файле, через командную строку или через т.

н. переменные окружения. Теперь одним изменением в !Ча1сеГз2е можно включить или исключить режим отладки в исполняемых и объектных файлах (установкой нужной комбинации флагов компилятора, т. е. переменной СС ГЕАСЯ). Возможно задание нескольких целей, не зависящих друг от друга, и указание конкретной цели при вызове утилиты тайе. Например, если к предыдущему примеру добавить строки: с1еап гт -1 *.о ргос то тем самым будет добавлено еще одно дерево исполнения команд. При выполнении команды глаКе с1еап будут удалены все объектные файлы и исполняемый файл ргод в текущем каталоге. Если какая-то строка должна быть перенесена (из соображений читабельности), то для переноса используется знак ' ~ ', причем за ним должен сразу же следовать конец строки: Г1ЕЕЯ раг11.с рагс2.с ргод.с Нетрудно заметить, что команды компиляции для раг~1.

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

После этого будут выполнены в указанном порядке все команды, которые необходимы для создания файла рсоа. Преимуществом использовании этой утилиты является также то, что если после создания исполняемого файла изменить, например. исходный текст подпрограммы Гоо2 в модуле рагТ2. с, то при компиляции ргод утилита та!~е сама определит, какие файлы необходимо перекомпилировать (все, зависимые от измененных!) и автоматически выполнит только те команды, которые затрагивают измененные файлы„т. е. в данном случае компиляцию модуля рагс 2 . с и создание исполняемого файла.

Другим важным преимуществом та1е является возможность настройки с помощью переменных (макросов). парамегризующих Ма3сеЕт1е: флаги компилятора включить режим ЬРГРАСЯ = Й флаги связывающего загрузчика ОВЮ = ртов.о раг11.о рагГ2.о .ЯРГГТХЕЯ: .с .о Й варианты суффиксов ртов: Я(ОВ,Т) Я(ВР) Я(РРГРЛОЯ) -о ртов Я[ОВ,т) ртов.о: ртов.с рагс1.й рагТ2.)з .с.о Й компиляция исходных текстов Си Я(СС) Я(СОГРЕЯ) — с Я< -о ЯВ рагГ1.с: рагГ1.)з раг12.с: раг12.)з с1еап: гщ -Г *.о ртов Командной .

ЯРГГ1ХЕЯ задаются возможные варианты используемых далее суффиксов, Строка для .с .о аналогична приведенной ранее для конкретных файлов, за исключением того, что заранее неизвестно. какие будут имена у компилируемых файлов. Пара знаков Я< обеспечивают подстановку названия файла с исходным текстом для каждого вызова этого правила. С<' — это переменная. в которой содержится имя первого файла во время применения правила с суффиксами). Комбинация 3ф, обеспечивает подстановку названия выходного файла. 2.

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