インタフェース記述言語

インタフェース記述言語: Interface Description Language, IDL)はソフトウェアコンポーネント間のインタフェース記述を目的とするドメイン固有言語の総称である。インタフェース定義言語: Interface Definition Language)とも呼ばれる。

概要 編集

インタフェースは任意の言語で記述しうる。しかし汎用言語を用いた場合、その言語仕様によってインターフェースの自由度が下がる場合がある。例えばC言語関数定義を用いてインタフェースを定義した場合、シグネチャの型がC言語のデータ型に制約されてしまう。これを避けるためには既存言語から中立なインタフェース記述に特化した言語を用いればよい。これがインタフェース記述言語である。

言語中立な言語で書かれたインタフェース定義は、異なるプログラミング言語で書かれたソフトウェアコンポーネント間の通信を可能にする。例えば、C++Javaで書かれたコンポーネント間などに利用できる。また遠隔手続き呼出しでも同様であり、リンクの両端にある異なるOSのシステム間での通信を可能にする。

インタフェースは関数構造とオブジェクト型をしばしば定める。ゆえに IDL はオブジェクト記述に重きを置いたスキーマ記述言語 (SDL) とオーバーラップする部分が多い。例えば Protocol Buffersrpc キーワードを用いてRPC関数のインターフェースを定めるため IDL と言える一方[1]message キーワードを用いてオブジェクト型を定めるため SDL とも言える。

編集

インタフェース記述言語を使用するシステムの例 編集

脚注 編集

  1. ^ "you can define an RPC service interface" Protocol Buffers. Language Guide (proto3). 2023-01-01閲覧.
  2. ^ FAQ”. GraphQL. The GraphQL Foundation. 2022年1月24日閲覧。

関連項目 編集

外部リンク 編集