Подтвердить что ты не робот

Является ли LLVM подходящим для параллельных языков?

Какие свойства LLVM делают его хорошим выбором для реализации (параллельного, параллельного, распределенного) -ориентированного языка, что делает его плохим?

4b9b3361

Ответ 1

LLVM называется LLVM (виртуальная машина низкого уровня) по уважительной причине. Он настолько низкоуровневый, что вы не привязаны к какой-либо определенной семантике для вашего исходного языка.

В LLVM есть несколько полезных вещей, которые упрощают компиляцию некоторых параллельных языков - например, переходы на произвольные блоки: http://llvm.org/docs/LangRef.html#blockaddress p >

И LLVM не подразумевает каких-либо конкретных свойств времени выполнения, не вызывает какой-либо конкретной реализации GC. Вы можете построить все, что захотите, поверх него.

Ответ 2

Для некоторых практических примеров в этом пространстве см. http://code.google.com/p/gpuocelot/. Это позволяет Cuda-код многозадачности на x86.