グルーコード

グルーコードとは



グルーコードとは、コンピュータプログラミングにおいて、プログラムの要求仕様を実現する上で直接的な役割は持たないものの、本来互換性のないプログラム同士を繋ぎ合わせるためだけに存在するコードのことです。グルー(glue)という言葉が示すように、異なる要素を接着剤のように結びつける役割を担います。

具体的には、既存のライブラリやプログラムを相互に運用させる際に、その橋渡しとして機能します。例えば、異なる言語で書かれたコード同士を連携させたり、オブジェクトとデータベースの間のデータのやり取りを円滑にしたり、あるいは既製のソフトウェアパッケージを統合する際に必要となります。グルーコードは、異なるシステムのインターフェースのギャップを埋め、データの変換や処理の調整を行うことで、システム全体の連携を可能にします。

グルーコードの例



グルーコードは、以下のようなケースで必要となります。

異なるプログラミング言語間の連携:
C言語C++で書かれた既存のコードを、LuaPythonなどのスクリプト言語から利用できるようにするためのコードです。この場合、C言語の関数をスクリプト言語の実行環境に登録するなどの処理がグルーコードとして実装されます。
互換性のないコード間の調整:
C++で書かれた既存のコードをC++で利用するものの、仕様上の互換性がない部分を解決するためにラッパーコードとして実装されるC++コードもグルーコードの一種です。これにより、既存のコードをそのまま利用できるため、コードの再利用性が向上します。


グルーコードは、連携するコードの量に比例してコード量が増大する傾向にあります。しかし、その多くは一定の規則に従って機械的に記述できるため、フレームワークやライブラリの活用によって自動生成したり、記述量を削減したりすることが可能です。

グルーコードの自動化と代替技術



近年では、グルーコードの記述を不要にする技術や、より簡潔な記述で済むソリューションが登場しています。

COM(Component Object Model)やWindowsランタイム、.NET FrameworkのP/Invoke:
これらの技術では、タイプライブラリやメタデータ、ABI互換性のあるデータ型の定義やメソッドの宣言を行うだけで、他の言語との相互運用が可能になります。これにより、グルーコードを記述する手間を大幅に削減できます。

グルーコードの重要性



グルーコードは、異なるシステムや技術を連携させる上で不可欠な要素です。これにより、既存のソフトウェア資産を有効活用し、新たなシステムを効率的に構築することが可能となります。グルーコードを適切に設計し、管理することは、ソフトウェア開発の効率性と品質を向上させる上で重要なポイントとなります。

まとめ



グルーコードは、異なるシステムを連携させるための接着剤のような役割を果たすコードであり、その多くは機械的に記述できます。自動化や代替技術によって記述を削減することも可能ですが、その重要性は変わりません。グルーコードを理解し、適切に利用することは、現代のソフトウェア開発において不可欠なスキルと言えるでしょう。



参考情報



University of Ottawa: Object Oriented Software Engineering, Glue Code Def.
http://projects.camlcity.org/projects/dl/findlib-1.2.1/doc/guide-html/x341.html

関連項目



グルー言語
スクリプト言語
シェルスクリプト
SWIG
Lua
Squirrel
グルー・ロジック
相互運用性#ソフトウェア
* 束縛 (コンピュータ)#言語束縛

もう一度検索

【記事の利用について】

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

【リンクついて】

リンクフリーです。