XCode 3.2.1 ЛЯЗГА GCC и LLVM demystification

Можно использовать отражение для доступа к частному Assembly. _GetReferencedAssemblies() .

, Хотя, метод мог изменение в будущей версии платформы.NET, не кажется, что likely— ASP.NET в большой степени зависит от него, хотя возможно, что они могли переместить его от mscorlib до System.Web, который является единственным блоком, о котором я знаю от того, где метод упомянут.

39
задан slf 11 October 2009 в 16:43
поделиться

1 ответ

В двух словах:

Компиляторы в основном разделены на две части. Один из них - это интерфейс, который содержит синтаксический анализатор и семантический анализ для языка программирования. Интерфейс создает некое промежуточное представление вашего кода. Затем есть бэкэнд, который берет материал, созданный интерфейсом, оптимизирует его и, в конечном итоге, генерирует ассемблерный код.

  • GCC : хорошо известный компилятор, содержит как интерфейс для разных языков, так и бэкенд для многих процессоров. архитектуры
  • LLVM : набор серверных частей для различных архитектур (и других низкоуровневых вещей)
  • clang : новый интерфейс для C, Objective-C и C ++; использует серверную часть LLVM. Вы получите более читаемые ошибки и предупреждения от вашего компилятора и сократите время компиляции. Вы также можете столкнуться с несовместимостью или ошибками; clang - очень молодой проект.
  • LLVM-GCC: интерфейс GCC с серверной частью LLVM. Внутренняя часть LLVM быстрее, чем GCC.

Поддержка clang (Objective-) C ++ далека от завершения, поэтому он вызывает llvm-gcc, когда встречает исходный файл C ++. Он также содержит статический анализатор, который теперь интегрирован в Xcode. Некоторые люди говорят, что серверная часть LLVM генерирует лучший код, чем GCC, но ваш опыт может отличаться. LLVM также поддерживает оптимизацию времени компоновки (которую вы можете включить в настройках проекта Xcode). Они могут производить более быстрый код.

Apple хочет заменить GCC на clang в будущем, потому что у них есть политика против лицензионного кода GPLv3 (GCC 4.2 - последняя версия, лицензированная по GPLv2).

Серверная часть s работает быстрее, чем GCC.

Поддержка clang (Objective-) C ++ далека от завершения, поэтому она вызывает llvm-gcc, когда встречает исходный файл C ++. Он также содержит статический анализатор, который теперь интегрирован в Xcode. Некоторые люди говорят, что серверная часть LLVM генерирует лучший код, чем GCC, но ваш опыт может отличаться. LLVM также поддерживает оптимизацию времени компоновки (которую вы можете включить в настройках проекта Xcode). Они могут производить более быстрый код.

Apple хочет заменить GCC на clang в будущем, потому что у них есть политика против лицензионного кода GPLv3 (GCC 4.2 - последняя версия, которая лицензируется по GPLv2).

Серверная часть s работает быстрее, чем GCC.

Поддержка clang (Objective-) C ++ далека от завершения, поэтому она вызывает llvm-gcc, когда встречает исходный файл C ++. Он также содержит статический анализатор, который теперь интегрирован в Xcode. Некоторые люди говорят, что серверная часть LLVM генерирует лучший код, чем GCC, но ваш опыт может отличаться. LLVM также поддерживает оптимизацию времени компоновки (которую вы можете включить в настройках проекта Xcode). Они могут производить более быстрый код.

Apple хочет заменить GCC на clang в будущем, потому что у них есть политика против лицензионного кода GPLv3 (GCC 4.2 - последняя версия, которая лицензируется по GPLv2).

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

Apple хочет заменить GCC на clang в будущем, потому что у них есть политика против лицензионного кода GPLv3 (GCC 4.2 - последняя версия, лицензированная по GPLv2).

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

Apple хочет заменить GCC на clang в будущем, потому что у них есть политика против лицензионного кода GPLv3 (GCC 4.2 - последняя версия, которая лицензируется по GPLv2).

53
ответ дан 27 November 2019 в 02:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: