Delphiは、 Object Pascalプログラミング言語のDelphi方言を使用する汎用プログラミング言語およびソフトウェア製品であり、デスクトップ、モバイル、Web、コンソールソフトウェアの迅速なアプリケーション開発のための統合開発環境(IDE)を提供します。 [3]現在、 Embarcadero Technologiesによって開発および保守されています。
Delphiのコンパイラは、 Microsoft Windows、macOS、iOS、Android、Linux(x64 )用のネイティブコードを生成します。[4] [5] [6]
Delphiには、コードエディタ、ビジュアルデザイナ、統合デバッガ、ソースコード管理コンポーネント、サードパーティ製プラグインのサポートが含まれています。コードエディタには、コードインサイト(コード補完)、エラーインサイト(リアルタイムエラーチェック)、リファクタリング機能が備わっています。ビジュアルフォームデザイナでは、純粋なWindows開発にはビジュアルコンポーネントライブラリ(VCL)を、クロスプラットフォーム開発にはFireMonkey (FMX)フレームワークのいずれかを選択できます。データベースサポートは重要な機能であり、FireDAC(データベースアクセスコンポーネント)によって提供されます。Delphiは、高速なコンパイル速度、ネイティブコード、そして開発者の生産性で知られています。[要出典]
Delphiは、もともとBorland社によってWindows向けの迅速なアプリケーション開発ツールとして、Turbo Pascalの後継として開発されました。Delphiは既存の言語に完全なオブジェクト指向プログラミング機能を追加し、ジェネリック、匿名メソッド、クロージャ、ネイティブコンポーネントオブジェクトモデル(COM)をサポートするまで進化しました。
DelphiとそのC++版であるC++Builderは相互運用性があり、RAD Studioという名称で共同販売されています。Professional、Enterprise、Architectの3つのエディションがあり、上位エディションでは機能が充実していますが、価格は高くなります。また、Professionalのほとんどの機能を備えた無料のCommunityエディションも提供されていますが、利用は低収益のユーザーや企業に限定されています。[7] [非一次資料が必要]
Delphiは、迅速なアプリケーション開発(RAD)をサポートします。主な機能は、ビジュアルデザイナーと、 Windows向けのVisual Component Library(VCL)とクロスプラットフォーム開発向けのFireMonkey (FMX)という2つのアプリケーションフレームワークです。
Delphiは、Turbo Pascalの後継として、Anders Hejlsberg氏がBorland(現IDERA)向けに開発したPascalベースのプログラミング言語Object Pascalを採用しています。Windows 、Linux、iOS、Androidなど、多くのプラットフォームへの ネイティブクロスコンパイルをサポートしています。
Microsoft Windows向け開発をより適切にサポートし、他のソフトウェア開発ツールで開発されたコードとの相互運用性を高めるため、Delphiは参照カウントクラス実装を備えたコンポーネントオブジェクトモデル(COM)の独立したインターフェースと、多くのサードパーティ製コンポーネントをサポートしています。インターフェース実装は、クラスのフィールドまたはプロパティに委譲できます。メッセージハンドラは、処理するメッセージの整数定数をクラスのメソッドにタグ付けすることで実装されます。 [要出典]
データベース接続は、VCL データベース対応およびデータベース アクセス コンポーネントを通じて広範囲にサポートされます。
それ以降のバージョンには、アップグレードおよび強化されたランタイム ライブラリ ルーチンが含まれており、その一部はコミュニティ グループFastCodeによって提供されています。
Delphiは、使いやすさを重視した、強く型付けされた 高水準プログラミング言語を採用しています。元々は、初期のObject Pascal言語をベースにしています。Pascalは当初、「当時知られていた基本構造を簡潔かつ論理的に表現するのに適した」汎用言語として開発され、「その実装は既存のFORTRANコンパイラと競合する効率性と競争力を備えていた」[8]ものの、低水準プログラミング機能やハードウェアへのアクセスは備えていませんでした。Turbo Pascalと、Delphiを含むその派生言語は、ハードウェアへのアクセスと低水準プログラミングをサポートし、アセンブリ言語や他の言語で記述されたコードを組み込む機能も備えています。Delphiのオブジェクト指向は、クラスベースおよびインターフェースベースのポリモーフィズムのみを特徴としています[9]。メタクラスは第一級オブジェクトです。オブジェクトは( Javaと同様に)オブジェクトへの参照であり、Delphiは暗黙的に参照解除するため、通常、オブジェクトへのポインタ用に手動でメモリを割り当てたり、他の言語で必要な同様の手法を使用したりする必要はありません。専用の参照カウント文字列型と、ヌル終端文字列型があります。
文字列は、関数ではなく「+」演算子を使って連結できます。専用の文字列型については、Delphiがプログラマの介入なしにメモリ管理を行います。Borland Developer Studio 2006以降には、メモリリークを検出する関数が用意されています。
Delphi には、統合 IDE が含まれています。Delphi 製品にはすべて、ランタイム ライブラリ (RTL) とビジュアル コンポーネント ライブラリ(VCL) が付属しており、そのソース コードの大部分も含まれています。IDE の機能強化や、その他の Delphi 関連の開発タスクを行うためのサードパーティ コンポーネント (完全なソース コードが付属している場合もあります) やツールも利用でき、一部は無償です。IDE には、作成されたプログラムをローカライズおよび翻訳するための GUI が含まれており、翻訳者に配布できます。また、この目的でより多くの機能を備えたサードパーティ ツールも提供されています。VCL フレームワークはバージョン間で高いレベルのソース互換性を維持しているため、既存のソース コードを新しいバージョンの Delphi に簡単に更新できます。サードパーティ ライブラリは通常、ベンダーからの更新が必要ですが、ソース コードが提供されている場合は、新しいバージョンで再コンパイルするだけで十分な場合があります。VCL は、依存性注入や制御の反転を早期に採用した技術で、開発者が拡張できる再利用可能なコンポーネント モデルを使用しています。クラス ヘルパーを使用すると、RTL または VCL の元のソース コードを変更することなく、コア RTL および VCL クラスに新しい機能を導入できます。
Delphiは、主要なデータベースシステムへのネイティブ接続を提供する幅広いサードパーティ製データベースアクセスコンポーネントをサポートしています。これには、Oracle、SQL Server、MySQL/MariaDB、PostgreSQL、SQLite、InterBase/Firebird向けの専用ライブラリが含まれます。DACなどの一部のコンポーネントは、SalesforceやFreshBooksなどの複数のデータベースやクラウドサービスをサポートするユニバーサルデータアクセスソリューションを提供します。これらのライブラリは定期的に更新され、最新のIDEバージョン(例:RAD Studio 12)、オペレーティングシステム(例:macOS Sonoma、iOS 17、Android 13)、データベースエンジン(例:Oracle 23、SQL Server 2022、PostgreSQL 16)との互換性を維持しています。
コンパイラは最適化されており、シングルパスコンパイラです。オプションで、 DLLを必要としない単一の実行ファイルにコンパイルすることもできます。Delphiは、標準DLL、 ActiveX DLL、COMオートメーションサーバー、Windowsサービスも生成できます。
Delphi 2005 以降の Delphi IDE では、メソッド抽出や、ソース コードからUMLモデルを作成したり、モデルに加えられた変更を通じてソースを変更したりする機能などのリファクタリング機能がますますサポートされるようになりました。
DelphiはWeb上にコミュニティを持ち、従業員も積極的に参加しています。また、DelphiはFireDACコンポーネントと連携して使用しています。
Delphiは、後方互換性がほぼ100%である言語の一つです。Delphiの各新リリースでは、既存のコードの再利用を可能にするために可能な限り後方互換性を維持するよう努めていますが、新機能、新ライブラリ、改良点などにより、新しいリリースでも100%の後方互換性が確保されない場合があります。
2016年以降、Delphiは6ヶ月ごとに新リリースがリリースされており、約2回ごとに新プラットフォームが追加されています。[10]
Delphi は、ビジュアル アプリケーション開発用に、VCL と FireMonkey (FMX) という 2 つのフレームワークを提供しています。
Delphi とそのC++版であるC++Builder は相互運用可能です。IDE、VCL および FMX フレームワーク、そしてランタイムライブラリの大部分など、多くのコアコンポーネントを共有しています。さらに、プロジェクト内で共同で使用することも可能です。例えば、C++Builder 6 以降では、Delphi と C++ のソースコードを 1 つのプロジェクトに統合でき、C++Builder でコンパイルされたパッケージを Delphi 内から使用することも可能です。2007 年には、これらの製品は Delphi と C++Builder の共有ホストである RAD Studio として共同リリースされ、どちらか一方、または両方をご購入いただけます。Rio 以降では、Python との相互運用性も実現しています。
プログラムObjectPascalExample ;
type
THelloWorld =クラスプロシージャPut ; end ;
手順THelloWorld.Put ; begin Writeln ( 'Hello, World ! ' ) ; end ;
var
HelloWorld : THelloWorld ; { これは暗黙的なポインタです }
begin
HelloWorld := THelloWorld.Create ; { コンストラクターは、THelloWorld 型のオブジェクトへのポインターを返します } HelloWorld.Put ; HelloWorld.Free ; {この行は、HelloWorldが指す THelloWorld オブジェクトの割り当てを解除します} end .
オブジェクト構造は Delphi でも引き続き使用できることに注意してください。
2016年、Delphiは南アフリカの学校で情報技術(IT)科目としてプログラミングを教える際に選ばれる言語に選ばれました。 [11]
エンバカデロはかつて、将来の開発計画を示す「ロードマップ」を公開していました。最後のロードマップは2020年11月に公開されました。 [12] [非一次資料 要出典] 2020年11月のロードマップで言及されていたバージョン10.5は、11.0に改名されました。Delphi 11以降、エンバカデロは正式なロードマップを公開しないことを決定しました。代わりに、ブログ記事やオンラインウェビナーを通じて、新機能の可能性について緩やかな順序で発表しています。製品マネージャーのマルコ・カントゥは、自身のブログで重要な役割を果たしています。[要出典]