Ответ 1
LLVM - это несколько вещей - вид виртуальной машины/оптимизирующий компилятор в сочетании с разными интерфейсами, которые принимают входные данные в конкретном язык и выводить результат на промежуточном языке. Этот промежуточный вывод может быть запущен с виртуальной машиной или может использоваться для создания автономного исполняемого файла.
Проблема с concurrency заключается в том, что, хотя она долгое время использовалась в научных вычислениях, она совсем недавно стала распространенной в потребительских приложениях. Поэтому, хотя широко известно, как программировать научную программу расчета для достижения высокой производительности, совершенно другое дело - написать почтовый пользовательский агент/текстовый процессор, который может быть хорош в concurrency. Кроме того, большинство современных ОС разрабатывались с учетом одного процессора, и они не могут быть полностью подготовлены для многоядерных процессоров.
Преимущество LLVM по отношению к concurrency заключается в том, что у вас есть промежуточный вывод, и если в будущем есть прогресс в concurrency, то, обновив ваш интерпретатор, вы мгновенно получите эти преимущества во всех скомпилированных LLVM программах, Это не так просто, если вы собрали отдельный исполняемый файл. Поэтому LLVM не решает проблему concurrency как таковую, но оставляет открытую дверь для будущих улучшений.
Уверены, что для аппаратных средств, таких как квантовые компьютеры, генетические компьютеры и т.д., существует больше возможных улучшений. Но мы должны ждать, пока они станут реальностью.