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

Как C - сравнить с LLVM?

Узнав немного о том, как работает LLVM, я очень рад тому, как можно создать переносимый низкоуровневый код и как модульная эта "вещь" построена.

Но я обнаружил сегодня существование C--, который, по-видимому, разделяет некоторые понятия с LLVM.

Итак, я ищу некоторую информацию, помогающую понять основные различия между этими двумя проектами... и почему они существуют.

Для меня LLVM немного похож на конечный швейцарский армейский нож для инфраструктуры компилятора, а C-- выглядит намного менее продвинутым.

4b9b3361

Ответ 1

Они отличаются тем, насколько выразительна система машинного типа низкого уровня.

LLVM машина довольно выразительна. С другой стороны, C-- машина ставит большую ответственность за язык интерфейса. Цитата из C-- FAQ:" просто, C-- не имеет типов высокого уровня --- он даже не отличает переменные с плавающей запятой от целочисленных переменных. Эта модель дает полный контроль над представлением и системой типов переднего конца "

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

Прагматично, LLVM имеет гораздо больше импульсов прямо сейчас. У этого есть JIT-компилятор, Apple использует его для 3D-конвейера, и люди используют его для подключиться к GCC и всевозможные странные и замечательные вещи. Кто-то назвал это "почти абсурдно легко работать с ".

С другой стороны C-- намного меньше и, вероятно, легче понять. (Я полагаю, что нормальный человек с некоторой преданностью может полностью понять его все).