@techreport{oai:ipsj.ixsq.nii.ac.jp:00209693, author = {竹之内, 啓太 and 石尾, 隆 and 岡田, 譲二 and 坂田, 祐司}, issue = {36}, month = {Feb}, note = {データベースを利用するソフトウェアにおいて,SQL クエリがプログラムの一部として利用されることは一般的である.一方で,データベースから取得した結果に対して,ループや条件分岐などの制御構造を用いて加工を行う手続き型のプログラムは,保守性の低下や実行時の性能劣化を招くことが知られている.本研究では,SQL の実行結果を加工する手続き型のプログラムを,単一の SQL クエリのみをもつプログラムに変換する手法を提案する.提案手法では,プログラムの解析コストを軽減するため,変換元のプログラムの構造についての限られた情報と,その入出力のふるまいに基づいて変換を行う.具体的には,変換元のプログラムの入出力のふるまいをオラクルとして,オラクルに基づくプログラム合成 (Oracle-Guided Program Synthesis) を行うことで,有限個の入力においてオラクルと等しい出力をもつ SQL クエリを求める.評価実験では,先行研究で用いられたベンチマークに対してプログラムの変換を行い,提案手法の有効性を確認した.}, title = {入出力のふるまいに基づく手続き型コードからSQLへの変換}, year = {2021} }