Green-sell.info

Новые технологии
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Редактор связей системы программирования

Редактор связей

Редактор связей [1] выполняет две функции. Во-первых, как можно заключить по его названию, он комбинирует (компонует, редактирует) различные объектные файлы. Вторая его функция — разрешать адреса вызовов и инструкций загрузки, найденных в редактируемых объектных файлах. Чтобы понять принцип работы редактора связей, рассмотрим подробнее процесс раздельной компиляции.

Раздельная компиляция

Раздельная компиляция — это возможность, позволяющая разбить программу на несколько файлов, скомпилировать каждый из этих файлов отдельно, а потом скомпоновать [2] их, чтобы в конечном итоге создать исполняемый файл [3] . Результатом работы компилятора является объектный файл, а результатом работы редактора связей — исполняемый файл. Редактор связей физически связывает файлы, внесенные в список компоновки, в один программный файл и разрешает внешние ссылки. Внешняя ссылка создается каждый раз, когда программа из одного файла ссылается на код из другого файла. Это происходит при вызове функции и при ссылке на глобальную переменную. Например, при компоновке двух приведенных ниже файлов, должна быть разрешена ссылка в файле 2 на идентификатор count , объявленный в файле 1. Редактор связей сообщает программе из файла 2, где найти count .

Аналогично, редактор связей укажет файлу 1, где находится функция display() , чтобы можно было ее вызвать.

При генерации объектного кода функции display() , компилятор подставляет в негo вместо адреса идентификатора count «заполнитель», т.е. ссылку на внешнее имя, потому что он не располагает информацией о том, где находится count . Нечто подобное происходит при компиляции main() . Адрес функции display() не известен, поэтому вместо него используется «заполнитель», т.е. ссылка на внешнюю программу. При компоновке этих двух файлов содержащиеся в них внешние ссылки заменяются адресами соответствующих элементов. Являются ли эти адреса абсолютными или переместимыми, — зависит от среды [4] .

Переместимые коды и абсолютные коды

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

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

Редактирование связей с оверлеями

Хотя в наше время эта возможность применяется редко, следует отметить, что компиляторы С некоторых вычислительных сред в дополнение к обычным компоновщикам предоставляют компоновщики оверлеев. Компоновщик оверлеев работает так же как и обычный, но он также может создавать оверлеи [6] . Оверлей — это фрагмент объектного [7] кода, который хранится в файле на диске и загружается для работы только по мере необходимости. Место в памяти, которое отводится для загрузки оверлеев, называется оверлейной областью памяти. Оверлеи позволяют создавать и запускать программы, которые занимали бы большую область памяти, чем имеющаяся в наличии, потому что в каждый момент времени в памяти находится только та часть программы, которая нужна.

Чтобы понять, как работают оверлеи, представим, что имеется программа, состоящая из семи объектных файлов, которые называются F1, F2, . F7. Допустим, имеющейся свободной памяти недостаточно для загрузки программы, скомпонованной обычным образом из всех объектных файлов. Есть возможность скомпоновать только первые пять файлов, а при большем количестве наступит переполнение памяти. Выйти из подобной ситуации можно, дав компоновщику команду создать оверлеи из файлов F5, F6 и F7. При каждом вызове функции, которая содержится в одном из этих, файлов, администратор оверлейной загрузки (программа, предоставляемая компоновщиком или редактором связей) находит необходимый файл и помещает его в оверлейную область памяти, создавая условия для работы программы. Коды, которые получились при компиляции файлов F1 — F4, остаются резидентными. Данная схема проиллюстрирована на рис. 12.1.

Рис.12.1 Программа с оверлеями загруженными в память.

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

Например, если приложение обрабатывает список рассылки, то имеет смысл поместить все подпрограммы сортировки в один оверлей, подпрограммы печати — в другой и т.д.

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

Связывание с динамически подсоединяемыми библиотеками (DLL)

