本文へ移動

Objective-C(プログラミング言語)

Objective-Cは、C言語に動的ランタイムのメッセージングとオブジェクト指向機能を加えた汎用プログラミング言語です。macOS・iOSアプリ開発で広く使われ、SwiftやC/C++と連携できます。

Objective-Cは、C言語にオブジェクト指向の機能と動的ランタイムを加えた、汎用のオブジェクト指向プログラミング言語です。歴史的には、macOSやiOSなどのAppleプラットフォーム向けアプリケーションおよびフレームワークの構築における主要言語でした。Cの構文とSmalltalk風のメッセージ送信を組み合わせた、Cのスーパーセットとして説明されることが一般的です。

主な特徴

  • 言語モデル:Objective-CはCを拡張した言語であるため、CのコードやライブラリをObjective-Cのソースから直接利用できます。
  • メッセージングとランタイム:メソッドは純粋な関数呼び出しではなく、メッセージ送信方式で呼び出されます。また、多くの動作はObjective-Cランタイムライブラリによって実行時に解決されます。
  • 代表的な構文要素:クラスには@interfaceと@implementationを使用し、動的型付けのオブジェクトポインタにはid、メソッドの識別子にはセレクタ(SEL)、宣言されたアクセサには@propertyを用います。
  • 現代的な機能:ブロック(クロージャ)、既存クラスにメソッドを追加するカテゴリ、インターフェースに似たプロトコル、および現在のツールチェーンにおけるARCなどの自動メモリ管理の選択肢をサポートしています。

起源と発展

Objective-Cは1980年代初頭に作られ、NeXTSTEPで採用された後、AppleによるNeXT買収を経てAppleの開発者エコシステムで選ばれる言語となり、注目を集めました。数十年にわたり、コンパイラとランタイムの改良、ツールチェーンの更新を通じて進化してきました。2010年代にはAppleが現代的な代替言語としてSwiftを導入しましたが、Objective-Cは既存プロジェクトや低レベルのシステムコードで引き続き広く利用されています。

Objective-CはCの上に薄い層として構築されているため、C APIへの直接アクセスが必要な場面や、レガシーコードとの相互運用で頻繁に使われます。ランタイム指向の設計により、動的メソッド解決、イントロスペクション、メッセージ転送といったパターンを利用できます。これらは、純粋に静的ディスパッチを行う言語では再現がより困難です。

プラットフォームを初めて扱う開発者にとって、Objective-Cは動的ディスパッチと軽量なランタイム拡張性を重視する点で、新しい言語と対照的です。Swiftと併せて学習することも、Swiftへブリッジすることもでき、多くのコードベースでは両言語を混在させ、Appleのツールチェーンが提供する相互運用機能を利用しています。言語とエコシステムについてはObjective-Cのリソース、AppleプラットフォームのガイドについてはAppleプラットフォームを参照してください。

関連項目

著者

AlegsaOnline.com Objective-C(プログラミング言語)

URL: https://ja.alegsaonline.com/art/71776

共有