由于Objective-C基本上是C的扩展,在编译为本机
代码之前,
代码是否会转换为纯C
代码?
如果是这样,转换是否发生在RAM上,或者编译器是否创建了包含磁盘上C代码的临时文件,C编译器还会将其编译为本机代码?
Objective-C语法是C语法的扩展并不意味着它不能拥有自己的编译器. C是相同的方式 – 它的语法与C兼容(大多数情况下,无论如何),但它有自己的一套工具. C,C和Objective-C的编译器可以重复使用彼此的部分进行预处理,语法分析和
代码生成,但不需要按顺序运行它们(例如,Objective-C ==> C ==>目标
代码).编译器也不再使用人类可读的汇编语言(很长一段时间也是如此).