Objective-C是一种通用、高级、面向对象的编程语言。它扩展了标准的ANSI C编程语言,当前主要支持的编译器有GCC和Clang。 Objective-C的商标权属于苹果公司,也是这个编程语言的主要开发者。

Objective-C 是一种通用、高级、面向对象的编程语言。它扩展了标准的 ANSI C 编程语言,将 Smalltalk 式的消息传递机制加入到 ANSI C 中。当前主要支持的编译器有 GCC 和 Clang。

Objective-C

Objective-C 的商标权属于苹果公司,苹果公司也是这个编程语言的主要开发者。苹果在开发 NeXTSTEP 操作系统时使用了 Objective-C,之后被 OS X 和 iOS 继承下来。现在 Objective-C 与 Swift 是 OS X 和 iOS 操作系统、及与其相关的 API、Cocoa 和 Cocoa Touch 的主要编程语言。

Objective-C 主要由 Stepstone 公司的布莱德·考克斯(Brad Cox)和 Tom Love 在 1980 年代发明。

1981 年 Brad Cox 和 Tom Love 还在 ITT 公司技术中心任职时,接触到了 SmallTalk 语言。Cox 当时对软件设计和开发问题非常感兴趣,他很快地意识到 SmallTalk 语言 在系统工程构建中具有无法估量的价值,但同时他和 Tom Love 也明白,当前 ITT 公司的电子通信工程相关技术中,C 语言被放在很重要的位置。

于是 Cox 撰写了一个 C 语言的预处理器,打算使 C 语言具备些许 Smalltalk 的本领。Cox 很快地实现了一个可用的 C 语言扩展,此即为 Objective-C 语言的前身。到了 1983 年,Cox 与 Love 合伙成立了 Productivity Products International(PPI)公司,将 Objective-C 及其相关库商品化贩售,并在之后将公司改名为 StepStone。1986 年,Cox 出版了一本关于 Objective-C 的重要著作《Object-Oriented Programming, An Evolutionary Approach》,书内详述了 Objective-C 的种种设计理念。

1988 年,斯蒂夫·乔布斯(Steve Jobs)离开苹果公司后成立了 NeXT Computer 公司,NeXT 公司买下 Objective-C 语言的授权,并扩展了著名的开源编译器 GCC 使之支持 Objective-C 的编译,基于 Objective-C 开发了 AppKit 与 Foundation Kit 等库,作为 NeXTSTEP 的的用户界面与开发环境的基础。虽然 NeXT 工作站后来在市场上失败了,但 NeXT 上的软件工具却在业界中被广泛赞扬。这促使 NeXT 公司放弃硬件业务,转型为销售 NeXTStep(以及 OpenStep)平台为主的软件公司。

1992 年,自由软件基金会的 GNU 开发环境增加了对 Objective-C 的支持。1994 年,NeXT Computer 公司和 Sun Microsystem 联合发布了一个针对 NEXTSTEP 系统的标准典范,名为 OPENSTEP。OPENSTEP 在自由软件基金会的实现名称为 GNUstep。1996 年 12 月 20 日,苹果公司宣布收购 NeXT Software 公司,NEXTSTEP/OPENSTEP 环境成为苹果操作系统下一个主要发行版本 OS X 的基础。这个开发环境的版本被苹果公司称为 Cocoa。

2005 年,苹果计算机雇用了克里斯·拉特纳及 LLVM 开发团队,clang 及 LLVM 成为苹果公司在 GCC 之外的新编译器选择,在 Xcode 4.0 之后均采用 LLVM 作为默认的编译器。最新的 Modern Objective-C 特性也都率先在 Clang 上实现。

Objective-C 是非常“实际”的语言。它用一个很小的、用 C 写成的运行库,使得应用程序的大小增加很少,与此相比,大部分 OO 系统需要极大的运行时虚拟机来执行。ObjC 写成的程序通常不会比其源代码和库(通常无需包含在软件发行版本中)大太多,不会像 Smalltalk 系统,即使只是打开一个窗口也需要大量的容量。由于 Obj-C 的动态类型特征,Obj-C 不能对方法进行内联(inline)一类的优化,使得 Obj-C 的应用程序一般比类似的 C 或 C++程序更大。

Obj-C 可以在现存 C 编译器基础上实现(在 GCC 中,Obj-C 最初作为预处理器引入,后来作为模块存在),而不需要编写一个全新的编译器。这个特性使得 Obj-C 能利用大量现存的 C 代码、库、工具和编程思想等资源。现存 C 库可以用 Obj-C 包装器来提供一个 Obj-C 使用的 OO 风格界面包装。

0个人收藏 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • MacBook

    苹果笔记本电脑如何进行移动应用开发

    苹果笔记本电脑成为移动应用开发的强大工具,通过Xcode IDE和Swift编程语言,开发者可以创建创新的移动应用。从环境准备到界面设计、编码、测试和发布,本文详细介绍了使用苹果笔记本电脑进行移动应用开发的步骤。通过优化性能和遵循设计模式,开发者可以将创意变为现实,并在App Store上发布成功的应用。
  • MacBook

    macOS操作系统对于编程开发有何优势

    macOS操作系统在编程开发领域具有稳定性、集成开发工具、硬件一体化、Unix终端访问等优势。其广泛的开发社区、移动开发支持、安全性、用户界面友好性以及多语言支持,使其成为吸引开发者的理想选择。无论是桌面还是移动应用开发,macOS都为开发者提供了可靠且功能丰富的平台。
  • laptop

    哪个操作系统适合编程开发

    选择适合编程开发的操作系统需要考虑开发领域、编程语言、预算、工具支持和团队合作。Windows适合游戏开发,macOS适用于移动应用开发,Linux适合服务器端和嵌入式开发。操作系统优劣因个人需求而异,了解各系统特点是做出明智选择的关键。
  • Android 应用程序包 APK

    怎么把APK转化为苹果安装包

    分析Android应用程序功能和代码结构,学习Swift或Objective-C语言,创建新的iOS项目,将Android程序功能和代码结构移植到新项目,根据需要重写代码,用Xcode工具将iOS应用程序打包为IPA文件,进行测试修复错误。
  • Vscode

    Vscode主要用来编写什么

    Vscode主要用来编写c/c++,它是一个轻量级但功能强大的源代码编辑器,运行在桌面上,针对于编写现代Web和云应用的跨平台源代码编辑器,可用于C++、C#、Java、Python、PHP灯语言,和运行时(如.NET 和 Unity)。
  • SWIFT语言是什么

    SWIFT语言是什么

    Swift是一款易学易用的编程语言。而且它还是第一套具有与脚本语言同样的表现力和趣味性的系统编程语言。Swift的设计以安全为出发点,以避免各种常见的编程错误类别。