勉強会 第 0 回

    発表者 : @none_toka
目的

●   TaPL の内容を簡単に紹介
    –   勉強会の進め方の決定のための判断材料
        ●   形式
        ●   時間見積り、頻度
        ●   直近のスケジュール




                             2
なぜ、オマエが
紹介するのか ?

           3
●   大学院時代は、この分野の研究者
●   本書も、当時、輪講で読了済み

 自分にとっては、
● 今回の勉強会で、 様々な立場の意見や知見が


  得られると期待



                          4
目次

●   概要
●   本書の構造




            5
目次

●   概要
●   本書の構造




            6
Types and Programming Languages

●   型システム (type system)
●   型システムから見たプログラミング言語

の研究における基本的な定義・技術・成果を
分かりやすく解説 !




                   Benjamin C. Pierce


                                        7
型システム ?

          8
「型システムとは…」 by shikuma

●   型 : プログラムが取り扱うデータの種類や、
    プログラムの挙動自体を表すもの
    –   データ型の例 : int, float, String, int 配列
    –   プログラム自体の挙動型 :
        int → String ( 整数を受け取って文字列を返す関数 )
●   型システム : プログラムの各要素に付与された型情報を
    統合・分析する手法
    –   プログラムの安全性 ( データ整合性、セキュリティ、
        停止性など ) の保証
    –   最適化のための有用情報の抽出                   詳しくは第 1 章へ !

                                                        9
この本、勉強して、
 どうなるの ?

            10
本書を勉強することのメリット

●   理論的に安全なプログラムとは何かを
    考えたり、議論するための基本的な技術を、
    身に付けられる !
●   有用かつ実用的な様々な型を
    知ることができる !
●   理論だけではなく型システムの実装の基礎も
    習得可能
+ プログラミング言語の壁を越えて考える基本的かつ汎用的な力 !

                               11
でも、すいません m(_ _)m

基本、 ML 風の関数型言語です( monad いません)

一応、一部 Java 風オブジェクト指向の型や考え方
も出てきますけど…

…慎しんでお詫び申し上げます




                                12
目次

●   概要
●   本書の構造 ( 配布資料参照 )




                       13
本書の大雑把な構成

●   準備編 : 導入、事前知識 (Preface, 第 1, 2 章 )
●   基本編 : 型無し、単純型の話 ( 第 3-14 章 )
    –   ペア型、サム型、参照型、例外型なども登場
●   発展編 : 多少複雑な型 ( 第 14-32 章 ) ex. 型クラス
    部分型、再帰型、多相型、高階型システム

ex. 継承関係   ex. Tree や List 型   ex. 型変数、ジェネリックス




                                                 14
各章の種類

●   理論の章 : ( 通常の ) 理論的な解説
●   実装 (implementation) の章 :
    ML での実装の解説           手動かさないと
                        あまり意味ないかも
●   超理論 (metatheory) の章 :
    複雑な理論の深い部分の解説           そこそこ難解

●   Case Study: オブジェクト指向関係


                                     15
目的ごとの学び方の案

●   プログラミング言語における型システムを
    単に学びたい場合 :
    実装の章、超理論の章の大半をスキップ
●   関数型言語のみに興味ある場合 :
    case study をスキップ
●   ( 参照 ) 配布資料 : 章の依存関係グラフ



                              16
参考情報

●   著者 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

TAPL 勉強会(紹介編)

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