Компиляторы и интерпретаторы
С помощью языка программирования создается не готовая программа, а только ее текст, описывающий ранее разработанный алгоритм. Чтобы получить работающую программу, надо этот текст либо автоматически перевести в машинный код (для этого служат программы-компиляторы) и затем использовать отдельно от исходного текста, либо сразу выполнять команды языка, указанные в тексте программы (этим занимаются программы-интерпретаторы).
Интерпретатор берет очередной оператор языка из текста программы, анализирует его структуру и затем сразу исполняет (обычно после анализа оператор транслируется в некоторое промежуточное представление или даже машинный код для более эффективного дальнейшего исполнения). Только после того как текущий оператор успешно выполнен, интерпретатор перейдет к следующему. При этом, если один и тот же оператор должен выполняться в программе многократно, интерпретатор всякий раз будет выполнять его так, как будто встретил впервые. Вследствие этого, программы, в которых требуется осуществить большой объем повторяющихся вычислений, могут работать медленно. Кроме того, для выполнения такой программы на другом компьютере там также должен быть установлен интерпретатор — ведь без него текст программы является просто набором символов,
По-другому, можно сказать, что интерпретатор моделирует некую виртуальную вычислительную машину, для которой базовыми инструкциями служат не элементарные команды процессора, а операторы языка программирования.
Компиляторы полностью обрабатывают весь текст программы (он иногда называется исходный код). Они просматривают его в поисках синтаксических ошибок (иногда несколько раз), выполняют определенный смысловой анализ и затем автоматически переводят (транслируют) на машинный язык — генерируют машинный код. Нередко при этом выполняется оптимизация с помощью набора методов, позволяющих повысить быстродействие программы (например, с помощью инструкций, ориентированных на конкретный процессор, путем исключения ненужных команд, промежуточных вычислений и т.д.). В результате законченная программа получается компактной и эффективной, работает в сотни раз быстрее программы, выполняемой с помощью интерпретатора, и может быть перенесена на другие компьютеры с процессором, поддерживающим соответствующий машинный код.
Основной недостаток компиляторов — трудоемкость трансляции языков программирования, ориентированных на обработку данных сложной структуры, часто заранее неизвестной или динамически меняющейся во время работы программы. Тогда в машинный код приходится вставлять множество дополнительных проверок, анализировать наличие ресурсов операционной системы, динамически их захватывать и освобождать, формировать и обрабатывать в памяти компьютера сложные объекты, что на уровне жестко заданных машинных инструкций осуществить довольно трудно,
а для ряда задач практически невозможно.
С помощью интерпретатора, наоборот, допустимо в любой момент остановить работу программы, исследовать содержимое памяти, организовать диалог с пользователем, выполнить сколь угодно сложные преобразования данных и при этом постоянно контролировать состояние окружающей программно-аппаратной среды, благодаря чему достигается высокая надежность работы. Интерпретатор при выполнении каждого оператора проверяет множество характеристик операционной системы и при необходимости максимально подробно информирует разработчика о возникающих проблемах. Кроме того, интерпретатор очень удобен для использования в качестве инструмента изучения программирования, так как позволяет понять принципы работы любого отдельного оператора языка.
Итак, программа, подготовленная на языке программирования, проходит этап трансляции, когда происходит преобразование исходного кода программы (source code) в объектный код (object code), который далее пригоден к обработке редактором связей. Редактор связей - специальная программа, обеспечивающая построение загрузочного модуля (load module),пригодного к выполнению:
Исходный код программы на алгоритмическом языке. Объектный код программы на машинном языке. Загрузочный модуль, готовый для выполнения программы.
Транслятор компилятор. Редактор связей.
Схема процесса создания загрузочного модуля программы.
Трансляция может выполняться с использованием средств компиляторов (compiler) или интерпретаторов (interpreter). Компиляторы транслируют всю программу, но без ее выполнения. Интерпретаторы, в отличие от компиляторов, выполняют пооператорную обработку и выполнение программы.
В реальных системах программирования перемешаны технологии и компиляции и интерпретации.
- Информационное общество
- Информатизация общества
- Информационная культура
- Информационные ресурсы
- Сигналы. Данные. Информация
- Диалектическое единство данных и методов в информационном процессе
- Свойства информации
- Характеристики информации. Структура, форма, количество
- 2. Общая характеристика процессов сбора, передачи и накопления информации Операции с данными
- Накопление данных
- Кодирование данных
- Кодирование текста
- Кодирование графики
- Кодирование звука
- Структуры данных
- Табличная структура
- Файловая структура
- Организация файловой системы
- Лекция 2. Технические и программные средства реализации информационных процессов. История вычислительной техники
- История персональных компьютеров
- Классификация современных компьютеров
- К лассификация персональных компьютеров
- Средства аппаратного обеспечения персонального компьютера
- 1. Введение
- 2. Системный блок
- 3. Центральный процессор (cpu)
- 4. Системная плата (Mainboard)
- 5. Оперативная память (ram)
- 6. Видеокарта
- 7. Монитор
- 8. Дисковая подсистема
- Программная конфигурация персонального компьютера
- 1. Операционная система
- 1.1. Понятие, основные функции и составные части операционной системы
- 1.2. Классификация операционных систем
- 2. Файловые системы
- 2.1. Основные функции файловой системы
- 2.2. Файлы и каталоги
- 2.3. Другие функции файловых систем
- 3. Операционная система ms dos
- 3.1. Основные составные части ms dos
- 3.2. Командный процессор Command.Com
- 3.4. Командный файл автонастройки autoexec.Bat
- 3.5. Файл конфигурации config.Sys
- 3.6. Программные оболочки
- 4. Операционные системы Windows
- 4.1. Общая характеристика и история развития
- 4.2. Операционная система Windows 98
- 4.3. Особенности операционной системы Windows 2000
- Windows 2000 оснащена усовершенствованными средствами симметричной многопроцессорной обработки.
- Встроенные средства удаленного доступа.
- 5. Сервисные программные средства
- 5.1. Служебные программы
- 5.2. Архивация данных
- 5.3. Антивирусные программные средства
- 6. Прикладное программное обеспечение
- 6.1. Текстовые редакторы и процессоры
- 6.2. Процессоры электронных таблиц
- 6.3. Системы управления базами данных (субд)
- 6.4. Издательские системы и графические редакторы
- 6.5. Браузеры и Web-редакторы
- Информация. Информационные ресурсы. Информационные системы
- Информационные системы в экономике
- Бухгалтерские информационные системы
- Информационно-поисковые системы
- Справочно-правовые системы
- Геоинформационные системы (гис)
- Рынок информационных услуг
- Искусственный интеллект
- Лекция 3. Модели решения функциональных и вычислительных задач. Моделирование как метод познания
- Классы моделей
- Структуры информационных моделей
- Объекты: свойства и операции
- Алгоритм и способы его исполнения
- Методы и технологии моделирования
- Лекция 4. Алгоритмизация и программирование. Машинный код процессора
- Алгоритм и программа
- Что такое язык программирования
- Компиляторы и интерпретаторы
- Алгоритмическое (модульное) программирование. Понятие и свойства алгоритма
- Формы записи алгоритма
- Алгоритмы линейной структуры
- Алгоритмы разветвляющейся структуры.
- Алгоритмы циклической структуры
- Переменные и константы
- Лекция 5. Языки программирования высокого уровня. Структурное программирование Подпрограммы
- Нисходящее проектирование по
- Процедуры и функции
- Параметры подпрограмм
- Управление последовательностью вызова подпрограмм
- Структура подпрограммы
- Как функция возвращает значение
- Формальные и фактические параметры
- Событийно-ориентированное программирование
- Объектно-ориентированное программирование Понятие объекта
- Описание нового класса
- Наследование
- Полиморфизм
- Визуальное программирование
- Уровни языков программирования
- Поколения языков программирования
- Обзор языков программирования высокого уровня
- Языки программирования баз данных
- Языки программирования для Интернета
- Языки моделирования
- Прочие языки программирования
- Лекция 6. Базы данных. Основные понятия баз данных Базы данных и системы управления базами данных
- Структура простейшей базы данных
- Свойства полей базы данных
- Типы данных
- Безопасность баз данных
- Режимы работы с базами данных
- Объекты базы данных
- Проектирование базы данных
- Разработка технического задания
- Разработка структуры базы данных
- Лекция 7. Локальные и глобальные сети эвм. Определение вычислительной сети
- Аппаратные и программные компоненты сетей
- Основные требования к вычислительным сетям
- Администрирование локальных сетей
- Классификация вычислительных сетей Классификация по территориальному признаку
- Классификация сетей по масштабу
- Классификация по физической архитектуре
- Классификация по логической архитектуре
- Линии связи
- Базовые технологии локальных сетей
- Системное программное обеспечение локальных сетей
- Защита информации в вычислительной сети
- Защита физических объектов
- Защита логических объектов
- Защита от несанкционированных действий со стороны внешней среды
- Ограничение логического доступа к оборудованию и сетевым ресурсам
- Защита данных в процессе передачи
- Защита информации от случайного повреждения и сбоев
- Защита информации от повреждения вирусами
- Глобальная сеть Интернет Введение
- Основные понятия Internet
- Протокол tcp/ip
- Основные службы Internet
- Поиск в Internet
- Электронная почта
- Лекция 8. Основы защиты информации и сведений, составляющих государственную тайну; методы защиты информации.
- 1. Компьютерные вирусы
- 1.1.Постановка вопроса
- 1.2. Что такое компьютерный вирус
- 1.3. Внешние проявления вирусов
- 1.4. Виды антивирусных программ
- 1.4.1. Типы вирусов
- 1.4.2. Типы антивирусных программ
- 1.4.3. Использование антивирусных средств
- 1.5. Антивирусный детектор Doctor Web
- 1.6. Программы Antiviral ToolKit Pro (avp) и Norton Antivirus (nav)