Каковы наилучшие ресурсы для обучения CIL (MSIL)
Я эксперт по программированию С# 3/.NET 3.5, который хочет начать выполнение некоторого исполняемого кода, используя System.Reflection.Emit.DynamicMethod. Мне бы хотелось перейти на следующий уровень, познакомившись с IL.
Любые указатели (каламбур)?
Ответы
Ответ 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. Хотя эта книга может быть немного датирована сейчас, это был прекрасный обзор для меня.