Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






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





С помощью языка программирования создаётся не готовая программа, а только её текст, описывающий ранее разработанный алгоритм. Чтобы получить работающую программу, надо этот текст либо автоматически перевести в машинный код (для этого служат программы компиляторы) и затем использовать отдельно от исходного текста, либо сразу выполнять команды языка, указан-ные в тексте программы (этим занимаются программы-интерпретаторы).

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

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

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

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


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

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

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

 

Редакторы связей

Редактор связей - системная обрабатывающая программа, редактирующая и объединяющая объектные модули, полученные в результате работы транслятора, в единые загрузочные, готовые к выполнению программные модули. Загрузочный модуль может быть помещен ОС в основную па-мять и выполнен. Загрузочный модуль компонуется из одной или нескольких программных сек-ций - перемещаемых частей программы. Каждый объектный модуль из входного потока редактора связей может иметь ссылки к программным секциям в других модулях. Такие ссылки называются внешними. Символ указываемой внешней ссылкой называется внешним именем. Установленное редактором связей соответствие между внешними ссылками и внешними именами называется раз-решением ссылки.

Загрузчики

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

Отладчики

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

 

Date: 2015-09-05; view: 585; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию