Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

TAPL 勉強会(紹介編)

1 297 vues

Publié le

  • Soyez le premier à commenter

TAPL 勉強会(紹介編)

  1. 1. 勉強会 第 0 回 発表者 : @none_toka
  2. 2. 目的● TaPL の内容を簡単に紹介 – 勉強会の進め方の決定のための判断材料 ● 形式 ● 時間見積り、頻度 ● 直近のスケジュール 2
  3. 3. なぜ、オマエが紹介するのか ? 3
  4. 4. ● 大学院時代は、この分野の研究者● 本書も、当時、輪講で読了済み 自分にとっては、● 今回の勉強会で、 様々な立場の意見や知見が 得られると期待 4
  5. 5. 目次● 概要● 本書の構造 5
  6. 6. 目次● 概要● 本書の構造 6
  7. 7. Types and Programming Languages● 型システム (type system)● 型システムから見たプログラミング言語の研究における基本的な定義・技術・成果を分かりやすく解説 ! Benjamin C. Pierce 7
  8. 8. 型システム ? 8
  9. 9. 「型システムとは…」 by shikuma● 型 : プログラムが取り扱うデータの種類や、 プログラムの挙動自体を表すもの – データ型の例 : int, float, String, int 配列 – プログラム自体の挙動型 : int → String ( 整数を受け取って文字列を返す関数 )● 型システム : プログラムの各要素に付与された型情報を 統合・分析する手法 – プログラムの安全性 ( データ整合性、セキュリティ、 停止性など ) の保証 – 最適化のための有用情報の抽出 詳しくは第 1 章へ ! 9
  10. 10. この本、勉強して、 どうなるの ? 10
  11. 11. 本書を勉強することのメリット● 理論的に安全なプログラムとは何かを 考えたり、議論するための基本的な技術を、 身に付けられる !● 有用かつ実用的な様々な型を 知ることができる !● 理論だけではなく型システムの実装の基礎も 習得可能+ プログラミング言語の壁を越えて考える基本的かつ汎用的な力 ! 11
  12. 12. でも、すいません m(_ _)m基本、 ML 風の関数型言語です( monad いません)一応、一部 Java 風オブジェクト指向の型や考え方も出てきますけど……慎しんでお詫び申し上げます 12
  13. 13. 目次● 概要● 本書の構造 ( 配布資料参照 ) 13
  14. 14. 本書の大雑把な構成● 準備編 : 導入、事前知識 (Preface, 第 1, 2 章 )● 基本編 : 型無し、単純型の話 ( 第 3-14 章 ) – ペア型、サム型、参照型、例外型なども登場● 発展編 : 多少複雑な型 ( 第 14-32 章 ) ex. 型クラス 部分型、再帰型、多相型、高階型システムex. 継承関係 ex. Tree や List 型 ex. 型変数、ジェネリックス 14
  15. 15. 各章の種類● 理論の章 : ( 通常の ) 理論的な解説● 実装 (implementation) の章 : ML での実装の解説 手動かさないと あまり意味ないかも● 超理論 (metatheory) の章 : 複雑な理論の深い部分の解説 そこそこ難解● Case Study: オブジェクト指向関係 15
  16. 16. 目的ごとの学び方の案● プログラミング言語における型システムを 単に学びたい場合 : 実装の章、超理論の章の大半をスキップ● 関数型言語のみに興味ある場合 : case study をスキップ● ( 参照 ) 配布資料 : 章の依存関係グラフ 16
  17. 17. 参考情報● 著者 HP: http://www.cis.upenn.edu/~bcpierce/tapl/● 姉妹本 : Advanced Topics in Types and Programming Languages, edited by B. C. Pierce – 公式 HP: http://www.cis.upenn.edu/~bcpierce/attapl/ 17

×