FFI (Foreign Function Interface) とは 処理系(この場合は Gauche) から他の言語の関数を呼び出す または、他の言語から処理系(この場合は Gauche) の関数を呼び出す 仕組みのこと。良く有るのは高レベル言語から低レベルレイヤのCライブラリ 等を呼び出すような場合。 一方の言語から他方の言語へ引数やら呼び出し形式やらを変換し、 返って来た値をもとの言語へと変換してやる仕組みが必要。 一般にstubと呼ばれる。また、他方の言語のデータ構造にアクセスするための APIもFFIに含まれる。 ターゲット言語にどう埋めこまれるか、および stubをどのくらい動的に構成するかという点でいくつか実装戦略が考えられる。 最もソフィスティケートされた形式は、ターゲット言語に若干の宣言を 付加するだけで、ターゲット言語の手続きと同様に呼び出せる、というようなもの。 イ
![Gauche:FFI](https://cdn-ak-scissors.b.st-hatena.com/image/square/53a987f8da95ff3323da15345495ff0ac5db3cf3/height=288;version=1;width=512/https%3A%2F%2Fpractical-scheme.net%2Fwiliki%2Fthumbnail-placeholder.png)