サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
logic.cs.tsukuba.ac.jp
logic.cs.tsukuba.ac.jp/~sat
ワンショット代数的効果から 非対称コルーチンへの変換 河原 悟, 亀山 幸義 PRO2019-01 June 6, 2019 ワンショット代数的効果から 非対称コルーチンへの変換 背景 コルーチン コルーチンの合成性 代数的効果 研究 操作の対応 実装 応用 まとめと課題 変換 関連研究 対称コルーチンと非対称コ ルーチン ワンショット継続とコルーチ ンの複製 0/26 背景 コルーチン 様々な言語が持っている Lua, Ruby, C#, Kotlin, etc. 強力なコントロール抽象 async/await、イテレーション、 etc. 合成性(composability)に欠ける 背景 1/26 背景 代数的効果 インターフェースと実装を分離できる モジュール性、合成性が高い いくつかのコントロール抽象との関係が知られている 代数的効果 7→ 限定継続 代数的効果 7→ Free モ
[S-8] 関数プログラミング 筑波大学 情報科学類 3年次実験(ソフトウェアサイエンス実験) 担当教員: 亀山幸義(kam[at]cs.tsukuba.ac.jp), 担当TA: 夏井,新田 (jikken[at]logic.cs.tsukuba.ac.jp) 時期と場所: 秋ABC, 座学・質問対応はMS Teamsのオンライン会議, 実作業を行う場所は自由 科目情報: 実験ホームページ 関数プログラミングの世界へようこそ! 「関数型プログラム言語」という言葉を聞いたことがありますか? 「聞いたことがあるけど何だかわからない」、 「興味はあるけど難しそう」という印象の人はいませんか? 関数型プログラム言語を使えば、 C言語を使うよりもずっと、 美しく、 簡潔で、 わかりやすい プログラムを書くことができます。 実験S-8 は、一番広く使われている関数型言語である OCaml (オーキャ
logic.cs.tsukuba.ac.jp/~kam
パーサーの作り方 パーサーを作るおおまかな手順は次のようになる。 文法を決める。 内部のデータ構造(クラス)を決める。 パースするコードを書く。 文法を決める miniJavaでは厳密な文法は用意されていない。そこでまず厳密な文法を定める。 文法を作るときには大きな枠組みの方から順に作っていくとよい。 miniJavaではプログラムはクラス宣言の集まりとして宣言される。そこでまず次のように文法を定める。 program ::= class_dec* これは(拡張)BNFという記法(の一種)で、「programはclass_decの0個以上の繰り返し(*で表す)である」という意味になる。 続いてクラス宣言に対応するclass_decの文法を定める。 クラス宣言は次のように定められていた。 class 識別子 { クラス本体 } そこでclass_decの文法は次のようにする。 class_d
[S-8] 関数プログラミング 筑波大学 情報科学類 3年次実験(ソフトウェアサイエンス実験) 担当教員: 亀山幸義(kam[at]cs.tsukuba.ac.jp), 海野広志(uhiro[at]cs.tsukuba.ac.jp) 担当TA: 徳田 (jikken[at]logic.cs.tsukuba.ac.jp) 時期と場所: 秋ABC, 座学・質問対応はMS Teamsのオンライン会議, 実作業を行う場所は自由 科目情報: 実験ホームページ 関数プログラミングの世界へようこそ! 「関数型プログラム言語」という言葉を聞いたことがありますか? 「聞いたことがあるけど何だかわからない」、 「興味はあるけど難しそう」という印象の人はいませんか? 関数型プログラム言語を使えば、 C言語を使うよりもずっと、 美しく、 簡潔で、 わかりやすい プログラムを書くことができます。 実験S-8 は、一
[S-8] 関数プログラミング 筑波大学 情報科学類 学生実験(ソフトウェアサイエンス実験) 担当教員: 亀山 幸義 (kam#cs.tsukuba.ac.jp; #を@に換えてくださ い) 担当TA: 高島、宮部 (jikken-TA#logic.cs.tsukuba.ac.jp; #を@に換えてください。) 時期と場所: 2学期,作業は学類計算機室、 座学の部屋はその都度指定。 関数プログラミングの世界へようこそ! 「関数型プログラム言語」という言葉を聞いたことがありますか? 「聞いたことがあるけど何だかわからない」、 「興味はあるけど難しそう」という印象の人はいませんか? 関数型プログラム言語を使えば、 C言語を使うよりもずっと、 美しく、 簡潔で、 わかりやすい プログラムを書くことができます。 実験S-8 は、一番広く使われている関数型言語である OCaml (オーキャムル,
ちょっと寄り道ー構文解析の話(オプショナル) 現在までの処理系には、ミニOCaml言語プログラムの構文解析を行ってくれる部分がないので、 たとえば、if 2=-1 then 1*2 else 1*(2+3) という式を、 If (Eq(IntLit 2, IntLit (-1)), Times(IntLit 1, IntLit 2), Times(IntLit 1, Plus(IntLit 2,IntLit 3))) というように exp型の式として書かなくてはならず、入力が大変であり、間違いやすい。 もし、 parse "if 2=-1 then 1*2 else 1*(2+3)" とすると、上記のexp型の式を生成してくれる関数parseがあれば、大変に便利 である。 ここで、「構文解析する」という言葉を使ってきたが、正確には以下の2つの プログラムから構成される。 字句解析器 (l
[J-8] 関数プログラミング: 2009年度版 筑波大学 情報科学類 学生実験(ソフトウェアサイエンス実験) 担当教員: 亀山 幸義 (kam#cs.tsukuba.ac.jp; #を@に換えてくださ い) 担当TA: 田中、小鍛治 (jikken-TA#logic.cs.tsukuba.ac.jp; #を@に換えてください。) 時期と場所: 2学期,作業は学類計算機室、 座学は総合研究棟Bの会議室(その都度指定) 関数プログラミングの世界へようこそ! 「関数型プログラム言語」という言葉を聞いたことがありますか? 「聞いたことがあるけど何だかわからない」、 「興味はあるけど難しそう」という印象の人はいませんか? 関数型プログラム言語を使えば、 C言語を使うよりもずっと、 美しく、 簡潔で、 わかりやすい プログラムを書くことができます。 実験J-
logic.cs.tsukuba.ac.jp/~yone
継続フェスタ (Continuation Fest 2008) 日時: 2008年 4月 13日 (日) 午後1:00から 場所: 東京大学秋葉原キャンパス, 秋葉原ダイビル 13階 プログラム 講演は英語で行われます。 オープニング 13:00-13:05 セッション1. 継続のデモ 13:05-13:45 浅井 健一 (お茶の水) Typing printf (継続を使った printf の型付け) 13:45-14:25 Oleg Kiselyov (FNMOC) Demo of persistent delimited continuations in OCaml for nested web transactions (ネストした web トランザ クションのための永続的限定継続のデモ) セッション2. 継続の応用 14:35-15:05 伊東 勝利 (Kahuaプロジェクト)
このページを最初にブックマークしてみませんか?
『logic.cs.tsukuba.ac.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く