Операционная система Windows предоставляет другой вид связывания, так называемое динамическое связывание. Динамическое связывание — это процесс, при котором объектный код функции остается в отдельном файле на диске до тех пор, пока не запустится использующая его программа. При запуске такой программы динамически загружаются затребованные, связанные с ней функции. Динамически связанный функции помещаются в специальный тип библиотек, которые называются динамически подсоединяемыми библиотеками (DLL — Dynamic-Link Library).

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

Стандартная библиотека С не содержится в динамически подсоединяемой библиотеке, но многие другие типы функций там есть. Например, при написании приложений для Windows, в DLL хранится полный набор функций программного интерфейса приложений (API — Application Program Interface). Нужно отметить, что для программы, написанной на языке С, обычно не имеет значения, хранятся ли библиотечные функции в DLL или в обычном файле библиотек.

[1] Иногда называется также компоновщиком. Впрочем, компоновщиками обычно называют программы, обладающие несколько меньшими возможностями, чем развитые редакторы связей.

[2] Этот процесс называется редактированием связей.

[3] Называется также загрузочным модулем.

[4] Редакторы связей обычно располагают широким набором возможностей, и при необходимости пользователь может указать необходимые параметры.

[5] Называется также программой в абсолютных адресах.

[6] Создание оверлейных программ — стандартная функция для редакторов связей. Кроме того редакторы связей обычно могут создавать даже загрузочные модули, загружаемые «вразброс», т.е. в несмежные участки памяти. Все это имеет огромное значение для систем, в которых отсутствует виртуальная память. Но в системах с виртуальной памятью эти возможности часто выглядят как ненужные излишества.

[7] Согласно оригиналу. Все же точнее часть загрузочного модуля. Содержание | >>

Урок 15
Системное программное обеспечение. Системы программирования
§40. Системное программное обеспечение. §41. Системы программирования

Содержание урока

§40. Системное программное обеспечение
§41. Системы программирования

Состав системы программирования

§41. Системы программирования

Состав системы программирования

В состав системы программирования обычно входят:

транслятор;
компоновщик (редактор связей, сборщик, англ, linker) — программа, которая собирает разные части (модули) создаваемой программы и функции из стандартных библиотек в единый исполняемый файл. На рисунке 6.16 показано, как собирается программа на языке Си, состоящая из двух модулей (исходные файлы qq.c и qql.c).

Рис. 6.16

отладчик (англ, debugger 1 ) — программа для поиска ошибок в других программах, позволяющая:
— выполнять программу в пошаговом режиме (по одной строке);
— выполнять программу до строки, где установлен курсор; устанавливать точки останова (англ, breakpoints);
— просматривать и изменять значения переменных в памяти;

Читать еще:  Что такое лексема в программировании

1 Согласно одной из версий, это название связано с жучком, который попал между контактов реле компьютера Mark II в 1947 г. Дословно: debug — «удаление жучков».

профилировщик (англ, profiler) — программа, позволяющая оценить время работы каждой процедуры и функции («профиль» времени выполнения программы); используется для того, чтобы выяснить, какую именно процедуру нужно оптимизировать в первую очередь.

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

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

Поэтому библиотеки таких функций хранятся на диске в виде отдельных файлов — динамически подключаемых библиотек, в системе Linux они имеют расширение so (от англ, shared objects — разделяемые объекты), а в Windows — расширение dll (от англ, dynamic-link library — динамически подключаемая библиотека). Когда программа вызывает функцию из такой библиотеки, библиотека загружается в память, и управление передаётся вызванной функции. Несколько программ могут обращаться к одной и той же копии библиотеки в памяти.

Набор стандартных структур данных и функций операционной системы, которые программисты могут использовать в прикладных программах, называется интерфейсом прикладного программирования (англ. API — Application Programming Interface). В ОС Windows применяется Windows API, а в Unix-подобных операционных системах — стандарт POSIX (англ. Portable Operating System Interface for Unix — переносимый интерфейс операционных систем Unix).

