Скомпилирует ли 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. Он компилируется в собственный код.