Интерпретация и компиляция

Рубрики: Начинающим   Комментарии (0)

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

Интерпретация и компиляция

1. Компиляция. Представим себе, что на диске ПК возник выполняемый файл (в рассматриваемой нами ОС все такие файлы имеют расширение EXE или СОМ), в результате запуска которого компьютер сделает все то, что полагается сделать согласно Вашей программе. Тем самым задача была бы решена. Существуют программы, умеющие прочесть текстовый файл с программой пользователя и сделать эквивалентный ему выполняемый файл. Такие программы называют компиляторами, а процесс перевода программы из текстового представления в представление в виде файла с выполняемой программой — компиляцией.

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

Конечно, язык ОС — это специализированный язык, основное назначение которого — обеспечить работу с файлами, как с неделимыми единицами информации. Но легко представить себе, что ОС допускает помимо стандартных команд все те команды и конструкции, что мы использовали в наших программах. При этом никакие выполняемые файлы, кроме файлов типа ВАТ, содержащих тексты программ, не нужны — ведь каждая команда в такой программе может быть сразу выполнена ОС, так что не требуется никакого перевода. На самом деле, задача перевода осталась — мы лишь загнали ее внутрь ОС, которая должна правильно интерпретировать все новые команды и программные конструкции. Ясно, что это усложнит ОС. Более обидно, что это еще и увеличит время выполнения программ: скажем, если тело какого-нибудь цикла выполняется сто раз, это значит, что система сто раз должна будет проинтерпретировать это тело, всякий раз переводя его в какие-то более простые и понятные аппаратуре команды.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Подтвердите, что Вы не бот — выберите самый большой кружок: