相当于Java语言规范或C ++标准的Objective-C?

更新时间:2024-04-26 下载TXT文档 下载Word文档

Java语言规范或C ++标准的Objective-C等效项是什么?

是这个吗?
http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html?

(我只是在寻找一份(官方的)权威文档,该文档将解释该语言的精妙之处。我现在暂时跳过原因:)

  • stackoverflow.com/questions/10906767/

您链接到的文档的附录A是对所有语言功能的描述,这是我们最接近的规范(附录B以前是语法规范,但显然已从更高版本的规范中删除了)。文献)。

从未有过Objective-C的标准化,而且它始终处于单一供应商的控制之下-最初是StepStone,然后是NeXT Computer许可它(并最终购买了IP),最后苹果使用了NeXT Software。我希望苹果方面没有动力去进行繁琐的标准化过程,尤其是因为没有人指责ObjC是可以减轻标准化工作的反竞争平台。

  • 附录A是我想要的。 谢谢。
  • @porneL:我不相信你,所以我看了看。 异常和@synchronize在附录中,协议也在附录中。 查看"编译器指令"部分。
  • 好吧,那算了。 我找到了具有它的旧版本的Apple文档(developer.apple.com/legacy/mac/library/documentation/Cocoa/)[第10次编辑:我在此评论中撰写博客;)]

空无一人。您提供的链接是唯一的"官方"文档,它本质上是散文描述,而不是严格的语言规范。 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指针类型限定符(例如__strong)在gcc内部实现为__attribute__(()),因此,根据C99标准,void *p;void __strong *p;similarly qualified pointers。这可能引起的问题,甚至导致编写确定性操作的程序的能力,都是不言自明的(请咨询您当地的语言律师或编译器作者,以获取更多信息)。

时不时出现的另一个问题是C语言相对于Objective-C语言持续发展。 Objective-C可以追溯到1980年代中期,这是ANSI-C之前的标准时间。考虑以下代码片段:

NSMutableArray *mutableArray = [NSMutableArray array];
NSArray *array = mutableArray;

这是该语言的正式散文描述所定义的合法的Objective-C代码。这也是面向对象编程背后的主要概念之一。但是,当从" C99的严格超集"的角度考虑这些陈述时,就会遇到一个巨大的问题。特别是,这违反了C99的strict aliasing rules。标准等级的语言规范将有助于阐明此类冲突的处理方式和行为。不幸的是,由于不存在此类文档,因此可能会对此类细节进行大量辩论,最终会导致编译器中的错误。这导致gcc中的错误一直追溯到3.0版(gcc错误#39753)。

(短码网-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

回到顶部