Кто даст хороший совет (или хорошую ссылку), который бы помог в создании компилятора для .NET-платформы. Ранее я уже делал компилер для платформы Win32, но теперь делаю для .NET и столкнулся со следующими проблемами: раннее связывание на уровне семантического анализа, необходимое для проверки типов не клеится

В случае с Win32 всегда использовалось позднее связывание, т.к. использовалась обычная линковка, а сверка используемых DLL-функций происходила во время выполнения. Для предоставления информации о метаданных что лучше использовать: отражение (Reflection) или работать с двоичным файлом напрямую (например, разодрав его на части, используя спецификацию PE формата)
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
"Ранее я уже делал компилер для платформы Win32"
С какого языка и что значит Win32?
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Неважно с какого языка. А под Win32 — это значит, что компилер генерил Native код (т.е. машинные инструкции).
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Более привычно: машинные инструкции — это x86, а не Win32
Самому тоже надо делать "Компилятор для .NET"
Сейчас смотрю:
— CSharpCodeProvider
— #Develop
— R#
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
x86 — это архитектура процессора и соответствующие ей машинные инструкции. Win32 — эта среда выполнения для Native приложений, в которую входит загрузчик exe'шиков и задача которого распотрошить PE-файл и разместить код и данные из его секций в память и выдавать инструкции процессору на выполнение. Win32 это среда выполнение Native-приложений, также как CLR — это среда выполнения Managed-кода.
А что касается CSharpCodeProvider, то я весь CodeDOM перерыл и он не решает проблемы, связанной с поздним связыванием, вернее решает, но на позднем этапе, т.е. ошибка обнаруживается при попытке выполнить JIT'ом код с неверными метаданными
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Нужно руками поднять свою сборку и посмотреть на что она ссылается. Разрешить все ссылки и с Богом.
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение