LOPSTR/PPDP 2011 実況
#WFLP11 続)一度非決定性をどちらかに決めたら同じ選択に由来する部分はすべて同じ選択をしないといけない、というのを非決定選択を表すサンクにひたすらユニークIDを振って管理という真っ向勝負の実装。決定性の部分ではこのID渡しをなくしたバージョン使って速度稼ぐ。
2011-07-19 16:18:50#WFLP11 続) KiCS1と違ってHaskellのunsafe機能使わない、決定的な部分についてはghcと比べてほとんどオーバーヘッドない。非決定的な部分についてはProlog経由実装より速い。FLP用抽象マシンにコンパイルする実装より遅い。KiCS1とはトントン。
2011-07-19 16:24:30#WFLP11 続) 質問「ユニークID生成のseedは純粋関数型言語でやろうと思うとプログラム全体で引き回す必要があると思うがどうやってるのかやっぱりモナドっぽいアプローチ?」「No。無限のsupplyを2つに割るような操作を用意しておいてフローが分岐したらその時点で振る」
2011-07-19 16:27:00#WFLP11 続)会場からHanus「ID生成をモナディックにするとプログラムの実行順序がそれで定まってしまって非決定性を使うか使わないかだけは最低を計算しないと後ろの計算の開始ステートが決まらなくて困るのでそれは向いてない」なるほど。てかそういう話を発表に入れてくださひ
2011-07-19 16:33:14#WFLP11 ※念のための注釈 Curry http://bit.ly/4r4Tkj というのはHaskell+Prologみたいな楽しい言語です。さっきの話でモナディックにというのはnextID :: Integerをstateに入れたstateモナド的なものでということ多分
2011-07-19 16:37:27@ikegami__ Curryとかの非決定性だと、failしない選択がある場合はその候補を最終的に選べないといけない、のでその辺とかが
2011-07-19 16:41:13#WFLP11 "New Functional Logic Design Pattern" タイトル通り。FLP、特にFuncion Pattern(パターンマッチのパターンに任意の関数適用式が書けるもの)を使ったデザインのパターン集。(パターンとパターンが混ざって紛らわしい(続
2011-07-19 16:59:52#WFLP11 Call-by-reference、Many-to-many、Quantification、Deep Selection、Elimination/Introduction of Nondeterminism。基本的な常識がしっかり言語化されてあって良いまとめ。
2011-07-19 17:06:06#LOPSTR11 "On the partial deduction of non-ground meta-interpreters" TermをTermに変数を変数に直マップする形で表現したプログラムを扱うメタインタプリタ(in Prolog)の、データ構造を変えない (続
2011-07-19 18:12:49#LOPSTR11 続) 形での、インタプリタの具体的に与えられた対象プログラムへのspecializationをやりたいんですけどメタインタプリタの書き方によっては完全な部分評価は不可能なことがあっちゃったりするとかなんとかの考察を投げてちょっとみんな考えようぜ的な発表。
2011-07-19 18:15:24#LOPSTR11 "Using Real Relaxations During Program Specialization" specializationが正しい条件として整数計画問題解きたいことがあるんだけど実数に緩和した上で正しくなるような条件に基づいてやってみた的お話
2011-07-19 18:38:18#LOPSTR11 "Proving Properties of Co-logic Programs by Unfold/Fold Transformations" inductionとcoinductionが(明確に分離されてはいるが)両方扱える論理型言語のプログラム変換規則
2011-07-19 19:06:44#LOPSTR11 "Simplifying Questions in Maude Declarative Debugger by Transforming Proof Trees"Algorithmic Debugging (失敗したテストケースがあったらその結果に至る (続
2011-07-19 19:22:15#LOPSTR11 続) 途中計算をダダーっと出して間違ってるのここですかここですかここですか的に質問しまくって来てバグを特定する感じのシステム、の要らん質問をしないようにできるだけ刈り込む計算木変換手法。対象言語は Maude http://bit.ly/5KVCZU
2011-07-19 19:26:29#LOPSTR11 なんか遅延評価というか評価順序の指定みたいなものがあるのがデバッガ作るのにも適切な質問決めるのにも面倒くさいのだがその辺をどうにかしたというのが今回のポイントらしい(多分
2011-07-19 19:30:28#LOPSTR11 会場から 「HaskellとかでもDebugしようとすると評価順変えてしまって大変なことにみたいな問題があって色々なんか似たようなことやってると思うけどどうなの」「遅延しているとこほどいたら無限ループするみたいなのが来たらどうなるの→ヤバいです」 等々
2011-07-19 19:35:05#LOPSTR11 こういうのって、他で研究されていると思うけど、複数のfailure caseを与えて計算の木構造のintersectionとってポイント絞るみたいなのってどんな感じにどうなるんだろう。
2011-07-19 19:36:01#AAIP11 http://www.cogsys.wiai.uni-bamberg.de/aaip11/ に来ている。Inductive Programming というのはいくつかの例(など)からプログラム自動生成する的ジャンル(の1つ)
2011-07-19 21:01:26#AAIP11 大きく分けて「プログラムをランダムに生成して例にマッチするうち何らかの順序(短いとか)でベストなものを取る」(G&T)アプローチと「貰った例の帰納的な構造を解析してそれっぽい再帰関数を作ろうとする」(Analytical)アプローチがある。まあそれはそうだろうなあ
2011-07-19 21:21:34