Основні риси MSIL

MSIL можна розглядати як асемблер деякої віртуальної машини. Це нетиповий асемблер, оскільки він має багато конструкцій, характерних для мов більш високого рівня: наприклад, у ньому є інструкції для опису просторів імен, класів, викликів методів, властивостей подій і виняткових ситуацій. Крім того, MSIL є стековою машиною із статичною перевіркою типів, це дозволяє відстежувати деякі типові помилки.

MSIL являє собою додатковий рівень абстракції, що дозволяє легко справлятися з перенесенням коду з однієї платформи на іншу у тому числі, і із зміною розрядності платформи: на відміну від Java bytecode MSIL не зав’язаний на 32 біта або яку-небудь іншу фіксовану розрядність. В даний момент існують версії MSIL для мобільних 16-розрядних пристроїв (.NET Compact Framework) стандартна 32-розрядна версія і спеціальна версія для роботи з 64-розрядними пристроями, які набувають усе більш широкого поширення.

MSIL зберігає досить багато інформації про імена, використані в початковій програмі: імена класів, методів і виняткових ситуацій зберігаються і можуть витягуватися при зворотному асемблюванні. Проте витягання з MSIL початкових текстів шляхом дизасемблювання навряд чи має сенс оскільки імена локальних змінних, констант і параметрів зберігаються лише в версії, що налагоджується.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: