Подтвердить что ты не робот

Каковы наилучшие ресурсы для обучения CIL (MSIL)

Я эксперт по программированию С# 3/.NET 3.5, который хочет начать выполнение некоторого исполняемого кода, используя System.Reflection.Emit.DynamicMethod. Мне бы хотелось перейти на следующий уровень, познакомившись с IL.

Любые указатели (каламбур)?

4b9b3361

Ответ 1

Лучший способ узнать это - написать что-то, что вы понимаете, а затем посмотреть на созданный им ИЛ. Кроме того, в зависимости от того, что вы делаете, вы можете использовать деревья выражений вместо испускания IL, а затем, когда вы скомпилируете деревья выражений, эти умные ребята из microsoft создают IL для ya.

Ответ 2

В дополнение к Даррену, я предлагаю выбрать или изобретать игрушечный язык и написать для него простой компилятор. Выберите что-то, что требует небольшого разбора, например BF или языка на основе стека, и вы обнаружите, что писать компилятор на самом деле проще, чем кажется.

Ответ 3

.NET Reflector отлично подходит для изучения IL, созданного С#/VB.NET.

Это замечательный инструмент для обучения.

Ответ 4

Спецификация ECMA 335 свободно доступна для загрузки здесь: http://www.ecma-international.org/publications/standards/Ecma-335.htm

Раздел III является наиболее актуальным для работы с MSIL, но я настоятельно рекомендую раздел я для любого .NET-разработчика, поскольку он значительно упростит понимание платформы.

Ответ 5

Эксперт .NET 2.0 IL Assembler. Хотя эта книга может быть немного датирована сейчас, это был прекрасный обзор для меня.