Лекция: Средства создания программ.

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

1. Текстовый редактор.

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

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

2. Программа-компилятор.

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

На этом этапе уже возможно получение готовой программы, но чаще всего в ней не хватает некоторых компонентов, поэтому компилятор обычно выдает промежуточный объектный код (двоичный файл, стандартное расширение .obj).

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

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

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

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

Если по каким-то причинам один из объектных модулей или нужная биб-лиотека не находятся (неправильно указан каталог с библиотекой), то сборщик сообщает об ошибке и готовой программы не получается.

Исполнимый код – это законченная программа, которую можно запустить на любом компьютере, где установлена операционная система, для которой эта программа создавалась (расширение .exe, .com).

В настоящее время основным средством разработки программ являются системы программирования.

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

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

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

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

Встроенная СП является составной частью другого программного комплек-са. Такие СП применяются в СУБД – системах управления базами данных и наиболее развитых пакетах прикладных программ. По своей организации и возмож-ностям они подобны интегрированным СП. В процессе развития СУБД их систе-мы программирования постепенно приобрели черты классической СП, способной создавать, отлаживать и объединять отдельные модули, а также формировать программу, выполняемую независимо от СУБД.

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

Исходный модуль (ИМ) – модуль, написанный на входном языке транслятора. Программа может состоять из одного или нескольких ИМ. Исходные модули транслируются независимо друг от друга, хотя некоторые трансляторы могут выполнять так называемую пакетную обработку. Каждый ИМ транслятор перерабатывает в перемещаемый объектный модуль.

Объектный модуль (ОМ) – программа на языке машины + вспомогательная информация, обеспечивающая, в частности, объединение ОМ с другими модулями. Объектный модуль нельзя выполнить на компьютере без дополнительной об-работки.

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

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

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

Тексты на исходном языке могут храниться в специальных файлах включения и при необходимости включаться в исходные модули. Отдельные объектные модули могут накапливаться в библиотеках объектных модулей (БОМ). Для обслуживания БОМ имеется специальная программа – библиотекарь, которая по-зволяет создавать библиотеки, пополнять их, осуществлять замену и удаление модулей, печатать оглавление. При наличии доступных библиотек компоновщик автоматически ищет в них объектные модули, необходимые для создания единой программы. Такие библиотеки иногда называют библиотеками автовызова.

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

 

3.3 Технология программирования

 

В процессе решения задачи с применением компьютера пользователь самостоятельно или с помощью специалистов проходит ряд этапов, которые показаны на рис.1.

Рассмотрим последовательность прохождения этапов на примере простой задачи.

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

На втором этапе производится математическая постановка задачи (математическая модель):

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

· решение задачи описывается в виде аналитических зависимостей. Для нашей задачи

· определяются конечные (выводимые) данные и их типы. В нашем случае конечными данными (результатом решения) является значение функции f(x) целого типа.

На третьем этапе осуществляется разработка алгоритма. Алгоритмизация выступает как связующее звено между «домашними» этапами решения задачи и непосредственно общением человека с компьютером. Алгоритм решения нашей задачи показан на рис.2.

На четвертом этапе решения задачи алгоритм переводится в программу, записанную на языке высокого уровня. Ниже приводятся программы на языках Pascal и QBasic, которые реализуют данный алгоритм.

Pascal:

Program zadacha;

Var x: real; f: integer;

Begin

Read (x); WriteLn ('x=', x);

If x>0 Then f :=1

Else f :=0;

WriteLn ('f=', f);

End.

QBasic:

REM zadacha

DEFSNG X: DEFINT F

INPUT X: PRINT «X=», Х

IF X>0 THEN F=1 ELSE F=0

PRINT «F=», F

END

На пятом этапе программа водится в память компьютера, осуществляются ее отладка и решение.

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

 

еще рефераты
Еще работы по информатике