Понятие виртуальной машины
Трансляторы и интерпретация |
47 |
Для преодоления сложности общения создают новые команды, более удобные для человека, чем машинные команды. Вместе эти новые команды образуют язык высокого уровня (ЯВУ). Но ведь подобный язык аппаратный компьютер «не понимает»! Существует два способа преодоления этого непонимания, их основная цель: заменять высокоуровневые команды эквивалентными наборами машинных команд. Правда, пути достижения этой цели используются разные. Первый способ заключается в преобразовании одной программы, написанной на ЯВУ, в другую программу, записываемую в терминах машинного языка. Способ преобразования прост: каждая команда из ЯВУ заменяется на эквивалентный набор команд из машинного языка. Теперь аппаратный компьютер будет выполнять новую программу на машинном языке вместо исходной программы на ЯВУ. Исходная же программа на ЯВУ просто выбрасывается. Этот подход получил название трансляции. Второй способ состоит в создании такой программы на машинном языке, которая поочередно обрабатывает каждую команду программы на языке высокого уровня: она заменяет каждую команду ЯВУ на эквивалентный набор машинных команд и сразу же выполняет этот набор. При этом новая программа на машинном языке не создается. Процесс «покомандного» перевода называют интерпретацией, а программу, выполняющую этот процесс, называют интерпретатором. В конечном счете, и трансляция, и интерпретация являются инструментами поддержки такого важного понятия, как виртуальная машина [90]. Виртуальная машина — это программная надстройка над аппаратным компьютером. Виртуальная машина весьма удобна для программиста, поскольку в качестве машинного языка здесь выступает язык высокого уровня. Человек может считать, что ЯВУ встроен в виртуальную машину, и писать программы для машины в удобной для себя форме. Понятно, что реально всю работу по-прежнему будет выполнять аппаратный компьютер, обеспечиваемый транслятором или интерпретатором, но теперь это «остается за кадром». |