Objective-Cとは

【オブジェクティブ シー/Objective-C】

プログラミング言語の一種で、
C言語をベースにSmalltalk型のオブジェクト指向機能を持たせた上位互換言語です。

Objective-CはNeXT、Mac OS XのOSに標準付属する公式開発言語です。
OS Xのパッケージ版に開発環境がDVDで付属するほか、
ユーザ登録をすれば無償でダウンロードできます(Xcodeの項目参照)。
現在では主にアップルのMac OS XやiOS上で動作するアプリケーションの開発で利用されています。

概要
Objective-CはCを拡張してオブジェクト指向を可能にしたというよりは、
Cで書かれたオブジェクト指向システムを制御しやすいようにマクロ的な拡張を施した言語です。
したがって、「better C」に進んだC++とは異なり、
「C & Object System」という考え方であり、
ある意味2つの言語が混在した状態にあります。

関数(メソッド)の定義と呼び出し方が独特であるため、
Objective-Cのコードは一見C++以上にCとはかけ離れた独特の記述となります。
しかし、言語仕様はCの完全上位互換であり、
if/for/whileなどの制御文や、intなどのスカラー型、
関数記法、宣言・代入といった基本的な文法はCに準拠します。

一方オブジェクトシステムはSmalltalkの概念をほぼそのまま借用したもので、
動的型のクラス型オブジェクト指向ランタイムを持ち、
メッセージパッシングにより動作します。
このことからしばしば「インラインでCの書けるSmalltalk」
または「インラインでSmalltalkの書けるC」などと呼ばれます。
Cとは異なるObjective-Cに特有の部分は、
@で始まるコンパイラディレクティブで明示され、
オブジェクトのメソッド呼び出しは[]で囲まれたメッセージ式で行われます。

最大の特徴はオブジェクトシステムが完全に動的という点で、
実行時のクラス拡張、オブジェクト汎用型idの導入により型によらない動的配列・辞書など、
インタプリタに近い記述力をもつことです。

実際にコードそのものはネイティブコンパイルされるものの、
動作原理はほぼインタプリタに近く、コンパイラ型言語としてはまれな柔軟性を発揮します。

したがって、C側から見れば一種のスクリプトインタプリタが乗っているような状態であり、
逆にオブジェクトシステムからはOS機能や膨大なC言語資源を
直接利用可能なインターフェースが備わっているといえます。

また仮想マシンを持たずに済むため、取り回しも良いといえます。
パフォーマンスはJavaのような中間コード型言語よりも良好で、
CやC++のようなネイティブコンパイル言語には劣るとされています。

Objective-C特有のこの形態は双方のメリット・デメリットが明確で、
実際的な使い勝手が非常に優れています。
この特性に着目したのがNEXTSTEPで、
UNIXとの互換性と先進的なオブジェクト指向環境の両立に成功し、
その後のOS設計に大きな影響を与えることとなりました。

後続言語への影響としては、
特にJavaの基礎設計にその姿を見ることができます(SunがOPENSTEPに関わっていたことと関係がある)。

無料説明会参加 資料請求