Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции по информатике.doc
Скачиваний:
11
Добавлен:
23.09.2019
Размер:
1.46 Mб
Скачать

Раздел № 3 Программные средства реализации информационных процессов.

Классификация, виды и характеристики программного обеспечения. Классификация языков программирования. Искусственный интеллект, базы знаний, экспертные системы.

Инструментальное программное обеспечение – это пакет программ, предназначенных для автоматизации создания, редактирования, отладки, тестирования различных программных продуктов.

Инструментальное программное обеспечение включает:

- компиляторы с языков высокого уровня (ЯВУ)

- интерпретаторы с ЯВУ

- библиотеки стандартных программ

- средства редактирования, отладки и тестирования

- прикладные утилиты

Трансляция программы (компиляция и интерпретация)

С помощью языка программирования создается не готовая программа, а только ее текст, описывающий разработанный алгоритм. Текст алгоритма задачи, записанный на любом языке программирования называется исходным модулем. Специальная программа - транслятор переводит исходный модуль в последовательность команд ЭВМ. Имеются два основных типа таких программ - трансляторов: компиляторы и интерпретаторы. Компилятор транслирует весь текст исходного модуля в машинный код, который называется объектным модулем за один непрерывный процесс. Компилятор выдает промежуточный объектный код - двоичный файл с расширением .OBJ. Объектный модуль еще не может выполняться, т.к. он может содержать неразрешенные ссылки на другие модули или программы, а также перемещаемый код. К нему еще нужно добавить машинный код подпрограмм, реализующий стандартные функции (например, математические). Эти функции содержатся в стандартных библиотеках - файлах с расширением .LIB. Поэтому объектный модуль обрабатывается специальной программой – редактором связей. Редактор связи разрешает все внешние ссылки и создает загрузочный модуль. Далее начинает работу программа Загрузчик, она определяет для загрузочного модуля абсолютные адреса в ОП. Только после всех этих действий программ может выполняться. Часто функции редактора и загрузчика выполняет одна программа – редактирующий загрузчик. Итак, объектный код обрабатывается специальной программой - редактором связей или сборщиком, который выполняет связывание объектных модулей и машинного кода стандартных функций, находя их в стандартных библиотеках, и формирует на выходе работоспособное приложение - исполнимый код.

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

Рассмотрим подробнее работу программы-компилятора

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

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

2. Синтаксический анализ. При этом определяются синтаксические отношения ключевых слов и строится структурный каркас программы.

3. Генерация объектного кода, который соответствует структуре программы.

4. Оптимизация объектного модуля с целью повышения его эффективности (по объему и быстродействию).

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

Исполнимый код - это законченная программа, которую можно запустить на любом компьютере, где установлена ОС, для которой эта программа создавалась. Итоговый файл имеет расширение .EXE или .COM.

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

В отличии от компилятора интерпретатор не создает объектный код, а выполняет исходный модуль программы в режиме «оператор за оператором», по ходу работы он превращает каждый оператор ЯВУ в машинные команды.