Object Pascal

Object Pascalは、プログラミング言語Pascalを拡張し、オブジェクト指向プログラミングの概念を導入したものです。広義にはPascalオブジェクト指向拡張全般を指しますが、狭義にはDelphiFree Pascalで使用される言語仕様を指します。

歴史



Object Pascalの起源は1980年代に遡ります。当時、Appleの主要開発言語であったPascalに、オブジェクト指向の拡張が加えられました。Apple Lisaで利用されていたLisa Pascalを拡張したClascalが、Object Pascalの基礎となりました。このClascalが、Macintosh上のObject Pascalへと発展します。

Object Pascalは、MacintoshアプリケーションフレームワークであるMacAppをサポートするために不可欠な存在でした。開発環境であるMPW (Macintosh Programmer's Workshop) の一部として1986年に製品化され、AppleやMacintoshの主要開発言語の一つとして広く利用されました。

1990年にはボーランド社のTurbo Pascal 5.5にもObject Pascalの拡張が実装されました。Turbo VisionなどのCUIライブラリが付属し、Object Pascalの普及に貢献しました。これらの技術は後のDelphiとVCL (Visual Component Library) へと受け継がれていきます。

1995年、ボーランド社のDelphiが登場しました。Delphiは、Windows GUIアプリケーションの開発を効率化し、多くのプログラマーに利用されるようになりました。Delphiは、高速なネイティブバイナリを出力し、コンパイル速度も速いため、人気を博しました。

Delphi XE2以降では、VCLに加え、マルチプラットフォーム対応のFireMonkey (FMX) とクロスコンパイラが導入されました。Delphiで使用される言語は、Delphi 6まではObject Pascalと呼ばれていましたが、Delphi 7以降はDelphi言語と改称されました。

Delphiの開発部門は後にエンバカデロ・テクノロジーズに移管され、Appmethod登場後は再びObject Pascalと呼ばれるようになりました。また、Delphiに影響を受け、マイクロソフト.NET Frameworkを開発しました。.NETの主要言語であるC#は、Object Pascal、VCL、Delphiから影響を受けています。

ボーランドは、.NET用のObject Pascalコンパイラも開発していましたが、後にRemObjects社のOxygeneがDelphi Prismとして付属するようになりました。

オープンソースのObject Pascal実装としては、Free PascalやGNU Pascalがあります。Free Pascalは当初Turbo Pascalをベースに開発され、現在ではApple互換モードやDelphi互換モードも実装されています。また、Lazarusなどの統合開発環境ライブラリも開発されています。

Pascalからの拡張



Object Pascalは、カプセル化、継承、多態性というオブジェクト指向の三大要素をサポートしています。

クラス: Pascalのrecordを拡張したもので、変数(フィールド)や手続き・関数(メソッド)を持つことができます。プロパティを使用すると、フィールドへのアクセスを簡潔に記述できます。クラス名は 'T' で、フィールド名は 'F' で始めるのが慣例です。クラスはTObjectから暗黙的に派生します。

インターフェイス: C++とは異なり、多重継承はサポートしません。インターフェイスを実装することで多重継承をサポートします。インターフェイス名は 'I' で始めるのが慣例です。

継承: Object Pascalの継承機能はJavaに似ており、後にC#にも影響を与えました。

クラス参照型: C++などの言語に比べ、Object Pascalの優れた点として、クラス参照型のサポートが挙げられます。クラス自体を代入することができ、メタクラスとも呼ばれます。実行時型情報 (RTTI) によって実現されます。

例外: エラー処理機構として例外をサポートします。try...exceptとtry...finally構文があります。

言語としての特徴



Object Pascalは、簡潔な言語仕様を持ち、オブジェクト指向の学習に適しています。C++のような複雑な機能は持たないため、比較的学びやすいと言えます。しかし、近年導入されているジェネリクスやラムダ式をサポートしていませんでした。

Delphiでは、後から演算子のオーバーロード、ジェネリクス、無名メソッド、型推論可能なインライン変数宣言などが追加され、柔軟な記述が可能になっています。また、インライン関数による実行速度の強化も図られています。Delphi 2010ではRTTIが強化され、リフレクションをサポートするようになりました。

DelphiのVCLやFMXは、コンポーネントの集合体であり、視覚的にアプリケーションを開発できます。ユーザープログラマーがコンポーネントを作成し、開発環境に組み込むことが可能です。このため、「コンポーネント指向言語」と呼ばれることもあります。

関連項目



Pascal
Delphi
C#

外部リンク



Delphi Downloads - Delphi Architect Edition(30日評価版)のダウンロードページ
Delphi Community Edition - Delphi Community Edition(無償版)のダウンロードページ
Free Pascal - Free Pascal はオープンソースの Pascal コンパイラ。Object Pascal もサポートしている。
GNU Pascal - GNU Pascal はオープンソースの Pascal コンパイラ。Object Pascal も一部サポートしている。
* Lazarus - Lazarus は Free Pascal統合開発環境

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。