Скомпилирует ли Objective-C собственный код или байт-код?
В OS X выполняется Objective-C для компиляции собственного кода или байтового кода?
Можно ли скомпилировать программы Objective-C в Linux?
Ответ 1
Objective-C скомпилирован в собственный код с помощью GCC или LLVM [*]. Вы можете скомпилировать ObjC-программы в Linux (общий GCC будет с радостью поддерживать ObjC, хотя он использует другую библиотеку времени выполнения, чем любой из Apple). Для кросс-платформенного API, аналогичного Cocoa (т.е. Полученного из Cocoa), который с радостью будет работать на Linux и позволит вам переносить некоторый код между OS X и Linux, посмотрите GNUstep: http://www.gnustep.org
[*] На самом деле LLVM внутренне компилирует Objective-C во внутреннее представление битового кода, а затем код для целевой машины, поэтому, возможно, ответ "оба"...
Ответ 2
Это родной.
Существует GNUstep, в котором реализована версия OpenXT NeXT с открытым исходным кодом, написанная в Objective-C. Их реализация API Cocoa не является прямым совпадением, поэтому прямая компиляция без портирования невозможна.
Ответ 3
Да, Objective-C компилируется в машинный код.
Objective-C существуют компиляторы для Linux, но Cocoa - это технология только для OS X. Я слышал о открытой замене под названием GNUstep, но не знаю об этом.
Ответ 4
Objective-C - это вариант C. Он компилируется в собственный код.