Здравствуйте.
Подскажите плз ссылки или литературу, где описывается
работа и структура какой-нибудь виртуальной машины, желательно
JVM / Microsoft CLR. Нужно обобщенное описание алгоритма ее работы и фундаментальных
основ архитектуры.
Например:
-какие сущности входят в состав виртуальной машины
-есть ли в ней виртуальный процессор(как он устроен)
-что такое байт-код, в какие сущности и по каким алгоритмам он интерпретируется/компилируется
Re: Где можно почитать о работе виртуальной машины?
Здравствуйте, ProgrammerCPP, Вы писали:
PCP>Здравствуйте. PCP>Подскажите плз ссылки или литературу, где описывается PCP>работа и структура какой-нибудь виртуальной машины, желательно PCP>JVM / Microsoft CLR. Нужно обобщенное описание алгоритма ее работы и фундаментальных PCP>основ архитектуры. PCP>Например: PCP> -какие сущности входят в состав виртуальной машины PCP> -есть ли в ней виртуальный процессор(как он устроен) PCP> -что такое байт-код, в какие сущности и по каким алгоритмам он интерпретируется/компилируется
Здравствуйте, ProgrammerCPP, Вы писали:
PCP>Подскажите плз ссылки или литературу, где описывается PCP>работа и структура какой-нибудь виртуальной машины, желательно PCP>JVM / Microsoft CLR.
У Рихтера были CLR via C#, там весьма доступно.
Re[2]: Где можно почитать о работе виртуальной машины?
Спасибо за ссылки.
А пытался ли кто-нибудь анализировать на философском уровне
пути развития архитектур виртуальных машин?
Какими критериями и теориями руководствуются разработчики?
Например, предположим, что в некой версий JVM байт-коды соответствуют
N командам. Почему разработчики в этой версии решили сделать N команд,
а не N+J?
Re[3]: Где можно почитать о работе виртуальной машины?
Здравствуйте, ProgrammerCPP, Вы писали:
PCP>Спасибо за ссылки. PCP>А пытался ли кто-нибудь анализировать на философском уровне PCP>пути развития архитектур виртуальных машин? PCP>Какими критериями и теориями руководствуются разработчики? PCP>Например, предположим, что в некой версий JVM байт-коды соответствуют PCP>N командам. Почему разработчики в этой версии решили сделать N команд, PCP>а не N+J?
Это зависит от тех целей, которые должна решать ВМ.
Например, Дональд Кнут разработал ВМ MMIX.
MMIX помогает, в первую очередь, анализировать компьютерные алгоритмы.
Асимптотические оценки алгоритмов (например, О большое) могут отличаться в разы.
Кнут же каждой машинной инструкции присваивает две характеристики
_ количество обращений к памяти;
_ число циклов процессора.
Зная сколько раз выполняется данная инструкция можно вычислить "время" выполнения данной программы, используя приведенные выше характеристики.
Таким образом, можно довольно точно сравнивать скорость работы алгоритмов.
Смотрите мою статью Система программирования MMIXAL.NET (Часть 3) в журнале RSDN Magazine N1 за 2011.
PCP>Например, предположим, что в некой версий JVM байт-коды соответствуют PCP>N командам. Почему разработчики в этой версии решили сделать N команд, PCP>а не N+J?
Отвечая на этот вопрос, я продолжу анализировать ВМ MMIX.
Длина каждой инструкции ВМ MMIX равна 4 байтам.
Первый байт содержит код инструкции, остальные три — операнды.
То есть возможно 256 различных инструкций ВМ MMIX.
Кнут даже ввел SWYM инструкцию, которая не осуществляет какой-либо операции.
Аналогом этой инструкции является NOP инструция для Intel микропроцессоров (используется для организации задержек в циклах).
Смотрите книгу Магда Ю. Ассемблер для процессоров Intel Pentium (Изд Питер, 2006).
I do all my own stunts
Re[3]: Где можно почитать о работе виртуальной машины?
Здравствуйте, ProgrammerCPP, Вы писали:
PCP>Здравствуйте. PCP>Подскажите плз ссылки или литературу, где описывается PCP>работа и структура какой-нибудь виртуальной машины, желательно PCP>JVM / Microsoft CLR. Нужно обобщенное описание алгоритма ее работы и фундаментальных
Serge Lidin имеет хорошую книгу по организации MSIL & CLR VM. Также очень полезно будет сделать review CLR Rotor
Re: Где можно почитать о работе виртуальной машины?
Здравствуйте, ProgrammerCPP, Вы писали:
PCP>Здравствуйте. PCP>Подскажите плз ссылки или литературу, где описывается PCP>работа и структура какой-нибудь виртуальной машины, желательно PCP>JVM / Microsoft CLR. Нужно обобщенное описание алгоритма ее работы и фундаментальных PCP>основ архитектуры. PCP>Например: PCP> -какие сущности входят в состав виртуальной машины PCP> -есть ли в ней виртуальный процессор(как он устроен) PCP> -что такое байт-код, в какие сущности и по каким алгоритмам он интерпретируется/компилируется
1. Кнут — виртуальная машина MMIX
2. Вирт — виртуальная RISC-машина. В книге по компиляторам: http://www.ozon.ru/context/detail/id/19133384/
И в книге Проект Оберон: http://www.ozon.ru/context/detail/id/8218517/
3. Михаэль Франц — вирптуальная машина весьма высокого уровня.
По Яве — документация на сайте
По CLR было несколько книжек. В Интуите есть неплохая.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!