LINUX.ORG.RU

История изменений

Исправление Artsi0m, (текущая версия) :

Я не понимаю, почему не использовать просто компиляцию через Си или Си++

Потому что специально спроектированный LLVM IR или MLIR в качестве IR подходят лучше чем ЯП, но если тебе интересно, то есть некоторые языки, например Nim, которые сначала транслируются в Си.

Оптимизации сделает компилятор Си

Ему для этого неплохо было бы какой-то свой IR тоже иметь просто.

А во вторых, на некоторых языках можно сделать вещи, которые нормально оптимизируются только в случае использования IR.

Я, например, с трудом могу представить, что Option тип будет нормально оптимизироваться при трансляции в сишку, а не в IR.

Или например что какой-нибудь lambda folding упомянутый в книжке let over lambda будет при трансляции в Си нормально работать.

Исходная версия Artsi0m, :

Я не понимаю, почему не использовать просто компиляцию через Си или Си++

Потому что специально спроектированный LLVM IR или MLIR в качестве IR подходят лучше чем ЯП, но если тебе интересно, то есть некоторые языки, например Nim, которые сначала транслируются в Си.

Оптимизации сделает компилятор Си

Ему для этого неплохо было бы какой-то свой IR тоже иметь просто.

А во вторых, на некоторых языках можно сделать вещи, которые нормально оптимизируются только в случае использования IR.

Я, например, с трудом могу представить, что Option тип будет нормально оптимизироваться при трансляции в сишку, а не в IR.

Или например какой-нибудь lambda folding упомянутый в книжке let over lambda будет при трансляции в Си нормально работать.