@article{oai:ipsj.ixsq.nii.ac.jp:00213164,
 author = {池崎, 翔哉 and 山崎, 徹郎 and 千葉, 滋 and Shoya, Ikezaki and Tetsurou, Yamazaki and Shigeru, Chiba},
 issue = {4},
 journal = {情報処理学会論文誌プログラミング(PRO)},
 month = {Sep},
 note = {他言語インタフェース(FFI)はある言語から他言語のライブラリを使用するための仕組みである.プログラミング言語の実用上,他言語で書かれたライブラリ資産を使用できることが重要である.近年では豊富な型を有する動的型付け言語にライブラリ資産が溜まってきているため,このような言語とのFFIが望まれている.しかし型の豊富さゆえに,ホスト言語とライブラリ言語間の型変換規則が複雑なものとなり型変換規則の記述量が多くなってしまうという問題がある.本発表ではType Description Helperという型変換規則の半自動的な導出器を提案する.これが導出した型変換規則の分,ユーザが記述する必要のある型変換規則の量をおさえることができる.Type Description Helperによる型変換規則の導出の手法として2つの方法を考案した.ログベースド法は他言語関数呼び出し時のログから動的に型変換規則を導出し,型推論ベースド法はソースコードを静的に解析することで型変換規則を導出する.本発表では具体例としてPythonおよびEusLispの2言語を選定し,この間のFFIを作成するとともにType Description Helperの実装を行い,その有用性を確認した., A foreign function interface (FFI) is a mechanism that enables a programming language to use libraries written in another foreign language. The FFI is important since the language that does not have access to the rich libraries that already exist is not considered practical. Recently, the FFI between dynamically typed languages that have various types is required because a great number of useful libraries are written in those languages. However, it takes a high cost to describe the type conversion rules between host and library languages since the rules of it are complex on account of type-richness. We propose a Type Description Helper that derives the type conversion rules semi-automatically. The Type Description Helper reduces the number of type conversion rules that users have to write. As the type conversion rules that are derived by Type Description Helper are incomplete, users have to write the type conversion rules that have not yet been derived. Type Description Helper derives the type conversion rules in two ways: log-based approach and type-inference-based approach. The log-based approach derives the type conversion rules dynamically from the log of foreign function calls. The type-inference-based approach derives the type conversion rules by analyzing the source code statically. At the same time, it can detect some invalid arguments that cannot be applied by foreign functions. In this research, we choose Python and EusLisp as an example and implement FFI and Type Description Helper, then checked that it is useful.},
 pages = {1--1},
 title = {高水準動的型付け言語間FFIにおけるType Description Helperの構築},
 volume = {14},
 year = {2021}
}