Гибкие определения конвейера компилятора - PullRequest
3 голосов
/ 15 сентября 2008

Я разрабатываю платформу компилятора для .NET и хочу гибкий способ определения конвейеров. Я рассмотрел следующие варианты:

  • WWF
  • Пользовательское описание конвейера XML
  • Пользовательское описание конвейера в коде (используя макросы Nemerle для определения синтаксиса для него)
  • Другое кодовое описание

Требования:

  • Не должен зависеть от функциональности только в более поздних версиях .NET (3+), поскольку он предназначен для кроссплатформенности и должен использоваться поверх управляемых ядер, что означает полуограниченные функциональные возможности .NET.
  • Необходимо разрешить условное построение конвейера, чтобы вы могли указать, что определенные параметры командной строки будут соответствовать определенным элементам и порядкам.

WWF был бы хорош, но не соответствует первому требованию. Другие будут работать, но они не оптимальны из-за выполняемой работы.

Кто-нибудь знает решение, которое позволит достичь этих целей практически без изменений?

Ответы [ 2 ]

1 голос
/ 15 сентября 2008

Если вы знаете Ruby, то решением является написание простого внутреннего DSL, который может генерировать любые типы данных конвейера и код чтения / записи, который вам нужен. Генерация XML - это быстрый способ начать работу. При необходимости вы всегда можете изменить DSL для создания другого формата позже.

Возможно, вы также захотите взглянуть на проект Microsoft Phoenix для вдохновения.

0 голосов
/ 08 октября 2008

Я знаю Boo пусть вам будет весело с компилятором, не уверен, что он работает так, как вы хотите.

...