История изменений
Исправление 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 будет при трансляции в Си нормально работать.