Java语言规范或C ++标准的Objective-C等效项是什么?
是这个吗?
http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html?
(我只是在寻找一份(官方的)权威文档,该文档将解释该语言的精妙之处。我现在暂时跳过原因:)
您链接到的文档的附录A是对所有语言功能的描述,这是我们最接近的规范(附录B以前是语法规范,但显然已从更高版本的规范中删除了)。文献)。
从未有过Objective-C的标准化,而且它始终处于单一供应商的控制之下-最初是StepStone,然后是NeXT Computer许可它(并最终购买了IP),最后苹果使用了NeXT Software。我希望苹果方面没有动力去进行繁琐的标准化过程,尤其是因为没有人指责ObjC是可以减轻标准化工作的反竞争平台。
空无一人。您提供的链接是唯一的"官方"文档,它本质上是散文描述,而不是严格的语言规范。 Apple员工建议这对于大多数目的已经足够了,如果您需要更正式的信息,则应提交错误报告(!)。可悲的是,开玩笑的是Objective-C标准是由编译器能够编译的任何东西定义的。
许多人认为Objective-C是C的"严格超集"或"超集"。恕我直言,对于"经典" Objective-C(或Objective-C 1.0),我认为这是一个真实的陈述。特别是,我不知道没有任何Object-C语言添加项映射到等效的"普通C"语句。从本质上讲,这意味着Objective-C的添加是纯语法糖,并且人们可以有效地使用C标准来推断出坚韧不拔。我不认为启用GC的Objective-C 2.0完全是这样。这是因为指向GC管理的内存的指针需要特别处理(编译器必须根据指针的具体情况插入各种障碍)。由于GC指针类型限定符(例如
时不时出现的另一个问题是C语言相对于Objective-C语言持续发展。 Objective-C可以追溯到1980年代中期,这是ANSI-C之前的标准时间。考虑以下代码片段:
NSMutableArray *mutableArray = [NSMutableArray array];
NSArray *array = mutableArray;
这是该语言的正式散文描述所定义的合法的Objective-C代码。这也是面向对象编程背后的主要概念之一。但是,当从" C99的严格超集"的角度考虑这些陈述时,就会遇到一个巨大的问题。特别是,这违反了C99的
(短码网-duanma.net)
其他资源包括:
《 Objective-C语言和GNUstep基本库编程手册》。
NeXT开发人员库
苹果的文件是关于您将获得的最好的文件。与许多其他语言一样,Objective-C也没有正式的标准或规范。相反,它主要由其规范的实现来描述。
Apple(现在)使用llvm.org项目的clang。
在此上下文中定义了一些语言元素
例如Objective-C文字-> http://clang.llvm.org/docs/ObjectiveCLiterals.html
但是我没有找到所有元素的清晰概述。
- - 更新 -
Apple clang的来源可在此处获得(作为开源):
http://opensource.apple.com/source/clang/
以上就是短码网小编为大家整理的《相当于Java语言规范或C ++标准的Objective-C?》相关内容,希望大家喜欢。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将联系本站反馈,一经查实,立即处理!
《相当于Java语言规范或C ++标准的Objective-C?》文档下载仅供参考学习,下载后请在24小时内删除。
转载注明出处:https://www.duanma.net/article/1f47e046515.html