Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебно-практическое пособие ПРОГ.doc
Скачиваний:
37
Добавлен:
20.11.2019
Размер:
5.63 Mб
Скачать

2.2.2.Компиляторы и интерпретаторы

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

Первый способ - осуществлять покомандную (пооператорную) трансляцию исходной программы на машинный язык и сразу осуществлять выполнение результата трансляции команды. Трансляторы подобного типа называются интерпретаторами. Пример языков интерпретируемого типа: Бейсик, Лого и др.

Достоинства интерпретаторов

  • Хорошая переносимость интерпретируемых программ - программа будет работать на любой платформе, на которой есть соответствующий интерпретатор.

  • Как правило, более совершенные и наглядные средства диагностики ошибок в исходных кодах.

  • Упрощение отладки исходных кодов программ.

Недостатки интерпретаторов

  • Интерпретируемая программа не может выполняться отдельно без программы-интерпретатора.

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

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

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

Достоинства компиляторов:

  • Программа, полученная в результате компиляции, может выполняться независимо от компилятора.

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

  • В компиляторе, как правило, проводится оптимизация компилируемых программ.

Недостатки компиляторов:

  • Для переносимости компилируемых программ на новую платформу требуется компилятор работоспособный на новой платформе. С помощью данного компилятора необходимо выполнить компиляцию исходного кода и получить исполняемую программу для новой платформы. Этот процесс требует определенных временных затрат и квалификации.

  • Отладка и диагностика компилируемых программ может быть более трудоемкой по сравнению с интерпретируемыми программами.

Распространены также трансляторы, сочетающие в себе функции интерпретатора и компилятора. Такие трансляторы называют интерпретаторами компилирующего типа. Эти системы состоят из компилятора, переводящего исходный код программы в промежуточное представление (байт-код или p-код) и интерпретатора, который выполняет полученный промежуточный код (виртуальная машина). Достоинством интерпретаторов компилирующего типа является более высокая скорость выполнения программ по сравнению с интерпретаторами. Недостатки - большее требование к ресурсам. Применяется в таких языках, как Java, PHP, Python, Perl и др., а также в различных СУБД

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

  1. Создание программы на языке Си. Для этих целей используется редактор текстов.

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

  3. Выполнение программы полученной в результате компиляции.

Для упрощения процесса создания программ используются интегрированные среды разработки, ИСР (англ. IDE, Integrated development environment или integrated debugging environment). ИСР это система программных средств, используемая для разработки программного обеспечения.

Обычно среда разработки включает в себя:

  • текстовый редактор

  • компилятор и/или интерпретатор

  • средства автоматизации сборки

  • отладчик.

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

Существуют среды разработки, предназначенные для нескольких языков программирования - такие, как Eclipse, NetBeans, Qt Creator, Microsoft Visual Studio и др.. Также существуют ИСР предназначенные для одного определённого языка программирования, например, Visual Basic, Delphi и др.

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

В рамках данного курса будет использоваться ИСР Eclipse (см. описание лабораторной работы №1)