И.А. Волкова, И.Г. Головин, Л.Е. Карпов - Системы программирования, страница 4
Описание файла
PDF-файл из архива "И.А. Волкова, И.Г. Головин, Л.Е. Карпов - Системы программирования", который расположен в категории "". Всё это находится в предмете "практика расчётов на пэвм" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 4 страницы из PDF
Лучше иметь синтаксическиориентированные текстовые редакторы, которые обеспечивают подсветку служебных слов, обеспечивают работу с функциональной клавиатурой, позволяющейвводить сложные языковые конструкции одним нажатием на клавишу, проверяют баланс скобок.Последнее важно не только при вводе сложных арифметических выражений,но и при работе с языками программирования, построенными на длинныхконструкциях со сбалансированными скобками, например, с языком LISP.Трансляторы (используются также на других этапах разработки, например,при тестировании и отладке).Средства компоновки больших программ, которые на основе отдельнотранслируемых фрагментов (модулей) и компонентов библиотек создаютисполняемые программы (редакторы связей).Некоторое время назад в состав систем программирования включалисьзагрузчики – программы, обеспечивающие настройку программ на адреса в памятивычислительной машины и размещение программ в этой памяти, однако, сейчасзагрузчики из компонентов систем программирования превратились в компонентыоперационных систем.14Этап программирования во многом сформировал современное представление отом, какие системы программирования нужны для создания высококачественногопрограммного обеспечения.
При этом развитие систем программирования приводит ктому, что в их состав включается все большее количество компонентов, имеющихотношение не только (и не столько) непосредственно к этапу программирования, но и кдругим этапам.Этап компоновки есть этап формирования полной программы илипрограммного комплекса из некоторого количества автономно запрограммированных,автономно отлаженных и автономно протестированных компонентов.
Для компоновкипрограмм используется часть инструментария, применяемого также на этапепрограммирования (прежде всего, редакторы связей). Кроме того, для использования наэтом этапе создается специальный инструментарий, в котором особую важность имеютсредства контроля версий программных компонентов.Важную роль в получении высококачественного программного продукта играютсредства, применяемые на этапах отладки и тестирования программ.
В состав этихсредств входят•••••Отладчики, как очень простые, уже давно включенные в состав системпрограммирования, так и более сложные, позволяющие устанавливать точкиостанова, просматривать значения переменных, проводить прямую иобратную трассировку хода выполнения программ. Наиболее удобныеотладчики работают в терминах классов, объектов, переменных, используясемантику и терминологию пользователей.Генераторы тестов, позволяющие формировать входные данные длятрансляторов. Генераторы тестов также способны генерировать тесты,содержащие ошибочные конструкции, что позволяет проверятьдиагностические средства трансляторов.Средства автоматизации прогонов тестов, позволяющие избежать “ручного”запуска большого количества тестов. В случаях тестирования графическихинтерфейсовполезнысредствазапоминания(ипоследующеговоспроизведения) действий пользователей по нажатию клавиш и открытиюэлементов управления интерфейсом (окон, форм).Средства автоматизации (хотя бы частичной) анализа результатов прогонатестов.
Эти результаты могут быть сложными, поэтому уровеньавтоматизации зависит от тестируемого приложения.Средства анализа уровня тестового покрытия (применяются притестировании программ методом “белого ящика”). Необходимо такжепроверять покрытие условий, решений и т. д.Многие современные системы программирования предоставляют развитыесредства этапа документирования создаваемых программных продуктов, сложностькоторых постоянно возрастает, что, в свою очередь, делает все более важной хорошуюдокументацию. К документации программных продуктов следует относить не толькопользовательскую документацию, предназначенную для фазы использования, но такжетехническую документацию для сопровождения программных продуктов.Выполнение работ на этапах внедрения и тиражирования требуетиспользования средств управления проектами, а также средств управления версиямипрограммных продуктов.152.
Классическая система программированияПрактически невозможно встретить систему программирования, в которойпоследовательно и полно были бы представлены сразу все компоненты,обеспечивающие полноценную поддержку процесса создания программ на всех стадияхи этапах. Чаще всего отсутствуют средства первых этапов – подготовки требований ипроектирования.
Иногда системы программирования строятся без какого-либоинтегрирующего звена. Первые операционные системы могли позволитьпользователям-программистам запускать компоненты систем программированиятолько в диалоге, последовательно, одну за другой, или собирая приказы на запуск этихкомпонентов в одном пакетном задании.Со временем были развиты сервисные средства операционных систем ипоявились командные процессоры, что позволило объединять последовательностьвызовов системных программ в единые командные файлы.
Это упростило работу позапуску компонентов систем и позволило перейти к еще более удобному способуработы–использованиюспециализированныхкомандныхпроцессоров,ориентированных на запуск компонентов систем программирования.Специализированные командные процессоры (координатор make иликомандный интерпретатор shell) представляли собой интерпретаторы, на входкоторым подавались файлы, записанные на особом командном языке.
На этом языкекодировалась вся последовательность действий, необходимых для порождениярезультирующего исполняемого файла. В программе для командного процессора(Makefile) перечислялись все используемые входные (исходные) текстовые файлы,библиотеки программ, все порождаемые объектные файлы (отдельно и независимооткомпилированные исходные файлы), а также параметры запуска отдельныхкомпонентов систем программирования и правила обработки каждого отдельногофайла. Удобны координаторы make тем, что позволяют отслеживать зависимости вбольших наборах файлов, составляющих цельную программу, что упрощает процесссборки проектов.Любая современная система программирования содержит не толькотрансляторы, но и служебные библиотеки процедур, функций, макроопределений,классов, а также средства компоновки программных комплексов из отдельныхсоставляющих – модулейСовременные системы программирования все чаще взаимосвязаны, а иногда иинтегрированы с программными средствами, применяемыми на первых этапахжизненного цикла – от формулирования требований и их анализа доавтоматизированного проектирования программ, включая в свой состав средстваавтоматизированного проектирования (CASE-технологии).
Такие системы имеютследующие характерные особенности:••••поддержка единой базы проектов (репозитория);поддержка визуальных методов проектирования (графическое создание,редактирование, визуализация, печать отчетов по ходу выполненияпроектов);использование унифицированного языка моделирования для фиксациирешений, принятых при проектировании;наличие и интеграция всех средств поддержки для всех этапов жизненногоцикла программных продуктов.162.1. Общая схема работы систем программированияБольшинство систем программирования включают в свой состав ограниченныйнабор компонентов:••••••••••средства интеграции компонентов системы программированияредакторы текстов, в том числе макрогенераторыкомпиляторы и ассемблерыбиблиотекиредакторы связейсредства конфигурирования и управления версиямиотладчики и средства тестированиясредства тестированияпрофилировщикисправочные системы.СистематекстовогоредактированияСистемаграфическогоредактированияИсходнаяпрограммаМакрогенераторКомпиляторКомпоновщик(редакторсвязей)АссемблерБиблиотекиДинамическаязагрузкаОбъектныймодульГотоваяпрограммаОтладчик…Загрузчик(в составеОС)Выполнение2.2.
Интегрированная среда разработкиОсновной тенденций развития систем программирования является тенденцияинтеграции компонентов в единое системное окружение. Если первые системыпрограммирования представляли собой простые наборы программ, объединенныетолько общим описанием структур данных, то в настоящее время из прежних системпрограммирования возникли интегрированные среды разработки.17Простейший способ управления сложными последовательностями вызововсистемныхпрограмм,какимиявляютсявызовыкомпонентовсистемпрограммирования, называется режимом работы с командной строкой оператораили операционной системы:g++ -c -S -da -dp -dA b.cppРаботая в этом режиме, программист подает операционной системе задания повызову программ, указывая место размещения вызываемой программы, ее имя ипараметры конкретного вызова. Существенным недостатком работы в таком режимеявляется необходимость постоянного присутствия квалифицированного пользователясистемы на рабочем месте для постоянного запуска следующих и следующихкомпонентов.Впоискахпреодоленияэтогонедостаткаразработчикисистемпрограммирования предложили концепцию командных файлов.В таких файлах заранее записывались директивы операционной системы,необходимые для активации всего тракта обработки программ – от запускакомпилятора до записи в архив системы готовой программы или передачи ее наисполнение, как в таком файле, содержащем директивы операционной системы MSDOS:@echo off@if exist t40.* del t40.*@if exist kopu.?n del kopu.?n@if exist kopu.?n0 del kopu.?n0@for %%f in (*.a40) do ..\..\exe\ac40 -d-l –i%%f@..\..\exe\rsv -it40.o40 -zt40.r40@..\..\exe\nstr -k0x0 -p0x0 -it40.r40 -zt40.n40@..\..\exe\Cpu -x0x86 -d-s0xfe000 -b0x4005ab -e0x400900 -zt40.n40 -k0x0 -f0x0 -ot40.se0@del t40.?40Особенно эффективна работа в режиме командного файла при выполнениимассовых подготовок версий одной программы, отличающихся каким-либо важнымпараметром, например, паролем, блокирующим несанкционированный запуск готовойпрограммы.