Сейчас для разработки программ чаще всего используют интегрированные среды (англ. IDE — Integrated Development Environment). В такую оболочку обычно входит текстовый редактор для набора текста программ, транслятор, компоновщик, отладчик и профилировщик.

Многие современные интегрированные среды позволяют строить интерфейс программы (расположение элементов в окне) с помощью мыши. Они называются средами быстрой разработки приложений (англ. RAD — Rapid Application Development) или средами визуального программирования. На рисунке 6.17 показано окно RAD-среды Lazarus для программирования на объектной версии языка Паскаль.

Среди профессиональных RAD-сред нужно в первую очередь назвать Microsoft Visual Studio (msdn.microsoft.com/vstudio). Её профессиональная версия — коммерческая, но все желающие могут бесплатно скачать и использовать ограниченную версию (Express) для учебных целей.

Большой популярностью пользуются также среды Dev-C++ (wxdsgn.sourceforge.net) и Delphi (embarcadero.com). Кросс-платформенная среда Code::Blocks (www.codeblocks.org) распространяется бесплатно, существуют версии для Windows, Mac OS и Linux.

Рис. 6.17

Следующая страница Вопросы и задания

Cкачать материалы урока

Редакторы связей

Редактор связей – системная обрабатывающая программа, редактирующая и объединяющая объектные модули, полученные в результате работы транслятора, в единые загрузочные, готовые к выполнению программные модули.

Загрузочный модуль может быть помещен ОС в основную память и выполнен. Загрузочный модуль компонуется из одной или нескольких программных секций – перемещаемых частей программы.

Загрузчики.

Загрузчик –системная обрабатывающая программа, объединяющая основные функции редактора связей и программы выборки в одном пункте задания. Загрузчик помещает находящиеся в его входном наборе данных объектные и загрузочные модули в оперативную память, объединяет их в единую программу, корректирует перемещаемые адресные константы с учетом фактического адреса загрузки и передает управление в точку входа созданной программы.

2. Прикладное программное обеспечение – помогает конечным пользователям в выполнении различных функций. Специализированные комплексы программ называют пакетами прикладных программ.

Некоторое из ППО носит более общую природу и разрабатываются, а затем продаются и покупаются как пакет.

Пакеты можно разделить на два больших класса: интегрированные (или полносвязанные) пакеты и проблемно-ориентированные пакеты.

Интегрированные пакеты программ составляют немногочисленную группу программных продуктов.

Основное свойство: стандартный пользовательский и программный интерфейс к каждой компонентой (программой) пакета; легкий перенос данных между его компонентами.

Современный интегрированный пакет включает:

— систему управления базами данных;

— средства работы с графикой;

Типичным примером интегрированного пакета прикладных программ является пакет Microsoft Office, работающий в среде Windows и включающий следующие компоненты:

— текстовый процессор – Microsoft Word;

— электронные таблицы – Microsoft Excel;

— средства презентаций – Microsoft Power Point;

— систему управления базами данных – Microsoft Access;

— средства работы с графикой- Microsoft Photo Editor;

— телекоммуникационные средства – Microsoft Outlook.

Значительная часть технических задач связана с применением компьютеров в качестве гибкого устройства управления оборудованием и в качестве устройства для контроля состояния аппаратуры и исследования процессов. При этом компьютер становится необъемлемой частью прибора, станка, управляющей системы и т.д.

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

— изменение параметров сигналов;

— предварительная обработка и фильтрация;

— спектральных анализ и идентификация процессов;

— классификация, статистических анализ;

Пример. Система автоматизированной разработки чертежей – AutoCAD.

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

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

Системы программирования (мы уже упоминали о них во введении) — это комплексы программ и прочих средств, предназначенных каждый для разработки и эк­сплуатации программ на конкретном языке программи­рования для конкретного вида ЭВМ (ПЭВМ).

