Классы систем программирования (СП)

Системы программирования классифицируются по признакам

Признак классификации Типы
Набор исходных языков Одноязыковые
Многоязыковые
Возможность расширения Замкнутые
Открытые
Трансляция Компиляция
Интерпретация

Следует отметить, что:

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

в открытую систему можно ввести новый входной язык с трансля­тором, не требуя изменений в системе;

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


Рассмотрим структуру абстрактной многоязыковой, открытой, компилирующей системы программирования и процесс разработки приложений в данной среде


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

текстовых редакторов и в виде текстового файла или разде­ла библиотеки поступает на вход транслятора.

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

Препроцессинг — необязательная фаза, состоящая в анализе ис­ходного текста, извлечения из него директив препроцессора и их вы­полнения.

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

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

Компиляция — в общем случае многоступенчатый процесс, вклю­чающий следующие фазы:

синтаксический анализ — проверка правильности конструкций, ис­пользованных программистом при подготовке текста;

семантический анализ — выявление несоответствий типов и струк­тур переменных, функций и процедур;

генерация объектного кода — завершающая фаза трансляции.

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

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

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

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

Загрузка программы. Загрузочный модуль после сборки либо по­мещается в качестве раздела в пользовательскую библиотеку программ, либо в качестве последовательного файла на накопителе на магнитном диске (НМД). Выполнение модуля состоит в загрузке его в оперативную память, настройке по месту в памяти и передаче ему управления. Образ загрузочного модуля в памяти называется абсолютным модулем, по­скольку все команды ЭВМ здесь приобретают окончательную форму и получают абсолютные адреса в памяти. Формирование абсолютного модуля может осуществляться как программно, путем обработки ко­мандных кодов модуля программой-загрузчиком, так и аппаратно, пу­тем применения индексирования и базирования команд загрузочного модуля и приведения указанных в них относительных адресов к абсо­лютной форме.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: