ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ

ОСНОВНЫЕ ТЕРМИНЫ И ИХ ОПРЕДЕЛЕНИЯ

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

Термин «алгоритм», происходит от algorithmi — латинской формы написания имени выдающегося математика IX в. аль-Хорезми, сформулировавшего правила выполнения арифметических операций. Применительно к вычислительным системам (компьютерам) и согласно (ГОСТ 19.004-80), алгоритм — точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату. Кроме данного понятия алгоритма, существует также математическое определение алгоритма, которое представляется в виде машины Тюринга, машины Поста, нормального алгоритма Маркова и т.д.

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

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

Под термином «программа» понимается алгоритм, записанный в форме, воспринимаемой вычислительной машиной (ГОСТ 19.004-80), или данные, предназначенные для управления конкретными компонентами системы обработки информации, в целях реализации определенного алгоритма (ГОСТ 19781-90). Эти два определения отражают определенные стороны этого термина (внешнюю и внутреннюю). Смысл этих определений сводится к тому, что программа представляет упорядоченную последовательность команд (данных), которые исполняются средством обработки информации (например, компьютером) с целью автоматизации решения конкретной задачи для получения требуемого результата. Существует также определение термина «программа» в соответствии со стандартом (ISO 2382-1): программа — синтаксическая единица, которая соответствует правилам конкретного языка программирования, она составлена из деклараций и утверждений, или инструкций, необходимых для решения определенной функции, задачи или проблемы.

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

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

Системная программа (System program) — программа, предназначенная для поддержания работоспособности системы обработки информации или повышения эффективности ее использования в процессе выполнения прикладных программ.

Управляющая программа (Control program) — системная программа, реализующая набор функций управления, который включает управление ресурсами и взаимодействием с внешней средой системы обработки информации, восстановление работы системы после проявления неисправностей в технических средствах.

Супервизор (Supen’isor) — часть управляющей программы, координирующая распределение ресурсов системы обработки информации.

Прикладная программа {Applicationprogram) — программа, предназначенная для решения задачи или класса задач в определенной области применения системы обработки информации.

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

Абсолютная программа (Non-relocatable program) — программа на машинном языке, выполнение которой зависит от ее местоположения в оперативной памяти.

Перемещаемая программа (Relocatable program) — программа на машинном языке, выполнение которой нс зависит от ес местоположения в оперативной памяти.

Реентерабельная программа (Reenterable program) — программа, один и тот же экземпляр которой в оперативной памяти может выполняться многократно, причем так, что каждое выполнение может начинаться в любой момент по отношению ко времени другого выполнения.

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

Драйвер (Driver) — программа, предназначенная для управления работой периферийных устройств, обычно в мини- и микровычис-лительной системе.

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

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

Исходный модуль (Source module) — программный модуль на исходном языке, который обрабатывается транслятором и представляет для него цельный программный модуль, достаточный для проведения трансляции.

Объектный модуль {Objectmodule) — программный модуль, получаемый в результате компиляции исходного модуля. Объектный модуль обычно полностью готов к редактированию связей.

Загрузочный модуль {Loadmodule) — программный модуль, представленный в форме, пригодной для загрузки в основную память для выполнения программы.

Рекурсивная подпрограмма {Recursive subroutine) — подпрограмма, которая может обращаться к себе самой.

Термин «программирование» {programming), или разработка программ согласно стандарту (ИСО 9000-3-91), — все виды деятельности, выполняемые для создания продукции программного обеспечения, т.е. теоретическая и практическая деятельность, связанная с созданием программ.

 
< Пред   СОДЕРЖАНИЕ     След >