Система программирования обычно включает неко­торую версию языка программирования, транслятор про­грамм, представленный на этом языке, и т. д.

Далее в пособии будут рассматриваться подобные сис­темы — QBASIC и FOXPRO.

С каждой системой программирования связан неко­торый язык программирования, поэтому скажем несколь­ко слов о языках.

Язык программирования — это инструмент для со­здания компьютерных программ. Из большого количес­тва языков можно выделить три, наиболее распростра­ненных в настоящее время:

— изначально профессиональный язык СИ (С), ис­пользуемый в первую очередь для разработки сис­темных программ;

— язык ПАСКАЛЬ (PASCAL), широко применяемый для разработки прикладных программ;

— язык для начинающих программистов — БЕЙСИК (BASIC).

Отладчик позволяет управлять процессом исполнения программы, являясь тем самым инструментом для поиска и исправления ошибок в программе. Базовый набор функция отладчика включает: пошаговое выполнение программы, остановка в заранее определенных точках, возможность остановки в некотором месте программы при выполнении некоторого условия; изображение и изменение значений переменных.

Язык ассемблера относится к классу машинно-ориентированных языков. Машинно-ориентированным языком называется язык программирования, отражающий структуры архитектуре компьютера, а соответственно, уровень абстракции программы на ассемблере соответствует архитектуре компьютера. Каждой команде машинно-ориентированного языка соответствует команда компьютера.

Язык ассемблера применяется в системном программировании. Ассемблер позволяет разрабатывать наиболее эффективные программы, посколку наиболее полно использует имеющиеся технические возможности компьютера.

4. Прочие виды программ.

Обучающие и учебные программы

После появления персональных ЭВМ в обществе поя­вилась идея создания электронной школы, где роль учи­теля будет играть ЭВМ, оснащенная обучающими и кон­тролирующими программами.

Читать еще:  Объектом объектно ориентированного программирования называется

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

Однако опыт использования персональных ЭВМ в школе показал, что какими бы хорошими и качествен­ными программами ни оснащался учебный процесс, уча­щиеся, проработав длительное время с компьютером, без учителя, с большим удовольствием шли на уроки с учи­телем. Поэтому в настоящее время обучающие програм­мы используются только как дополнение к обычному «живому» учебному процессу или для самообразования.

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

Следует сказать, что сейчас уже заметно ощущается вредное влияние подобных игр. Многие игры имеют на­столько богатое, красочное оформление, в них настоль­ко силен «эффект присутствия», что их притягательная сила заставляет массу молодых людей проводить долгие часы за компьютером, в ущерб своему здоровью, учебе, умственному (да и физическому) развитию. Даже появи­лось выражение — «раньше люди изобретали, чтобы эко­номить время, а затем изобрели компьютерные игры».

Мультимедиа — это способ использования ПЭВМ с применением всех доступных средств: стереозвука, го­лосового сопровождения, видеоизображения, мультипли­кации.

Иначе говоря, мультимедиа — средство объединения цифровой и текстовой информации ЭВМ со звуковыми сигналами и видеосигналами, которые могут как воспро­изводиться, так и обрабатываться под управлением ПЭВМ.

Мультимедийный компьютер включает в себя звуко­вую стереоплату, плату для работы с видеомагнитофо­ном или видеокамерой, дисковод для работы с CD-ROM, звуковые стереоколонки, микрофон.

Обычно применение мультимедиа связывают лишь с компьютерными играми, но это неверно. Мультимедиа может использоваться в самых различных сферах дея­тельности.

Навигация по файловой системе.

Удобство навигации, т.е перехода от файла к файлу или от папки к папке часто воспринимают как удобство работы с операционной системой. В операционной системах, имеющих терминальный интерфейс, навигация осуществляется путем ввода команд перехода с диска на диск или из каталога (папки) в каталог (папку). Из-за неудобства такой навигации, широкое применение нашли специальные программы, называемые файловыми оболочками. Наиболее известной файловой оболочкой для MS-DOS является Norton Commander.

