Описание моей проблемы - создать:
- C # parser
- создать дерево AST из проанализированного входного файла .cs
- создать CIL / представление байт-кода программы
- создание ВМ
- выполнение кода, хранящегося в виде "байт-кода" - заставить анализируемую программу работать
Так что в принципе мне нужно написать свой собственный язык со всеми "вещами" вокруг.
Я напишу пример программы, которую я хочу запустить.Я знаю, как создать C # парсер для обработки этой программы и составить дерево AST.
Я также нашел ссылку на CIL http://en.csharp -online.net / CIL_Instruction_Set , чтобы я мог сохранить свой ASTкак код CIL (надеюсь, не будет никаких проблем).Но мой вопрос: как я могу проверить этот CIL, прежде чем у меня будет моя виртуальная машина?Могу ли я использовать C # CLR?И как?
Как создать виртуальную машину, выполняющую инструкции CIL в C #?Могу ли я "заставить" программу на C # запускать инструкции CIL?
Верны ли мои идеи, шаги?Следует ли мне избегать записи AST в байт-код, используя инструкции CIL?
Мои идеи были вдохновлены .NET http://upload.wikimedia.org/wikipedia/commons/thumb/6/6f/CLR_diag.svg/400px-CLR_diag.svg.png
Спасибо за любые ответы, которые помогут мне найти правильный способ решения этой проблемы.проблема.
PS Мне нужно все реализовать самостоятельно
РЕДАКТИРОВАТЬ
Я нашел это: http://msdn.microsoft.com/en-us/magazine/cc136756.aspx
http://www.codeproject.com/Articles/3778/Introduction-to-IL-Assembly-Language
http://www.codeguru.com/csharp/.net/net_general/il/article.php/c4635#Array1
Это может решить мою проблему.Я попробую.