プログラミング
miniKanrenにおけるプルーニングとメモ化によるボトムアップ列挙へのアプローチ
Towards Bottom-Up Enumeration in miniKanren via Pruning and Memoization (arxiv.org)
要約
本論文では、リレーショナルプログラミング言語miniKanrenにおいて、プログラム合成で一般的に用いられるボトムアップ列挙と重複排除の技術を導入するための2つのライブラリコンビネータ「prune」と「defrel/bank」を提案しています。これにより、効率的なプログラム生成が可能になり、特に算術演算や文字列合成のベンチマークで優れた性能を示しました。
全文翻訳
コンピュータサイエンス > プログラミング言語 arXiv:2607.25373 (cs) [2026年7月28日提出]
タイトル: miniKanrenにおけるプルーニングとメモ化によるボトムアップ列挙へのアプローチ
著者: Nikolai Kudasov
Nikolai Kudasovによる「miniKanrenにおけるプルーニングとメモ化によるボトムアップ列挙へのアプローチ」というタイトルの論文のPDFを表示
PDFを表示 HTML(実験的)
概要:
プレーンなminiKanrenの上に構築された2つの小さなライブラリコンビネータを提案します。これらは、非リレーショナルなプログラム例(PBE)合成ツールで標準的なツールである、観察による重複排除を伴うボトムアップ列挙をリレーショナル設定にもたらすことを目的としています。
最初のコンビネータであるpruneは、ユーザーが供給したキー(通常は候補の入出力動作)によって回答ストリームを重複排除します。
2番目のdefrel/bankは、正規のフレッシュ変数に対してリレーションをメモ化し、単一のプルーニングされた回答ストリームがボトムアップで構築され、すべての呼び出しサイトで再生されるようにします。
また、重み付きバリアントであるdefrel/bank-wについても議論します。これは、正規の深さ優先順序がコンパクトな代表を逃す場合に、最良優先列挙を回復するために、未成熟なストリームに許容可能な上限を添付します。
算術および文字列合成ターゲットの予備的なPBEベンチマークでは、defrel/bankはほとんどのディープターゲットで深さ制限付きベースラインを大幅に上回りますが、正規の深さ優先列挙順序がコンパクトな代表を逃す小さなファミリーでは劣ります。
より広範な経験的評価は、この論文の拡張版に委ねます。
コメント: 18ページ、および完全なソースコード(合計60ページ)の付録。
miniKanren and Relational Programming Workshop 2026 (miniKanren'26) 用のカメラレディ版。
件名: プログラミング言語 (cs.PL); 論理学とコンピュータサイエンス (cs.LO)
引用形式: arXiv:2607.25373 [cs.PL] (またはこのバージョンの場合は arXiv:2607.25373v1 [cs.PL])
https://doi.org/10.48550/arXiv.2607.25373
DataCite(登録保留中)によるarXiv発行DOI
提出履歴
送信者: Nikolai Kudasov [メールを表示] [v1] 火曜日、2026年7月28日 07:28:51 UTC (94 KB)
全文リンク:
論文にアクセス: Nikolai Kudasovによる「miniKanrenにおけるプルーニングとメモ化によるボトムアップ列挙へのアプローチ」というタイトルの論文のPDFを表示
PDFを表示 HTML(実験的) TeXソース ライセンスを表示
現在の閲覧コンテキスト: cs.PL < 前 | 次 > 新着 | 最近 | 2026-07
次の検索条件で変更: cs cs.LO
参考文献と引用:
NASA ADS Google Scholar Semantic Scholar
BibTeX引用
読み込み中... BibTeX形式の引用 × 読み込み中...
Data provided by:
ブックマーク
書誌ツール
書誌および引用ツール
書誌エクスプローラー
書誌エクスプローラーを切り替える(エクスプローラーとは何ですか?)
Connected Papers
Connected Papersを切り替える(Connected Papersとは何ですか?)
Litmaps
Litmapsを切り替える(Litmapsとは何ですか?)
scite.ai
sciteスマート引用を切り替える(スマート引用とは何ですか?)
コード、データ、メディア
コード、データ、メディア
この論文に関連する
alphaXiv
alphaXivを切り替える(alphaXivとは何ですか?)
コードへのリンク
CatalyzeX
論文用コードファインダー(CatalyzeXとは何ですか?)
DagsHub
DagsHubを切り替える(DagsHubとは何ですか?)
GotitPub
Gotit.pubを切り替える(GotitPubとは何ですか?)
Huggingface
Hugging Faceを切り替える(Huggingfaceとは何ですか?)
ScienceCast
ScienceCastを切り替える(ScienceCastとは何ですか?)
デモ
デモ
Replicate
Replicateを切り替える(Replicateとは何ですか?)
Spaces
Hugging Face Spacesを切り替える(Spacesとは何ですか?)
Spaces
TXYZ.AIを切り替える(TXYZ.AIとは何ですか?)
関連記事
レコメンダーおよび検索ツール
影響力フラワーへのリンク
影響力フラワー(影響力フラワーとは何ですか?)
Coreレコメンダー
Coreレコメンダーを切り替える(COREレコメンダーとは何ですか?)
著者
会場
機関
トピック
arXivラボについて
arXivラボ: コミュニティ協力者との実験的プロジェクト
arXivラボは、協力者が新しいarXiv機能を直接ウェブサイト上で開発および共有できるフレームワークです。
arXivラボと協力する個人および組織は、オープンネス、コミュニティ、卓越性、ユーザーデータプライバシーの価値を受け入れ、受け入れています。
arXivはこれらの価値にコミットしており、それらを遵守するパートナーのみと協力します。
arXivコミュニティに価値をもたらすプロジェクトのアイデアがありますか?arXivラボの詳細をご覧ください。
この論文の著者のうち、推薦者は誰ですか?
MathJaxを無効にする(MathJaxとは何ですか?)