Ответ 1
Компилятор F # записывается в F #. Исходный код доступен.
Он был первоначально загружен много лет назад, используя OCaml, я считаю (и, возможно, немного С++). (Существует еще нетривиальное подмножество F #, которое перекрестно компилируется с OCaml, хотя исходная база компилятора F # уже давно расходится с этим.)
Текущая реализация всегда использует LKG (последний-хорошо-хороший) набор двоичных файлов (.NET DLL и EXE) для самозагрузки при создании из исходного кода.