В операционной системе Windows навигация по файловой системе осуществляется с помощью программы Explorer (Проводник).

Редактор связей

Компоновщик (также реда́ктор свя́зей, линкер — от англ. link editor, linker ) — программа, которая производит компоновку — принимает на вход один или несколько объектных модулей и собирает по ним исполнимый модуль.

Для связывания модулей, компоновщик использует таблицы имён, созданные компилятором в каждом из объектных модулей. Такие имена могут быть двух типов:

  • Определённые или экспортируемые имена — функции и переменные, определённые в данном модуле и предоставляемые для использования другим модулям
  • Неопределённые или импортируемые имена — функции и переменные, на которые ссылается модуль, но не определяет их внутри себя

Работа компоновщика заключается в том, чтобы в каждом модуле разрешить ссылки на неопределённые имена. Для каждого импортируемого имени находится его определение в других модулях, упоминание имени заменяется на его адрес.

См. также

Wikimedia Foundation . 2010 .

Смотреть что такое «Редактор связей» в других словарях:

редактор связей — Программа, предназначенная для создания загрузочных модулей на основании одного или нескольких объектных модулей или загрузочных модулей путем разрешения перекрестных ссылок между модулями и, при необходимости, настройки адресов. [ГОСТ 19781 90]… … Справочник технического переводчика

редактор связей — saitų redaktorius statusas T sritis automatika atitikmenys: angl. binder; linkage editor; linker vok. Binder, m; Binderprogramm, n rus. редактор связей, m pranc. éditeur de liens, m; linker, m … Automatikos terminų žodynas

Редактор связей — 44. Редактор связей Linkage editor Linker Программа, предназначенная для создания загрузочных модулей на основании одного или нескольких объектных модулей или загрузочных модулей путем разрешения перекрестных ссылок между модулями и, при… … Словарь-справочник терминов нормативно-технической документации

редактор — 3.1.3 редактор: Лицо, выполняющее проверку стилистики, языка и оформления документации. Примечание На практике, как правило, эти функции выполняют два физических лица один выполняет проверку стилистики и изложения сведений, второй… … Словарь-справочник терминов нормативно-технической документации

Редактор сообщений Фидонет — Запрос «Фидо» перенаправляется сюда. Cм. также другие значения. Фидонет (коротко Фидо; от англ. Fidonet, /ˈfaɪdəʊnɛt/) международная некоммерческая компьютерная сеть, построенная по технологиям «из точки в точку» и «коммутация с запоминанием»[1] … Википедия

РЕАКЦИИ СВЯЗЕЙ — для связей, осуществляемых с помощью к. н. тел (см. СВЯЗИ МЕХАНИЧЕСКИЕ), силы воздействия этих тел на точки механич. системы. В отличие от активных сил, Р. с. явл. величинами заранее неизвестными; они зависят не только от вида связей, но и от… … Физическая энциклопедия

ГОСТ 19781-90: Обеспечение систем обработки информации программное. Термины и определения — Терминология ГОСТ 19781 90: Обеспечение систем обработки информации программное. Термины и определения оригинал документа: 9. Абсолютная программа Non relocatable program Программа на машинном языке, выполнение которой зависит от ее… … Словарь-справочник терминов нормативно-технической документации

МАТЕМАТИЧЕСКОЕ ОБЕСПЕЧЕНИЕ — ЭВМ, программное обеспечение, совокупность программ и программных комплексов, посредством к рых происходит преобразование алгоритмов программы пользователя, записанных на алгоритмич. языках высокого уровня, в последовательность команд, понимаемых … Математическая энциклопедия

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

