jssst sig-ppl

第17回プログラミングおよびプログラミング言語ワークショップ(PPL2015)
プログラム

1日目午後の部 (3月4日 13:30-18:10)
13:30-13:40 オープニング
13:40-14:55 セッション1 定理証明 (座長:中野 圭介 (電気通信大学))
レコードの拡張を許す対話的修正機構 [C1]
森口 草介, 高橋 和子 (関西学院大学)
並列代入に対する代入補題の自動証明 [C1]
坂口 和彦 (筑波大学 情報学群 情報科学類)
Agda による型推論器の定式化 [C1]
門脇 香子, 浅井 健一 (お茶の水女子大学大学院 人間文化創成科学研究科)
14:55-15:10 休憩
15:10-16:10 セッション2 招待講演(1) (座長:浜名 誠(群馬大学))
Formal C semantics and LLVM compiler validation
Chung-Kil Hur (Seoul National University)
概要  My long-term research goal is to establish a solid foundation for the C/C++ language, which requires a "simple" semantics of C/C++ and a "correct" compiler. For this, we will develop (i) a simple formal semantics of C supporting all practically used features such as integer-pointer casts; and (ii) a verified translation validator for the full LLVM compiler. Achieving both (i) and (ii) is not particularly easy because a simple semantics usually fails to justify many compiler optimizations. In this talk, I will give a high-level introduction to our project including many technical problems that arise on the way. Then, I will present our solutions to two of the problems. One is to give a simple memory model that supports integer-pointer casts, yet still justify most of the existing compiler optimizations. The other is to give a new reasoning principle for coinduction that does not require any syntactic guardedness checking. We formalized this theory as Paco library for Coq, which made our coinductive reasoning for compilation validation a lot easier.
16:10-16:25 休憩
16:25-17:40 セッション3 モナド・意味論 (座長:西村 進 (京都大学))
モナド、代数理論と計算効果 [C4]
勝股 審也 (京都大学数理解析研究所)
Identifying All Preorders on the Subdistribution Monad [C2]
Tetsuya Sato (Research Institute for Mathematical Sciences, Kyoto University)
出典 発表会議名: Mathematical Foundations of Programming Semantics Thirtieth Conference 掲載誌名: Electronic Notes in Theoretical Computer Science Volume 308 Pages 309--327
高階契約を持つプログラミング言語に対するトレース意味論 [C1]
村井 涼, 五十嵐 淳, 中澤 巧爾 (京都大学大学院情報学研究科)
17:40-18:10 ポスター・デモ紹介(1) (座長:木村 大輔 (国立情報学研究所))
1日目夜の部 (3月4日 20:30-22:00)
20:30-22:00 セッション4 ポスター・デモ(1) (座長:木村 大輔 (国立情報学研究所))
効率の良いLeakage Resilientプログラムの自動生成に向けて [C3 (ポスター)]
山本 真輝(1), 寺内 多智弘(2) ((1)名古屋大学 (2)JAIST)
タイプステート付きコルーチンによるプログラミング [C3 (ポスター)]
服部 浩二, 櫻川 貴司 (京都大学大学院 人間・環境学研究科)
ソフトウェアUI妥当性確認の形式化に向けて [C3 (ポスター・デモ)]
木下 修司 (神奈川大学)
遷移のキャッシュを行うLTLモデル検査方式 [C3 (ポスター)]
田辺 良則 (国立情報学研究所)
LablGtk2によるuniverse teachpackの実装と実用性の検証 [C3 (ポスター)]
上原 千裕, 浅井 健一 (お茶の水女子大)
Developing and running DSL programs on FX10 and Tsubame with a code translation framework [C3 (ポスター)]
荘 永裕, 千葉 滋 (東京大学創造情報学専攻)
Pyrlang: RPythonを用いた高性能Erlang BEAM仮想マシン [C3 (ポスター)]
Ruochen Huang, 増原 英彦, 青谷 知幸 (東京工業大学)
確率的動作を含んだストリーム処理言語 [C3 (ポスター)]
宮本 洋平, 末永 幸平 (京都大学大学院情報学研究科通信情報システム専攻)
グラフ書換え言語LMNtalへのShape Typeの導入と実装 [C3 (ポスター)]
吉元 佑介, 上田 和紀 (早稲田大学)
組み込み関数型プログラミングデモ [C3 (デモ)]
岡部 究 (理化学研究所 計算科学研究機構)
耐故障性のあるアプリケーションを開発するための,Resilient X10用ライブラリ [C3 (ポスター・デモ)]
河内谷 清久仁 (日本アイ・ビー・エム(株) 東京基礎研究所)
関数型言語処理系における遅延オブジェクト再利用手法の正当性の Coq による証明 [C3 (ポスター)]
高野 保真, 岩崎 英哉 (電気通信大学大学院 情報理工学専攻)
Scarab: 高度なSAT解法を利用可能な制約プログラミングシステム [C3 (デモ)]
宋 剛秀, 番原 睦則, 田村 直之 (神戸大学 情報基盤センター)
より自由なモナド、より拡張可能な作用 [C3 (ポスター)]
Oleg Kiselyov(1), 石井 大海(2) ((1)東北大学 (2)筑波大学)
消去法に基づくフロー依存型ポインタ解析 [C3 (ポスター)]
佐藤 重幸 (電気通信大学)
半単一化問題について [C3 (ポスター)]
岩見 宗弘 (島根大学)
Android上のごみ集めにおける停止時間の削減 [C3 (ポスター)]
中野 陽基(1), 鵜川 始陽(2), 岩崎 英哉(1) ((1)電気通信大学 (2)高知工科大学)
Moving Hadoop into supercomputers with process pool approach and MPI communication [C3 (ポスター)]
Thanh-Chung Dao, 千葉 滋 (東京大学創造情報学専攻)
OCaml 初学者のための開発環境に向けて [C3 (ポスター)]
石井 柚季, 浅井 健一 (お茶の水女子大)
並列分解による状態遷移系モデルの可読性向上 [C3 (ポスター)]
千代 英一郎, 森崎 遥 (成蹊大学理工学部情報科学科)
m-bridge を用いた木構造分割処理の Hadoop/MapReduce による実現 [C3 (ポスター)]
山本 佳祐, 松崎 公紀 (高知工科大学)
PGAS言語X10向けのプロファイリングツールX-Eyeの開発 [C3 (ポスター・デモ)]
板橋 晟星, 佐藤 芳樹, 千葉 滋 (東京大学創造情報学専攻)
履歴情報を活用したパッケージ管理のためのバージョン管理システム [C3 (ポスター・デモ)]
藤井 亮太, 岩崎 英哉 (電気通信大学大学院 情報理工学研究科)
MISRA-C as function programming and a subset of standard [C3 (ポスター)]
小川 清 (名古屋市工業研究所)
2日目午前の部 (3月5日 9:00-11:35)
9:00-10:00 セッション5 招待講演(2) (座長:浜名 誠(群馬大学))
1980年代のLispマシンSymbolicsとその開発環境Genera 付属:NVIDIA GPUによる超並列コンピューティング
橋本 和幸 (NVIDIA. 元日本シンボリックス株式会社)
概要  Symbolics社は、1981年に設立されたLispマシンの専業メーカーで、既に倒産して現存していない。MIT AI Lab.で開発されたLM-2をベースに、独自の36ビットアーキテクチャを開発し商用Lispマシンとしての販売に成功し、NewYork証券取引所に上場しました。 Symbolics社では、HardwareだけでなくOperating Systemから開発ツール、アプリケーションソフトウェアまで開発を行っていた。会社の基本コンセプトは、"Software First" 最初にソフトウェアありき。Hardwareは、ソフトウェアを実行するために設計されるべきだという考えのもと、OperatingSystemからObject Oriented Programing Modelで設計されており、それを現実的な速度で実行するためのCPUを設計していた。特徴的な機能は、実行時の型チェックとその結果に応じた関数呼び出しや、型変換を行うことと、高速なメッセージパッシングのための専用のキャッシュを装備していた。 オブジェクト指向言語として、Zatalispの拡張となるFlavorsが当初より実装されていた。特徴としては、多重継承機能。その後、CommonLispの制定後、CommonLispの拡張としてCLOS(CommonLisp Object System)が制定された。それに伴い、SymbolicsCommonLispの拡張としてCLOS互換のNewFlavorsが提供されるようになった。またこのCommonLispへの移行に伴い、OSもGeneraと命名された。NewFlavorsの特徴ひとつは、Generic Fucntionである。Lisp関数とObjectのメソッド呼び出しを同一のフォーマットとして、引数の型によって最適な呼び出しを実行時に選択していた。 もっとも大規模なアプリケーションとして、3D Computer Graphicsの製作システムがあった。このアニメーションシステムは、MITでのActor理論をベースに開発されていた。また形状モデリングソフトウェアも、Object Oriented Programing Modelで記述されており、多重継承を非常にうまく実装していた。3DCGの製作環境では実行速度が重視されるため、LispですがSillicon Graphics社のUNIXワークステーション上のC言語で記述されたシステムに、劣らないパフォーマンスを実現していた。 Symbolicsの環境の機能とともに、それらから感じられたメリット及び欠点などを紹介していく。 Machintosh IIFXにSymbolicsのIvoryカードを搭載したもので、Symbolics Generaの実機デモを行う予定です。ただし20年前の機材なので、動作しない場合はご了承ください。
10:00-10:20 休憩
10:20-11:35 セッション6 並列計算 (座長:河内谷 清久仁 (日本IBM))
GPGPU処理系におけるカーネル関数内のコード変換によるスレッドマッピング機構の改良 [C1]
神谷 智晴, 丸山 剛寛, 大野 和彦 (三重大学)
タスク並列言語Tascellにおけるノード間通信のMPIによる実装 [C1]
村岡 大輔(1), 八杉 昌宏(2), 平石 拓(3) ((1)九州工業大学情報工学部知能情報工学科 (2)九州工業大学大学院情報工学研究院 (3)京都大学学術情報メディアセンター)
ワークスティールフレームワーク向け確率的ガードの提案と性能解析 [C1]
寄高 啓司(1), 松井 健(2), 八杉 昌宏(3), 平石 拓(4) ((1)九州工業大学情報工学部知能情報工学科 (2)京都大学大学院情報学科研究科(現在,任天堂株式会社) (3)九州工業大学大学院情報工学研究院 (4)京都大学学術情報メディアセンター)
2日目午後の部 (3月5日 13:00-18:45)
13:00-14:20 セッション7 関数型プログラミング (座長:青戸 等人 (東北大学))
パターンマッチ指向プログラミング言語Egisonチュートリアル [C4]
江木 聡志 (楽天技術研究所)
Haskellでの合成可能なオブジェクトの構成とその応用 [C1]
木下 郁章(1), 山本 和彦(2) ((1)茨城工業高等専門学校 (2)IIJイノベーションイスティテュート)
引用と1億倍高速化の物語: 関数プログラミングによるKleene第二再帰定理の証明 [C1]
オレッグ・キセリョーヴ (東北大学大学院情報科学研究科)
14:20-14:35 休憩
14:35-15:45 セッション8 開発ツール etc. (座長:岩崎 英哉 (電気通信大学))
shift/resetを用いたstepperの実装に向けて [C1]
叢 悠悠(1), 浅井 健一(1), 戸次 大介(2) ((1)お茶の水女子大学 (2)お茶の水女子大学, 国立情報学研究所, 独立行政法人科学技術振興機構, CREST)
The Omission Finder for Debugging What-Should-Have-Happened Bugs in Object-Oriented Programs [C2]
Kouhei Sakurai(1), Hidehiko Masuhara(2) ((1)Kanazawa University (2)Tokyo Institute of Technology)
出典 To appear in: ACM SAC 2015, April 13-17, 2015
Call-by-Valueでのパラメトリシティ [C1]
上田 やよい(1), 浅井 健一(2) ((1)お茶の水女子大学 理学専攻 (2)お茶の水女子大学)
15:45-16:00 休憩
16:00-16:50 セッション9 DSL(1) (座長:渡部 卓雄 (東京工業大学))
最終ムダなし形式におけるドメイン特化言語最適化 [C4]
オレッグ・キセリョーヴ (東北大学大学院情報科学研究科)
16:50-17:05 休憩
17:05-18:15 セッション10 DSL(2) (座長:増原 英彦 (東京工業大学))
ついにSQLを組み立てる: 拡張可能で安全な統合言語クエリ [C1]
鈴木 健一(1), オレッグ・キセリョーヴ(2), 亀山 幸義(1) ((1)筑波大学 (2)東北大学)
Implicit Staging of EDSL Expressions: A Bridge between Shallow and Deep Embedding [C2]
Maximilian Scherr, Shigeru Chiba (The University of Tokyo)
出典 In Proceedings of the 28th European Conference on Object Oriented Programming (ECOOP 2014), LNCS 8586, Springer, pp. 385-410, 2014
内部DSLの有効範囲を制御するための言語機構の提案 [C1]
市川 和央, 千葉 滋 (東京大学情報理工学系研究科)
18:15-18:45 ポスター・デモ紹介(2) (座長:木村 大輔 (国立情報学研究所))
2日目夜の部 (3月5日 20:30-22:00)
20:30-22:00 セッション11 ポスター・デモ(2) (座長:木村 大輔 (国立情報学研究所))
クラウドベースの帰納関数プログラミングシステム [C3 (デモ)]
片山 晋 (宮崎大学)
関数型プログラムの不変条件のICE流学習手法 [C3 (ポスター・デモ)]
千葉 知也(1), 佐藤 亮介(2), 松田 一孝(2), 小林 直樹(2) ((1)東京大学理学部情報科学科 (2)東京大学大学院情報理工学系研究科)
SIMTのためのHoare論理のCoqでの形式化 [C3 (ポスター)]
奥村 健太郎(1), 小島 健介(2), 五十嵐 淳(2) ((1)京都大学情報学研究科 (2)京都大学情報学研究科/JST)
記号実行による動的型付き言語におけるスタブ生成 [C3 (ポスター)]
矢藤 康祐(1), 坂本 一憲(2), 本位田 真一(3) ((1)東京大学 (2)国立情報学研究所 (3)東京大学,国立情報学研究所)
GPGPUカーネル検証のための分離論理のCoqによる形式化 [C3 (ポスター)]
朝倉 泉, 増原 英彦, 青谷 知幸 (東京工業大学 数理・計算科学専攻)
Actario: Coqによるアクターモデルの形式化とErlangへのコード抽出 [C3 (ポスター・デモ)]
安武 祥平, 渡部 卓雄 (東京工業大学)
京都大学 Teen Racketeer 養成コース [C3 (ポスター・デモ)]
五十嵐 淳, 中澤 巧爾, 馬谷 誠二, 関山 太朗, 花田 裕一朗, 大元 武, 宮本 洋平, 末永 幸平 (京都大学)
書き換え可能参照付き顕在的契約計算 [C3 (ポスター)]
関山 太朗 (京都大学)
例外処理を分離するChop&Graftアドバイス機構の提案 [C3 (ポスター)]
藤田 健太, 増原 英彦, 青谷 知幸 (東京工業大学)
shift/reset による結果型変更の実現 [C3 (ポスター)]
小堀 育男(1), 亀山 幸義(1), Oleg Kiselyov(2) ((1)筑波大学 (2)東北大学)
固有の制御構造を必要とするライブラリプリミティブを用いても簡潔に表現できる埋め込み領域特化言語のためのコンパイル時書き換え機構に向けて [C3 (ポスター)]
山口 洋, 千葉 滋 (東京大学創造情報学専攻)
ライブプログラミングにユニットテストを統合する機能の提案 [C3 (ポスター・デモ)]
今井 朝貴, 増原 英彦, 青谷 知幸 (東京工業大学)
RuJIT: JITコンパイラを備えたRuby処理系 [C3 (ポスター・デモ)]
井出 真広, 倉光 君郎 (横浜国立大学)
Pythonに対する契約を用いた仕様の記述システム [C3 (ポスター・デモ)]
新井 椋也, 岩崎 英哉 (電気通信大学大学院 情報理工学研究科)
再利用性と互換性を持つ軽量なWebアプリケーションフレームワーク [C3 (ポスター)]
山本 竜太郎, 岩崎 英哉 (電気通信大学大学院 情報理工学研究科)
暗黙的な文脈の切り替えを用いたRubyにおけるオープンクラス衝突問題の解消 [C3 (ポスター)]
福室 嶺, 千葉 滋 (東京大学創造情報学専攻)
GPGPUフレームワークMESI-CUDAにおける自動最適化のための配列インデックスの静的解析手法 [C3 (ポスター)]
丸山 剛寛, 神谷 智晴, 大野 和彦 (三重大学)
仮想マシンによるPEG処理系の実装 [C3 (ポスター)]
本多 峻, 倉光 君郎 (横浜国立大学)
Haskellのモジュラリティと効率の両立のためのコンパイル時データ合成 [C3 (ポスター)]
桐山 裕匡, 青谷 知幸, 増原 英彦 (東京工業大学 数理計算科学専攻)
置換簡約を含むラムダ計算の合流性 [C3 (ポスター)]
中澤 巧爾(1), 藤田 憲悦(2) ((1)京都大学 (2)群馬大学)
Java仮想マシンの動作特性に注目したCPU周波数制御のPCへの適用 [C3 (ポスター)]
竹内 洋平 (電気通信大学大学院)
参照を備えた多段階計算のための多相的型システム [C3 (ポスター)]
小林 恵(1), 五十嵐 淳(2) ((1)京都大学工学部情報学科 (2)京都大学情報学研究科通信情報システム専攻)
関数型言語における関数適用によるギャップを考慮したコードクローン検出および除去に関する研究 [C3 (ポスター・デモ)]
松下 翼, 篠埜 功 (芝浦工業大学)
A New Foundation for C/C++: Formal Semantics and Compilation Validation for LLVM Compiler [C3 (ポスター)]
Chung-Kil Hur (Seoul National University)
最終ムダなし形式におけるドメイン特化言語最適化 [C3 (デモ)]
オレッグ・キセリョーヴ (東北大学大学院情報科学研究科)
3日目午前の部 (3月6日 9:00-11:20)
9:00-9:50 セッション12 逆計算・書換え系 (座長:亀山 幸義 (筑波大学))
A Linear-Time Reversible Self-Interpreter [C1]
Tetsuo Yokoyama(1), Robert Glück(2) ((1)Department of Software Engineering, Nanzan University (2)DIKU, Department of Computer Science, University of Copenhagen)
書き換え規則の重なりに基づく到達可能性判定法 [C1]
島貫 健太郎, 青戸 等人, 外山 芳人 (東北大学 電気通信研究所)
9:50-10:05 休憩
10:05-11:20 セッション13 型システム (座長:Jacques Garrigue (名古屋大学))
ATSプログラミングチュートリアル [C4]
岡部 究 (理化学研究所 計算科学研究機構)
A Behavioral Type System for Memory-Leak Freedom [C1]
Qi Tan, Kohei Suenaga, Atsushi Igarashi (Department of Communications and Computer Engineering, Graduate School of Informatics, Kyoto University)
Verifying Relational Properties of Functional Programs by First-Order Refinement [C2]
Kazuyuki Asada, Ryosuke Sato, Naoki Kobayashi (University of Tokyo)
出典 PEPM '15: The 2015 Workshop on Partial Evaluation and Program Manipulation (掲載済)
3日目午後の部 (3月6日 12:40-14:50)
12:40-13:20 セッション14 言語拡張 (座長:鵜川 始陽 (高知工科大学))
Resilient X10: Efficient failure-aware programming [C2]
David Cunningham(2), David Grove(1), Benjamin Herta(1), Arun Iyengar(1), Kiyokuni Kawachiya(3), Hiroki Murata(3), Vijay Saraswat(1), Mikio Takeuchi(3), Olivier Tardieu(1) ((1)IBM T. J. Watson Research Center (2)Google Inc. (3)IBM Research - Tokyo)
出典 Proceedings of the 19th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP'14), pp. 67-80, 2014.(掲載済)
Generalized Layer Activation Mechanism Through Contexts and Subscribers [C2]
Tetsuo Kamina(1), Tomoyuki Aotani(2), Hidehiko Masuhara(2) ((1)Ritsumeikan University (2)Tokyo Institute of Technology)
出典 MODULARITY'15(掲載予定)
13:20-13:30 休憩
13:30-14:20 セッション15 メタプログラミング (座長:五十嵐 淳 (京都大学))
The Next Stage of Staging [C1]
Jun Inoue, Oleg Kiselyov(1), Yukiyoshi Kameyama(2) ((1)Tohoku University (2)University of Tsukuba)
PEG4d: Trans-Parsing with PEG [C1]
Kimio Kuramitsu (Yokohama National University)
14:20-14:50 クロージング

NOTICE: PPL aims to function as an informal workshop series, which gives researchers an opportunity to disseminate their preliminary work and get feedback from the participants without precluding publication elsewhere. It encourages submissions of revised versions of the work to international conferences or refereed journals.

The second category of PPL ([C2] in the program above) is intended to help researchers disseminate their research to the domestic community by providing an opportunity to present their papers that have already been accepted by international conferences or journals (but not presented in Japan before). Therefore, presentations in this category, which are informal, should not be considered republication or results of double submissions of any kind.