Все ли программы Objective C конвертируются в код C? - PullRequest
7 голосов
/ 09 января 2012

Поскольку Objective-C в основном является расширением C, преобразуется ли код в чистый код C до его компиляции в собственный код?

Если это так, происходит ли преобразование в ОЗУ или компилятор создает временный файл, содержащий код C на диске, который затем компилируется компилятором C в собственный код?

Ответы [ 2 ]

8 голосов
/ 09 января 2012

То, что Objective-C синтаксис является расширением синтаксиса C, не означает, что он не может иметь свой собственный компилятор. C ++ работает аналогично - его синтаксис совместим с C (по большей части, во всяком случае), но у него есть собственный набор инструментов. Компиляторы для C, C ++ и Objective-C могут повторно использовать части друг друга для предварительной обработки, синтаксического анализа и генерации кода, но нет необходимости запускать их последовательно (например, Objective-C ==> C ==> Target code). Компиляторы больше не работают на понятном человеку языке ассемблера (это также имело место в течение очень долгого времени).

4 голосов
/ 09 января 2012

Нет, Objective-C компилируется в ассемблер напрямую (при условии GCC).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...