Microsoft CCI - ресурсы, ссылки для написания компиляторов

Некоторое время назад я работал над компилятором, я использовал System.Reflection генерировать код (IL) из моего AST. Теперь у меня есть идея для другого компилятора, над которым я бы хотел поработать (это будет еще один любимый проект, ничего, что будет использоваться в рабочем коде, по крайней мере, не сейчас).

Как вы знаете, у домашних проектов есть одно большое преимущество перед рабочим кодом: вы можете экспериментировать и терпеть неудачу. Итак, я решил попробовать написать компилятор, используя CCI Microsoft.

Единственная полезная ссылка, которую я нашел, - это примерный компилятор базового языка (который является частью CCI в codeplex), но я бы предпочел иметь некоторые другие ресурсы, например учебники, книги, статьи, где я мог бы найти больше информации, кроме изучения кода (который не всегда лучший метод для изучения чего-либо, когда вы видите решение, но вы не знаете, какие у вас есть альтернативы или почему такой код работает).

Итак: есть ли у вас какие-либо ресурсы (учебные пособия, книги) о CCI, в контексте написания компиляторов и обработки AST?

1 ответ

Для начала я добавлю несколько ссылок для тех, кто не знаком с CCI:

  1. Проект CCI-AST для генерации и компиляции абстрактных синтаксических деревьев.
  2. Проект CCI-Metadata для чтения / записи метаданных сборок clr, поддерживает также чтение / запись pdb.
  3. Проект CCI-Samples содержит небольшой базовый компилятор, о котором я говорил в первом посте.
  4. Lang.Net презентация о CCI, немного "почему и как?"
  5. VCC - параллельный c-компилятор, поверх CCI. Я еще не копался в этом, но я ожидаю, что это будет еще один большой проект, без каких-либо объяснений, не очень хороший для обучения конструированию компиляторов с самого начала (кроме этого, он в основном написан на F#).
Другие вопросы по тегам