Л.Е. Карпов - Системы программирования (1114903), страница 5
Текст из файла (страница 5)
Не требуется от пользователя и знания языка управлениязаданиями операционной системы. Работа в интегрированной среде ведется в терминахописания программного проекта и его характеристик. Пользователю дается удобныйграфический интерфейс, с помощью которого он может определять свои программныепроекты, включать в их состав свои текстовые, ресурсные и библиотечные файлы,18устанавливать параметры запуска отдельных компонентов системы. Интегрированнаясреда автоматически осуществляет запуск необходимых компонентов (фактическисоздавая невидимый программисту командный файл), получает от этих компонентоврезультаты их работы и сообщает пользователю обо всех допущенных им ошибках наразных этапах подготовки программ.Основное преимущество интегрированной среды – в удобстве работы еепользователя. Все свои действия он выполняет непосредственно в окне редактированияисходного текста программы.
Получив сообщение о какой-нибудь ошибке,пользователь, руководствуясь сопутствующими сведениями о месте этой ошибки впрограмме, имеет возможность исправить ее, не прерывая работу в интегрированнойсреде. Дополнительные удобства работы в таком режиме связаны с реальнымобъединением в одном технологическом процессе нескольких компонентов системыпрограммирования – текстовых редакторов, компиляторов, редакторов связей,отладчиков.Естественным следствием внедрения в практику интегрированных системпрограммирования явилось перенесение технологических приемов, использованныхпри их разработке на разработку того программного обеспечения, которая выполняетсяс их помощью.
Программистам стали предоставлять графический пользовательскийинтерфейс, ставший вскоре после своего появления неотъемлемой составной частьюмногих современных операционных систем и графических оболочек. В состав системпрограммирования стали включаться библиотеки, обеспечивающие поддержкуграфического интерфейса. Описание библиотек выполнялось с помощью прикладныхпрограммных интерфейсов, позволявших стандартизовать взаимодействие соперационными системами.Особенную помощь интеграция компонентов системы программированияприобретает при проведении отладки программ. Тесные связи между отдельнымикомпонентами помогают отладчику так представить информацию о ходе выполненияпрограммы, что отладка оказывается значительно более простым мероприятием, чемэто обычно бывает.Большинство систем программирования ориентированы на работу с каким-либоодним языком программирования. Тесная связь с языком позволяет включать в составинтегрированных систем полезные вспомогательные средства, которые способныпроводить анализ текстов программ и находить в них определения объектов данных, ихструктур, классов.
Например, в системе программирования Visual C++ компанииMicrosoft при работе с программой в одном из окон интегрированной системыдемонстрируется полная иерархия классов, относящаяся к активному проекту. Выбравлюбой из элементов иерархии, пользователь сразу видит в другом окне,предназначенном для отображения основного текста программы, тот фрагментпрограммы, где определяется выбранный элемент. При редактировании и отладке этопозволяет легко отыскивать в тексте места определения объектов, проверять способыиспользования объектов на соответствие определениям, отлаживать не толькопроцедуры обработки объектов, но и сами данные и их структуры.Интегрированные среды имеются не только в системах Microsoft Windows дляперсональных компьютеров.
В семействе систем под условным наименованием UNIXуже давно функционирует система оконного пользовательского интерфейса X WindowSystem. В эту систему заложена идея разделения функций отображения информации наэкране по принципу – функции клиента и функции сервера.
Сервер выполняет саму19отрисовку, управляет дисплеем, а клиент выполняет вычисления и связывается ссервером при необходимости отобразить их результаты на экране. Взаимодействиеклиентов и серверов осуществляется на основе сетевых протоколов, что значительнооблегчает работу в многопользовательском и многоэкранном режимах, а такжеповышает уровень безопасности взаимодействия.Многие программные компоненты системы UNIX получили возможностьработать не только в режиме командной строки, но и в интегрированной среде XWindow.
Например, редактор Emacs имеет более удобную и чаще используемуюмодификацию XEmacs. Для интерфейса X Window созданы многочисленныедиспетчеры окон, самым известным из которых является, по-видимому, диспетчерMotif, с помощью которого для работы с окнами интерфейса возникаютдополнительные возможности.В последнее время все большую популярность приобретает расширяемаяинтегрированная среда Eclipse. Это свободно распространяемый пользовательскийинтерфейс, обладающий развитым визуальным редактором, к которому могутподключаться как коммерческие, так и свободно распространяемые модули,реализующие различные функции.Развитием интегрированных систем (сред) программирования являются системыпрограммирования, интегрирующие компоненты, обеспечивающие поддержку наэтапах разработки программ, предшествующих этапу кодирования, то есть на этапах,связанных с проектированием программ.203. Компоненты классической системы программированияСвойства систем программирования определяются не только компиляторами, нои многими другими компонентами этих систем, всей их совокупностью испособностью взаимодействовать друг с другом в процессе подготовки программ.3.1.
Редакторы текстов3.1.1. Виды текстовых редакторовВ соответствии со схемой классической системы программирования можновыделить три начальных элемента процесса создания программы: редактор текстаисходной программы, подсистема автоматизированного проектирования и редакторграфических форм ведения диалога.Текстовый редактор является наиболее частым начальным элементом процессасоздания программы. Он позволяет готовить и вносить изменения в тексты исходныхпрограмм, однако в современных системах программирования его функции стали ещеболее широкими.
Текстовые редакторы стали основой интегрированных средразработки. Известным примером текстового редактора является редактор vi,входящий в состав стандартной системы программирования операционной системыUNIX. Редакторы называются текстовыми, поскольку они предназначены дляредактирования и хранения в архиве любой текстовой информации – от текстовпрограмм до документации по вычислительной системе. Текстовые редакторы делятсяна две категории по видам запуска, они бывают пакетными и диалоговыми.Пакетные редакторы не требуют непосредственного присутствияпрограммиста для своей работы.
Они получают на вход исправляемый текст и пакетноезадание на редактирование, в котором указано, какие фрагменты текста надо из текстаисключить, какие переставить местами, какие фрагменты следует заменить другойинформацией, которая также включена в пакетное задание. Указания могут даваться втерминах номеров строк (заменить строку 15 на текст “…”) или с помощью контекста(перед строкой, в которой найден идентификатор “int” вставить строку сидентификатором “long”).Пакетные редакторы особенно удобны при пакетном формировании несколькихверсий одних и тех же программ, отличающихся некоторыми важными параметрами,которые должны быть учтены непосредственно в тексте программы.
Запуск пакетногоредактора может осуществляться из командной строки или с помощью командногофайла, но в любом случае файл с заданием на редактирование должен бытьподготовлен заранее.Одним из видов контекстного пакетного редактирования являетсямакроподстановка, то есть редактирование текста по найденным в нем шаблонам.Иногда такое редактирование текста встраивается непосредственно в компилятор, чтоимеет некоторые преимущества, связанные с повышением эффективности общегопроцесса обработки текста программы. Процесс макрообработки текстовконцептуально делится на две фазы – первая из них это ввод макроопределений, втораяфаза состоит в обработке макровызовов.
Вид макровызовов и макроопределений такжевносит различия в макропроцессоры. В одних макропроцессорах (более традиционных)макроопределения напоминают определения функций и их формальных параметров, амакровызовы напоминают операции вызова функций с фактическими параметрами.Примерами таких макропроцессоров могут служить препроцессоры, встроенные вкомпиляторы некоторых языков программирования (PL/1, Си, Си++, различные языкиассемблера). Другие макропроцессоры считают макровызовом произвольную строку21текста, соответствующую некоторому заранее определенному шаблону, причемправила описания шаблонов могут достаточно сложными, а сами шаблоны могут бытьпараметризованными.
Тем самым, при отождествлении входной строки с шаблономвозможно не полное совпадение, а совпадение с выделением фактических параметров.Существует большое количество универсальных макропроцессоров илимакрогенераторов. В некоторых разработках они использовались для повышениямобильности программного обеспечения, то есть его переносимости из одногооперационного окружения в другое.Диалоговые редакторы отличаются от пакетных редакторов тем, что для нихготовить задание на редактирование не требуется. Пользователь указывает редактору,какой текст он собирается редактировать, далее непосредственно вводятсяредактирующие приказы.
В результате формируется исправленный текст, которыйможно снова записать в системный архив, использовав прежнее имя файла или задавновое имя, сохранив предыдущий вариант в архиве.Диалоговые редакторы делятся на две категории: строчные и экранныередакторы.При работе со строчными редакторами сначала задают номер строки, котораяподлежит редактированию, а затем выдают редактирующие приказы, которые могутвлиять только на заданную строку. Экранные диалоговые редакторы позволяют видетьна экране сразу несколько строк. Экранные редакторы – это самое удобное средстворедактирования файлов, а строчные обычно применяются в условиях, когда устройствоотображения информации не позволяет одновременно показывать сразу несколькострок текста.Появление экранных редакторов серьезно повлияло на возможности,предоставляемые пользователям при редактировании.