情報処理学会プログラミング研究会 – 第156回プログラミング研究発表会 – プログラム
日程:2025年11月6日(木)〜 11月7日(金)
会場:東京科学大学 大岡山キャンパス 西8号館E棟10階 1004号室 および オンラインのハイブリッド開催
〒152-8550 東京都目黒区大岡山2-12-1
開場:11月6日(木): 13:15、11月7日(金): 10:00
- 西8号館E棟 1004号室への経路:
- 西8号館の入り口が本館側の入り口だった場合、正面通路すぐの左手にエレベーターがありますので、10階まで上ります(なおこの入り口は3階です)
- 建物の下をくぐる通路に設置された入り口の場合、入り口突き当たりの右手にエレベーターがありますので、10階まで上ります(この入り口は1階です)
- ただしE棟ではなくW棟の入り口も正面にあります。こちらは製図室となっているので、おそらく誤って入ることはないと思いますが、こちらからは着きません。向かい側に入り口がありますのでそちらからE棟へお入りください。
- 10階につきましたら、通路左手側に1004号室があります(右手に大会議室がありますがこちらではありません)
- 1件あたり45分(発表25分,質疑・討論20分)(短い発表は発表20分, 質疑・討論10分)
- ◯印が登壇者です.
11月6日(木)
*セッション1(13:15-14:30):座長 齋藤 新(日本IBM)
2025-3-(1):13:15-13:45(短い発表)
「Haskellにおける混成型の定義と型曖昧性に対する型クラスデフォルト機構の提案」
○香川 考司 (香川大学創造工学部)
関数型言語では、あるデータ型に対してそれを対象とする関数は後から追加できるが、データの種類(構成子)は後から追加できない。オブジェクト指向言語では、あるクラスに対しサブクラスを増やすことはいくらでも可能だが、メソッドを元のクラスに対して追加できない。二方向の拡張性を両立するのが難しいことは expression problem と呼ばれている。Haskell の場合、型クラスにより、ある程度は問題が緩和されている。すなわち、メソッドの対象となる型を後から追加できる。しかしこの場合、対象となる型を一つのリストなどににまとめる場合に問題となる。これに対して、これまでにいくつかの手法が提案されているが、参照型を含む型との相性が悪いなどの問題が残る。本発表では、複数の型をまとめるための混成型の定義の仕組みと、それに伴って生じる型曖昧性に対する型クラスデフォルト機構を提案する。
2025-3-(2):13:45-14:30
「Hybrid CPU-GPU Implementation of Hierarchical Matrix Generation in a Backtracking-based Load Balancing Framework」
○徐静 (京都大学), 平石 拓 (京都橘大学), 白正陽 (理化学研究所計算科学研究センター), 伊田 明弘 (海洋研究開発機構), 八杉 昌宏 (九州工業大学), 深沢 圭一郎 (総合地球環境学研究所, 京都大学)
Hierarchical matrices (H-matrices) are critical for large-scale numerical computations, such as boundary element methods and covariance statistics. Their efficient generation is computationally intensive and highly irregular, making effective parallelization on heterogeneous systems challenging. Although GPU acceleration can improve performance, GPU efficiency is significantly degraded when processing numerous small submatrices typical in H-matrix generation, where insufficient parallelism combined with highly variable per-submatrix workloads fails to utilize GPUs effectively. We present a hybrid CPU-GPU implementation of H-matrix generation built upon Tascell, a backtracking-based load balancing framework originally designed for CPU execution. Our implementation applies Tascell’s dynamic load balancing mechanism throughout the entire process, constructing the hierarchical tree structure of H-matrices and performing matrix block computations for leaf nodes. We dynamically determine whether to use CPU or GPU for each matrix block computation based on block size, type, and GPU availability. To reduce kernel launch and data transfer overheads, we apply a threshold-based offloading strategy. We use OpenACC conditional directives to maintain a single unified code implementation for both CPU and GPU execution, avoiding code duplication. Experimental results show that GPU-only execution suffers significant performance degradation, while our hybrid implementation consistently outperforms CPU-only execution. The improvement is greater when fewer CPU workers are available: up to 1.46-fold speedup with 4 workers compared to 1.15-fold with 64 workers. Performance is largely insensitive to threshold settings, demonstrating robustness. Overall, this hybrid CPU-GPU approach improves the efficiency and scalability of H-matrix generation and provides a practical solution for accelerating highly irregular computations on heterogeneous systems.
*2024年度CS領域功績賞・2025年度CS領域奨励賞授与式および拡大運営委員会(14:45-15:15)
2024年度CS領域功績賞 https://www.ipsj.or.jp/award/cs-koseki-award-2024.html
前田 敦司 君
2025年度CS領域奨励賞 https://www.ipsj.or.jp/award/cs-award-2025.html
両角 颯 君
李 淵錫 君
*セッション2(15:15-16:15):招待講演 座長 森畑 明昌(東京大学)
「Chasing Efficiency in Sound Gradual Typing」
田邉 裕大 (東京科学大学情報理工学院)
本講演では、漸進的型付け言語の空間効率性に関する講演者の最近の研究を紹介する。はじめに、健全な漸進的型付け言語の歴史的経緯と最近の研究動向を概観する。続けて、講演者らのPLDI’24論文:パラメトリック多相を持った漸進的型付け言語の空間効率性の達成について詳述する。本講演ではこれらに加え、健全な漸進的型付け言語の時間・空間計算コストの実証的評価にも触れる。漸進的型付け言語向けMutationフレームワークの一種であるDynamizerの実装、PLDI’24言語のインタプリタへの適用、初期的なベンチマーク結果から得られた発見を報告し、これらを踏まえた今後の研究展望を紹介する。
*懇親会 18:00-20:00(予定)
11月7日(金)
*セッション3(10:00-12:00):座長 森口 草介(東京科学大学)
2025-3-(3):10:00-10:30(短い発表)
「論理制約付き項書き換えシステムにおける簡約順序の提案に向けて」
○林幸樹 (新潟大学大学院自然科学研究科), 青戸等人 (新潟大学大学院自然科学研究科)
等式理論に基づいた計算モデルとして項書き換えシステム(TRS)がある. 論理制約付き項書き換えシステム(LCTRS)(Kop, Nishida 2013) は制約付き書き換え規則を用いて組み込みのデータ構造を扱えるようにしたTRSの拡張である. 簡約列が無限に続かないときにTRSは停止性を持つという. TRSの停止性を検証する様々な手法が知られているが, これらを抽象的に扱うために簡約順序という概念が提案されている. 簡約順序はある条件を満たす項上の順序で, TRSが停止性を持つこととすべての書き換え規則が順序付けられるような簡約順序が存在することは同値となる. 一方, LCTRSの停止性を特徴づけるような簡約順序はこれまで提案されていない.
本発表では, 制約付き書き換え規則の順序付けを考えるために制約付き順序表現を導入し, 制約付き順序表現がLCTRSの停止性を特徴づけるために必要な条件について検討する.
2025-3-(4):10:30-11:15
「ホスト処理系の変更を要しない衛生的マクロに基づく多段階プログラミングDSL」
○馬谷 誠二 (神奈川大学情報学部)
多段階プログラミング(MSP)を支援するMetaOCamlやTemplate Haskell等の拡張言語は,疑似引用と段階的実行のための専用構文を備え,コード生成・実行を明示的に扱うことで高速化と抽象化の両立を実現している.一方,多くのLisp系言語にも疑似引用とevalが備わっており,静的型の恩恵を除けば類似のスタイルによるプログラミングが可能だが,衛生性の保証と実行効率に弱点がある.本研究は,ホスト処理系を改変せず,マクロ展開を多段階実行に対応付けることでevalを不要化しつつ,衛生性と高効率性を両立するMSP向け埋め込みDSLを提案する.提案DSLは,(1) 単一段階記述の多段階展開,(2) 構文オブジェクトの埋め込み・参照によるスコープ管理,をマクロ定義構文の自然な拡張として提供する.素朴なMSP実装方式との比較評価を行い,生成コードがより高速に動作することを実証する.
2025-3-(5):11:15-12:00
「Introducing Linear Implication Types to λGT for Computing With Incomplete Graphs」
○Jin Sano (Waseda University), Naoki Yamamoto (Waseda University), Kazunori Ueda (Waseda University)
Designing programming languages that enable intuitive and safe manipulation. Conventional destructive memory operations using pointers are complex and prone to errors. Existing type systems, such as affine types, fail to ensure the safety of structures and operations that involve data with shared references or cycles. The λGT language, a purely functional programming language that treats hypergraphs
(hereafter referred to as graphs) as first-class citizens, addresses some of these challenges. By abstracting data with shared references and cycles as graphs, it enables declarative operations through pattern matching and leverages its type system to guarantee safety of these operations. Nevertheless, the previously proposed type system of λGT leaves two significant open challenges. First, the type system does not support incomplete graphs, that is, graphs in which some elements are missing from the graphs of user-defined types. Second, the type system relies on dynamic type checking during pattern matching. This study addresses these two open challenges. First, we introduce linear implication into the type system, which enables handling of incomplete graphs. Second, we redesign the type system to support fully static type checking by introducing a set of new constraints, while keeping it sufficiently permissive to accommodate most examples supported by previous work.
予稿(arXivへのリンクとなっております)
*セッション4(13:30-15:00):座長 渡部 卓雄(東京科学大学)
2025-3-(6):13:30-14:15
「コレオグラフィックプログラミングのエフェクト及びコエフェクトを用いた定式化」
○松山 皓星 (東京科学大学), 叢 悠悠 (東京科学大学), 増原 英彦 (東京科学大学)
コレオグラフィックプログラミング(CP)は、分散システムを記述するためのプログラミングパラダイムであり、単一のプログラムから各エンドポイントのコードを生成することでデッドロックが発生しないことを保証する。CPの形式化は様々あるが、複数のエンドポイントが値を持ち相互に送信しあう都合上独自の型システムが必要となり、既存の理論を適用することが難しい。
本研究では、CPの新しい形式化として、エフェクトとコエフェクトに基づく計算体系を与える。具体的には、計算の実行に必要なエンドポイントをエフェクト、コンテキスト中の値の所在をコフェクトとして捉える型システムを構築する。このアイディアにより、エフェクト・ コエフェクトの既存理論を用いてCPにおける種々の制約を表現し、既存のライブラリやプログラミング言語をCPの実現に利用できる。
本論文では、提案する計算体系の動的意味論と型システムを与え、型健全性を証明することで提案体系においてデッドロックが起きないことを示す。さらに、Haskellによる実装を通して、従来の添字を持たない単一モナドによる実装に比べて、より柔軟に分散プログラムを記述できることを示す。
2025-3-(7):14:15-15:00
「A Concurrent Extension of Reversible Imperative Programming Language with Runtime」
○Masahiro Kuroda (Nagoya University), Shoji Yuen (Nagoya University)
We present a concurrent extension of Janus, a well-known reversible imperative programming language. We extend Janus by adding multiple procedure calls for concurrency, together with a semaphore for synchronization. Reversibility facilitates the analysis of nondeterministic behavior in concurrent programs by enabling the replay of nondeterministic choices made during forward execution. Our extension ensures the reversibility by translation to an intermediate language called CRIL, proposed by Oguchi et al. CRIL implements reversibility by accumulating dependency information during forward execution and controlling the backward execution based on dependency information. We extend CRIL to support the memory management that is necessary for the nested structure of Janus. We provide a translation from Concurrent Janus to the extended CRIL and show the runtime with the CRIL interpreter.
Last update: 2025-11-07