Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Часть5_технология создания программ_КНиИТ.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
114.18 Кб
Скачать

41

Лекции по дисциплине «Программирование» 1 семестр.

Раздел 2.Технология создания программ Тема 2.1.Интегрированная среда программирования

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

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

2. Транслятор. Это программа, которая переводит исходный текcт программы в машинный код, осуществляя синтаксический разбор текста. На этом этапе уже возможно получение готовой программы, но чаще всего в ней не хватает некоторых компонентов, поэтому транслятор обычно выдает промежуточный объектный код (двоичный файл со стандартным расширением .OBJ). Если же в исходном тексте программы обнаружены ошибки, то результирующий файл не создается, а выдается сообщение об ошибках.

3. Редактор связей (компоновщик, сборщик, линковщик). Если текст программы состоит из нескольких модулей, то каждый их них транслируется в отдельный файл с объектным кодом, которые затем необходимо объединить в единое целое. Кроме того, к ним нужно добавить код подпрограмм, реализующих различные стандартные функции, которые содержатся в библиотеках, поставляемых вместе со стандартным транслятором. Сгенерированный код модулей и подключенные к нему стандартные функции нужно не просто объединить в одно целое, а выполнить такое объединение с учетом требований операционной системы, то есть получить на выходе программу, отвечающую определенному формату. Это задача редактора связей. На выходе редактор связей формирует исполняемый код для конкретной программы. Если один из объектный модулей или библиотека не обнаружены, то редактор связей выдает сообщение об ошибке. Как правило, итоговый файл имеет расширение .EXE или .COM.

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

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

Трансляторы

Существует два основных метода перевода программы, написанной на языке программирования высокого уровня, в машинные коды.

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

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

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

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

Достоинство: повышенная скорость – один раз скомпилированная программа в дальнейшем при запуске не требует каких-либо дополнительных действий над собой, не содержит синтаксических ошибок.

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

До 1994 г. эти два методы перевода программы были единственными, используемыми в программировании и получили общее название методы трансляции.

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

Схема подготовки исполняемой программы на языке С++

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

#include <iostream.h>

вставляет в текст программы текст из заголовочного файла iostream.h.

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

Схема подготовки исполняемой программы