flang компилятор доказывает, что программа не зациклится 0.6.2 GitHub

Из восьми целей печати важна только C, остальное отложено

flang печатает программу в восемь языков: C, Rust, Go, Java, C#, Python, Elixir, JavaScript. Выглядит как главная фича, но к цели языка отношения не имеет.

Цель C нужна ради самораскрутки: чтобы получить работающий компилятор, не имея ничего, кроме cc. Файл bootstrap/compiler_flang.c собирается обычным системным компилятором — это единственная внешняя зависимость, и она инструментальная, а не языковая. flang не надмножество C.

Владелец отложил явно и резко: JavaScript («пошёл нахер javascript»), остальные цели печати («мне похую на восемь целей»), интерпретаторы («потом займёмся»).

Как этим пользоваться. Прежде чем заводить работу — спросить, приближает ли она доказуемость. Если нет, не начинать. Это правило сэкономило больше времени, чем любая оптимизация.

Чем ограничено. Отложено ≠ выброшено: шесть генераторов на самом flang написаны и сверены побайтово, они просто не приоритет.

Связано: goal-of-the-language, four-pieces-of-javascript, our-own-machine-code-generator