Практическое значение интерпретатора

Содержание

Интерпретатор С весьма интересен как объект исследований и экспериментов, кроме того, интерпретаторы вообще имеют немалое практическое значение.

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

Можно назвать две традиционные причины того, что интерпретаторы продолжают использоваться: их легко сделать интерактивными, а также они очень облегчают отладку программы. Однако в последние годы разработчики компиляторов обычно создают интегрированные среды разработки (Integrated Development Environments, IDEs), в которых предусмотрены средства для интерактивной работы и отладки не хуже, чем имеющиеся у интерпретаторов. Поэтому обе вышеназванные причины применения интерпретаторов сейчас уже не актуальны. Однако интерпретаторы продолжают использоваться. Например, большинство программ, написанных на языках запросов к базам данных, сейчас интерпретируются, а не компилируются. Многие языки управления промышленными роботами также интерпретируются,

В последние годы проявилось еще одно преимущество интерпретаторов: повышенная переносимость на различные инструментальные комплексы. Характерный пример этого — язык Java. С самого начала Java разрабатывался как язык, предназначенный для интерпретации. Сделано было это специально для того, чтобы программы, написанные на нем, можно было выполнять на любом компьютере и в любой среде, содержащей интерпретатор Java. Такое свойство языка является чрезвычайно ценным, если программа предназначается для работы в распределенных сетевых системах наподобие Internet. Создание Java и широкое распространение Internet вызвали новую вспышку интереса к интерпретаторам в целом.

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

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