Причина, по которой я спрашиваю, состоит в том, что я изучаю F # и хотел бы участвовать в соревнованиях TopCoder. Тем не менее, F # не входит в список поддерживаемых языков. Но C # есть в списке (честно говоря, это касается почти всех онлайн-соревнований по кодированию, кроме Google Code Jam и Facebook Hacker cup).
Возможные обходные пути, о которых я могу подумать в данный момент:
1) найти переводчик, который может переводить исходный код F # непосредственно в C #
2) сначала скомпилировать код F # в исполняемый файл .net, а затем снова разобрать его на код C #
Минимальное требование состоит в том, что сгенерированный C # должен быть способен скомпилироваться в исполняемый .net исполняемый файл, предпочтительно как можно меньше внешних зависимостей.
Первый подход кажется маловероятным, быстрый поиск в Google ничего не значит.
Подход два выглядит более многообещающе, существуют .net дизассемблеры.
Я попробовал самый популярный - отражатель от Red Gate. Хотя он может прекрасно разбирать исполняемые файлы C #, у него, похоже, есть проблемы с исполняемыми файлами, скомпилированными из F #: он благополучно разбирается, но полученный код C # имеет некоторые специальные символы, такие как добавление начального знака $ к имени класса и другие странные вещи, поэтому не может быть скомпилировано. Я использовал Visual Studio 2010 Professional, последнюю бета-версию Reflector (бесплатно).
Я что-то здесь упускаю? Является ли это возможным?
Обновление:
Похоже, это все еще невозможно. Сейчас я вместо этого буду использовать C #.