wizzard: (Default)
[personal profile] wizzard
Все краем уха где-то слышали, что .NET MSIL-код - интерпретируется. И я слышал. Еще большинство слышало, что для оптимизации его компилируют в native code. Но не всегда.

В итоге, поиски интерпретатора MSIL привели... ни к чему.

Интерпретаторов MSIL нет. Все имеющиеся в природе closed- и open-source реализации - только компилирующие :(

MS .NET Framework - компилирует в x86/x64/IA64 (Win) native, интерпретатора нет
MS .NET Compact Framework (XNA, Silverlight) - компилирует в ARM/PPC/MIPS/x86/x64 (Win/Xbox/WinMobile) код, интерпретатора нет
MS .NET Micro Framework - при билде (!) компилирует в native или direct-threaded код, в зависимости от характеристик устройства. Компиляция производится при билде, а не в run-time (т.е. сборки, не обработанные NGEN'ом, просто отказываются запускаться)
Rotor (SSCLI) - компилирует в x86 native
Mono - до версии 0.2х интерпретировал, теперь там есть два различающихся по оптимальности компилятора. Внимательный просмотр кода версии 2.0.1 следов интерпретатора не нашел (хотя место, куда воткнуть, в принципе есть)
Net60 Compact Framework - компилирует в ARM (Symbian) код на лету
Portable.NET, он же dotGNU - компилирует в direct-threaded код на лету
DotNetAnywhere - компилирует в direct-threaded код на лету.
CrossNet - генерирует C++ код
Volta - генерирует JavaScript код (с одной стороны, это ахтунг, с другой стороны, интерпретатор MSIL на JS был бы еще на два порядка медленнее)


Усе, приехали. Если кто вдруг знает еще дотнет-рантаймы :-D - буду рад узнать. Особенно, если это будет таки чистый MSIL интерпретатор.

А, да. direct-threaded code - это нечто среднее между байткодом и native, по эффективности сравнимо с native кодом, который генерирует неоптимизирующий компилятор.

Date: 2009-05-19 11:27 pm (UTC)
From: [identity profile] http://users.livejournal.com/_windwalker_/
Т.е. кроссплатфоренность уже как у C / C++ ? На уровне компиляции ? Ужос.

Date: 2009-05-19 11:40 pm (UTC)
From: [identity profile] http://users.livejournal.com/_windwalker_/
А, я что-то криво прочитал про Micro Framework.

Просто та же жаба скорее интерпретатор, но иногда подключается и компилятор, для узких мест, которые вычисляются по статистике исполнения программы. Правда это в жаба-машинах сантехников. Как делает IBM и Oracle/BEA (который теперь ещё и сан) - это мне не известно.

Profile

wizzard: (Default)
wizzard

January 2019

S M T W T F S
  12 345
6789101112
1314 1516171819
202122 23242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 10th, 2026 12:44 am
Powered by Dreamwidth Studios