Clipper — Тип исполнения: компилируемый Появился в: 1985 Автор(ы): Nantucket Corporation Релиз: CA Clipper 5.3b (20.05.1997) Испытал влияние: dBase … Википедия

Среда программирования

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

Мы уже упоминали о существенном вкладе основателя фирмы Borland Ф. Канна в создание интегрированной среды разработки ( IDE – Integrated Development Environment ), появившейся в системе Turbo Pascal . Очень многие его идеи в той или иной мере повторяются во многих системах программирования, созданных и другими разработчиками программных продуктов.

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

Диалоговый режим работы, ставший основным на персональных компьютерах, позволил за один сеанс обнаружить и исправить несколько ошибок. Однако на первых ПК для создания полноценных программных продуктов приходилось работать с несколькими автономными системными программами. Сначала запускался текстовый редактор для набора текста исходной программы на соответствующем алгоритмическом языке. Потом неоднократно запускался компилятор для устранения многочисленных синтаксических ошибок. В конечном итоге компилятор переводил исходный модуль в некоторую заготовку на машинном языке (объектный модуль ). Непосредственно выполняться объектный модуль не мог, т.к. для его работы приходилось вызывать другие системные и/или прикладные модули, устанавливать связи между ними по общим переменным, объединять модули в единую программу, настраивать ее по месту расположения в оперативной памяти. Этим занимались две автономные утилиты – редактор связей (жаргонное название – линковщик, от англ. link ) и загрузчик (жаргонное название – лоадер, от англ. load ). После формирования так называемого загрузочного модуля наступал этап отладки, связанный с поиском ошибок алгоритмического характера. Для этой цели использовалась специальная программа – отладчик (ее название ассоциируется с процессом поимки вредных насекомых – от англ. debug ). К перечисленному набору системных программ добавлялся еще и библиотекарь – утилита , обслуживающая системные и пользовательские библиотеки объектных модулей. Заслуга интегрированной среды заключалась в объединении всех этих компонент в единую систему, которая автоматически переходила к следующему этапу обработки после устранения ошибок, обнаруженных очередной утилитой. Кроме того, перед глазами пользователя всегда находился текст исходной программы, которую в любой момент времени можно было поправить и дополнить. В случае удачи (из программы исключены все синтаксические и семантические ошибки) запуск программы из интегрированной среды сводился к выполнению единственной команды Run (от англ. – Пуск).

Читать еще:  Традиционные средства программирования

2.1. Интегрированная среда Borland C++, ver 3.1

Система программирования Borland C++ ( ver . 3.1) была разработана фирмой Borland в 1992 году для создания программ под управлением MS- DOS . Поэтому ресурсы, предоставляемые разрабатываемому приложению, подчиняются тем ограничениям, которые действовали в среде MS-DOS . Главные из них – объем оперативной памяти не более 640 Кбайт (за минусом того, что занимают компоненты операционной системы), объем каждого массива не более 64 Кбайт (на самом деле, еще немного меньше), диапазон данных типа int от -32768 до 32767 . Эти ограничения наиболее характерны для так называемых 16-битных приложений. Во время запуска таким приложениям предоставляется полный экран дисплея, работающего в текстовом режиме.

Система BC 3.1 может быть запущена и из под Windows , но указанные ограничения для создаваемого приложения остаются в силе. После старта BC 3.1 в среде Windows , на экране появляется окно интегрированной среды, представленное на рис. 2.1.

В верхней строке располагаются названия пунктов главного меню , краткое назначение которых таково:

  • File – общение с файловой подсистемой;
  • Edit – ввод и редактирование исходной программы;
  • Search – поиск в тексте исходной программы;
  • Run – запуск программы в автоматическом или пошаговом режиме;
  • Compile – компиляция исходной программы;
  • Debug – отладка программы;
  • Project – управление проектом сборки программы из нескольких модулей;
  • Options – настройка параметров интегрированной среды;
  • Window – управление дополнительными окнами системы программирования;
  • Help – обращение к файлам помощи.

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

