En OS X, ¿Objective-C se compila con código nativo o código de bytes?¿Obtiene Objective-C el código nativo o el código de bytes?
¿Pueden compilarse los programas Objective-C en Linux?
En OS X, ¿Objective-C se compila con código nativo o código de bytes?¿Obtiene Objective-C el código nativo o el código de bytes?
¿Pueden compilarse los programas Objective-C en Linux?
Objective-C se compila en código nativo mediante GCC o LLVM [*]. Puede compilar programas ObjC en Linux (el GCC genérico apoyará felizmente ObjC, aunque utiliza una biblioteca de tiempo de ejecución diferente a cualquiera de las de Apple). Para una API multiplataforma similar a Cocoa (es decir, derivada de Cocoa) que funcionará felizmente en Linux y le permitirá exportar código entre OS X y Linux, consulte GNUstep: http://www.gnustep.org
[*] De hecho, LLVM internamente compila Objective-C a una representación interna de código de bits, luego codifica para la máquina de destino, por lo que quizás la respuesta sea "both" ...
Para aclarar, para 'LLVM', lea 'GCC usando el servidor de LLVM'. LLVM por sí solo no es un compilador sino un generador de código de máquina de fondo. –
@Mike buena aclaración, gracias. –
Apple está trabajando en clang, un front-end para LLVM; GCC no se utiliza en absoluto en esta ruta. Sin embargo, todavía no está listo para el uso de producción. – ephemient
Objective-C es una variante de C. Se compila con código nativo.
Tenga en cuenta que esto permite cosas deliciosamente sucias, como el uso de códigos C o C++ desnudos en el medio de los programas de Objective-C. –
Sí, Objective-C compila el código de máquina.
Existen compiladores Objective-C para Linux, pero Cocoa es una tecnología OS X-only. He oído hablar de un reemplazo abierto llamado GNUstep, pero no sé mucho al respecto.
Solía trabajar como desarrollador de GNUstep, todavía tengo la bandera de confirmación de SVN pero no lo he hecho en mucho tiempo. Es un sistema agradable y proporciona una gran cantidad de compatibilidad con Cocoa, pero te equivocarías si pensaras que puedes tomar una aplicación Mac arbitraria y escribir 'make'. –
Es nativa.
Hay GNUstep que es una implementación de código abierto de la especificación NeXT OpenStep escrita en Objective-C. Su implementación de Cocoa API no es una coincidencia directa, por lo que no es posible una compilación directa sin portar.
Para dar una buena actualización 7 años después; GNUStep hace un muy buen trabajo al reflejar OpenStep/Cocoa en este momento. – Qix
Si alguna vez "entra" demasiado lejos, verá que se está ejecutando la interpretación del ensamblado del código máquina. –