Microsoft CCI - ресурсы, ссылки для написания компиляторов
Некоторое время назад я работал над компилятором, я использовал System.Reflection
генерировать код (IL) из моего AST. Теперь у меня есть идея для другого компилятора, над которым я бы хотел поработать (это будет еще один любимый проект, ничего, что будет использоваться в рабочем коде, по крайней мере, не сейчас).
Как вы знаете, у домашних проектов есть одно большое преимущество перед рабочим кодом: вы можете экспериментировать и терпеть неудачу. Итак, я решил попробовать написать компилятор, используя CCI Microsoft.
Единственная полезная ссылка, которую я нашел, - это примерный компилятор базового языка (который является частью CCI в codeplex), но я бы предпочел иметь некоторые другие ресурсы, например учебники, книги, статьи, где я мог бы найти больше информации, кроме изучения кода (который не всегда лучший метод для изучения чего-либо, когда вы видите решение, но вы не знаете, какие у вас есть альтернативы или почему такой код работает).
Итак: есть ли у вас какие-либо ресурсы (учебные пособия, книги) о CCI, в контексте написания компиляторов и обработки AST?
1 ответ
Для начала я добавлю несколько ссылок для тех, кто не знаком с CCI:
- Проект CCI-AST для генерации и компиляции абстрактных синтаксических деревьев.
- Проект CCI-Metadata для чтения / записи метаданных сборок clr, поддерживает также чтение / запись pdb.
- Проект CCI-Samples содержит небольшой базовый компилятор, о котором я говорил в первом посте.
- Lang.Net презентация о CCI, немного "почему и как?"
- VCC - параллельный c-компилятор, поверх CCI. Я еще не копался в этом, но я ожидаю, что это будет еще один большой проект, без каких-либо объяснений, не очень хороший для обучения конструированию компиляторов с самого начала (кроме этого, он в основном написан на F#).