Команды меню File (рис. 2.2) используются при наборе новой программы ( команда New ), при запоминании в файле на диске набранной или измененной программы (команды Save и Save as ), при вызове ранее сохраненной программы ( команда Open ). Последняя команда этого меню ( Quit ) исполняется при выходе из интегрированной среды.

Вход в меню File происходит либо после щелчка мышью по заголовку File, либо после набора клавишной комбинации Alt+F. Выполнение наиболее употребительных команд также продублировано нажатием одной функциональной клавиши или соответствующей клавишной комбинации. Эквивалентные клавишные команды указаны справа.

Переход к той или иной команде выбранного меню сопровождается появлением в нижней строке подсказки. На рис. 2.2 выделена команда New, а в строке подсказки находится сообщение – «Создание нового файла в новом окне редактирования».

До тех пор, пока при сохранении набранной программы соответствующему дисковому файлу не присвоено индивидуальное имя, вновь набираемая программа выступает под именем NONAMEnn. CPP , т.е. программа «безымянная» (здесь nn – порядковый номер безымянной программы, созданной в течение одного сеанса).

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

Одной из наиболее часто используемых групп команд являются строки меню Run (рис. 2.3). По команде Run производится попытка запуска на выполнение программы, находящейся в текущем окне редактирования. При этом новая программа сначала компилируется, потом редактируются ее связи с другими модулями, затем полученный исполняемый модуль загружается в оперативную память и начинает выполняться. Если текущая программа ранее компилировалась и на диске существует соответствующий исполняемый модуль , то повторное выполнение начальных этапов не происходит. Любые ошибки, обнаруженные на стадии компиляции, выдаются в окне сообщений с указанием строки исходной программы, при обработке которой возникла исключительная ситуация . Аналогичные ошибки, обнаруженные редактором связей , выводятся в окно сообщений и процесс исполнения прерывается. Настоятельно рекомендуется запускать программу только после сохранения ее исходного текста на диске. Дело в том, что при некоторых зависаниях системы или работающей программы продолжение сеанса возможно только после перезагрузки компьютера. А в этом случае содержимое поля редактирования будет потеряно и текст программы придется набирать заново.

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

Командой Go to cursor пользуются для автоматического запуска программы с остановкой в той строке исходного текста, где находится курсор . Обычно такой режим используется при отладке программы. Также для отладочных целей используется пошаговое выполнение программы. В этом режиме очередное нажатие функциональной клавиши F7 или F8 приводит к остановке после выполнения очередной строки исходного текста. Разница между этими двумя режимами заключается в исполнении строк, содержащих вызов пользовательской функции. Нажатие F7 приводит к тому, что пошаговое исполнение сохраняется и в вызываемой функции. В отличие от этого нажатие F8 приводит к автоматическому выполнению вызываемой функции и останову после возврата из нее.

Очень важно уметь пользоваться справочной системой интегрированной среды – командами меню Help (рис. 2.4).

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

По команде Contents на экране (рис.2.5) появляются названия справочных разделов:

  • How to Use Help – Как использовать помощь;
  • Menus and Hot Keys – Меню и «горячие» клавиши (клавишные команды);
  • Editor Commands – Команды редактора;
  • Assembler (built-in) – Встроенный ассемблер;
  • Borland C++ Language – Язык C++ среды Borland;
  • Command Line – Использование командной строки;
  • Container Classes – Классы-контейнеры;
  • Error Messages – Сообщения об ошибках;
  • Functions – Функции;
  • Header Files – Заголовочные файлы;
  • IOStream Classes – Потоковые классы ввода/вывода;
  • Utilities – Сервисные программы.

По команде Index на экране появляется упорядоченный по алфавиту список (рис. 2.6), в котором можно выбрать интересующий вас термин и перейти к соответствующему кадру помощи.

Ссылка на основную публикацию
Adblock
detector