Виртуальные машины

В настоящее время большое значение придается многоплатформенности, т.е. возможности выполнения тех или иных приложений на различных программных и аппаратных платформах. Различных приложений необозримо много, существенно различных платформ и сейчас немало, а в недавнем прошлом было еще больше. Реализовать каждое приложение на каждой платформе означает возвести в квадрат немалые трудности разработки программного обеспечения. Действительно, если есть N приложений и М платформ, то потребуется N ? М реализаций. Одно из самых простых и напрашивающихся решений — ввести промежуточную унифицированную платформу, реализовать все приложения на этой платформе и алгоритмы переноса любого приложения с унифицированной платформы на целевую платформу. Потребуется всего N+ М реализаций. Если Лги М измеряются многими десятками, сотнями и тысячами, то выигрыш весьма велик.

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

Пожалуй, самой известной современной попыткой является виртуальная машина Java {JVM, Java Virtual Machine). JVM — это определение языка программирования уровня ассемблера (язык команд) для абстрактной стековой машины. Определение включает описание формата программы, который называется байт-код, покоманд- ного описания операционной семантики на естественном языке и описания набора правил проверки допустимости исполнения программы. Последние (по замыслу создателей JКМ) должны обеспечить безопасность выполнения программ. Язык JVM — байт-код — очень прост, можно сказать, примитивен. Поэтому без особого напряжения были изготовлены многочисленные более или менее эффективные реализации JVM практически для всех платформ, основанные как на принципах интерпретации, так и на принципах компиляции и последующего выполнения.

Можно уверенно сказать, что архитектура виртуальных машин, примером которой является Java, — одна из самых популярных в настоящее время.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >