SlideShare a Scribd company logo
1 of 17
Download to read offline
勉強会 第 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

More Related Content

Viewers also liked

論理と計算のしくみ 5.3 型付きλ計算 (前半)
論理と計算のしくみ 5.3 型付きλ計算 (前半)論理と計算のしくみ 5.3 型付きλ計算 (前半)
論理と計算のしくみ 5.3 型付きλ計算 (前半)Lintaro Ina
 
勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとはTakuya Akiba
 
TaPL読書会 #9 ~ §14 Exception
TaPL読書会 #9 ~ §14 ExceptionTaPL読書会 #9 ~ §14 Exception
TaPL読書会 #9 ~ §14 ExceptionAkihiro Miyashita
 
TaPL名古屋 Chap2
TaPL名古屋 Chap2TaPL名古屋 Chap2
TaPL名古屋 Chap2Keita Saitou
 
ラムダ計算入門
ラムダ計算入門ラムダ計算入門
ラムダ計算入門Eita Sugimoto
 
Learning Convolutional Neural Networks for Graphs
Learning Convolutional Neural Networks for GraphsLearning Convolutional Neural Networks for Graphs
Learning Convolutional Neural Networks for GraphsTakuya Akiba
 
TDD のこころ @ OSH2014
TDD のこころ @ OSH2014TDD のこころ @ OSH2014
TDD のこころ @ OSH2014Takuto Wada
 

Viewers also liked (7)

論理と計算のしくみ 5.3 型付きλ計算 (前半)
論理と計算のしくみ 5.3 型付きλ計算 (前半)論理と計算のしくみ 5.3 型付きλ計算 (前半)
論理と計算のしくみ 5.3 型付きλ計算 (前半)
 
勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは
 
TaPL読書会 #9 ~ §14 Exception
TaPL読書会 #9 ~ §14 ExceptionTaPL読書会 #9 ~ §14 Exception
TaPL読書会 #9 ~ §14 Exception
 
TaPL名古屋 Chap2
TaPL名古屋 Chap2TaPL名古屋 Chap2
TaPL名古屋 Chap2
 
ラムダ計算入門
ラムダ計算入門ラムダ計算入門
ラムダ計算入門
 
Learning Convolutional Neural Networks for Graphs
Learning Convolutional Neural Networks for GraphsLearning Convolutional Neural Networks for Graphs
Learning Convolutional Neural Networks for Graphs
 
TDD のこころ @ OSH2014
TDD のこころ @ OSH2014TDD のこころ @ OSH2014
TDD のこころ @ OSH2014
 

Similar to TAPL 勉強会(紹介編)

さくさくテキストマイニング入門セッション
さくさくテキストマイニング入門セッションさくさくテキストマイニング入門セッション
さくさくテキストマイニング入門セッションantibayesian 俺がS式だ
 
論文の書き方・読み方
論文の書き方・読み方論文の書き方・読み方
論文の書き方・読み方Satoshi Miura
 
言語資源と付き合う
言語資源と付き合う言語資源と付き合う
言語資源と付き合うYuya Unno
 
深層学習(岡本孝之 著) - Deep Learning chap.1 and 2
深層学習(岡本孝之 著) - Deep Learning chap.1 and 2深層学習(岡本孝之 著) - Deep Learning chap.1 and 2
深層学習(岡本孝之 著) - Deep Learning chap.1 and 2Masayoshi Kondo
 
論文に関する基礎知識2016
 論文に関する基礎知識2016 論文に関する基礎知識2016
論文に関する基礎知識2016Mai Otsuki
 
クイズ・Python勝ち抜きバトル pycon jp_2017
クイズ・Python勝ち抜きバトル pycon jp_2017クイズ・Python勝ち抜きバトル pycon jp_2017
クイズ・Python勝ち抜きバトル pycon jp_2017Motohiro Ueki
 
MAごころを、君に - #7 ChatGPT勉強会(2023-03-28)
MAごころを、君に - #7 ChatGPT勉強会(2023-03-28)MAごころを、君に - #7 ChatGPT勉強会(2023-03-28)
MAごころを、君に - #7 ChatGPT勉強会(2023-03-28)Webpla LLC.
 
PHP基礎勉強会
PHP基礎勉強会PHP基礎勉強会
PHP基礎勉強会Yuji Otani
 
サポーターズ勉強会スライド 2018/2/27
サポーターズ勉強会スライド 2018/2/27サポーターズ勉強会スライド 2018/2/27
サポーターズ勉強会スライド 2018/2/27Kensuke Mitsuzawa
 
TypeScript で型を上手く使う試み.pdf
TypeScript で型を上手く使う試み.pdfTypeScript で型を上手く使う試み.pdf
TypeScript で型を上手く使う試み.pdfRyo Higashigawa
 
ワークショップ「ゲーム開発チームにおけるパトレット」
ワークショップ「ゲーム開発チームにおけるパトレット」ワークショップ「ゲーム開発チームにおけるパトレット」
ワークショップ「ゲーム開発チームにおけるパトレット」Masaru Nagaku
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ増田 亨
 
【Schoo web campus】「相手に伝わる」文章を書く技術 2限目
【Schoo web campus】「相手に伝わる」文章を書く技術 2限目【Schoo web campus】「相手に伝わる」文章を書く技術 2限目
【Schoo web campus】「相手に伝わる」文章を書く技術 2限目schoowebcampus
 
effectsパッケージを用いた一般化線形モデルの可視化
effectsパッケージを用いた一般化線形モデルの可視化effectsパッケージを用いた一般化線形モデルの可視化
effectsパッケージを用いた一般化線形モデルの可視化Yu Tamura
 
Rブートキャンプ
RブートキャンプRブートキャンプ
RブートキャンプKosuke Sato
 
研究・企業・生き方について 情報科学若手の会2011
研究・企業・生き方について 情報科学若手の会2011研究・企業・生き方について 情報科学若手の会2011
研究・企業・生き方について 情報科学若手の会2011Preferred Networks
 
言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクール言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクールYuya Unno
 
Jubatusの紹介@第6回さくさくテキストマイニング
Jubatusの紹介@第6回さくさくテキストマイニングJubatusの紹介@第6回さくさくテキストマイニング
Jubatusの紹介@第6回さくさくテキストマイニングYuya Unno
 
社内勉強会 2014/10/08
社内勉強会 2014/10/08社内勉強会 2014/10/08
社内勉強会 2014/10/08Takaki Yoneyama
 
TVMの次期グラフIR Relayの紹介
TVMの次期グラフIR Relayの紹介TVMの次期グラフIR Relayの紹介
TVMの次期グラフIR Relayの紹介Takeo Imai
 

Similar to TAPL 勉強会(紹介編) (20)

さくさくテキストマイニング入門セッション
さくさくテキストマイニング入門セッションさくさくテキストマイニング入門セッション
さくさくテキストマイニング入門セッション
 
論文の書き方・読み方
論文の書き方・読み方論文の書き方・読み方
論文の書き方・読み方
 
言語資源と付き合う
言語資源と付き合う言語資源と付き合う
言語資源と付き合う
 
深層学習(岡本孝之 著) - Deep Learning chap.1 and 2
深層学習(岡本孝之 著) - Deep Learning chap.1 and 2深層学習(岡本孝之 著) - Deep Learning chap.1 and 2
深層学習(岡本孝之 著) - Deep Learning chap.1 and 2
 
論文に関する基礎知識2016
 論文に関する基礎知識2016 論文に関する基礎知識2016
論文に関する基礎知識2016
 
クイズ・Python勝ち抜きバトル pycon jp_2017
クイズ・Python勝ち抜きバトル pycon jp_2017クイズ・Python勝ち抜きバトル pycon jp_2017
クイズ・Python勝ち抜きバトル pycon jp_2017
 
MAごころを、君に - #7 ChatGPT勉強会(2023-03-28)
MAごころを、君に - #7 ChatGPT勉強会(2023-03-28)MAごころを、君に - #7 ChatGPT勉強会(2023-03-28)
MAごころを、君に - #7 ChatGPT勉強会(2023-03-28)
 
PHP基礎勉強会
PHP基礎勉強会PHP基礎勉強会
PHP基礎勉強会
 
サポーターズ勉強会スライド 2018/2/27
サポーターズ勉強会スライド 2018/2/27サポーターズ勉強会スライド 2018/2/27
サポーターズ勉強会スライド 2018/2/27
 
TypeScript で型を上手く使う試み.pdf
TypeScript で型を上手く使う試み.pdfTypeScript で型を上手く使う試み.pdf
TypeScript で型を上手く使う試み.pdf
 
ワークショップ「ゲーム開発チームにおけるパトレット」
ワークショップ「ゲーム開発チームにおけるパトレット」ワークショップ「ゲーム開発チームにおけるパトレット」
ワークショップ「ゲーム開発チームにおけるパトレット」
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
 
【Schoo web campus】「相手に伝わる」文章を書く技術 2限目
【Schoo web campus】「相手に伝わる」文章を書く技術 2限目【Schoo web campus】「相手に伝わる」文章を書く技術 2限目
【Schoo web campus】「相手に伝わる」文章を書く技術 2限目
 
effectsパッケージを用いた一般化線形モデルの可視化
effectsパッケージを用いた一般化線形モデルの可視化effectsパッケージを用いた一般化線形モデルの可視化
effectsパッケージを用いた一般化線形モデルの可視化
 
Rブートキャンプ
RブートキャンプRブートキャンプ
Rブートキャンプ
 
研究・企業・生き方について 情報科学若手の会2011
研究・企業・生き方について 情報科学若手の会2011研究・企業・生き方について 情報科学若手の会2011
研究・企業・生き方について 情報科学若手の会2011
 
言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクール言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクール
 
Jubatusの紹介@第6回さくさくテキストマイニング
Jubatusの紹介@第6回さくさくテキストマイニングJubatusの紹介@第6回さくさくテキストマイニング
Jubatusの紹介@第6回さくさくテキストマイニング
 
社内勉強会 2014/10/08
社内勉強会 2014/10/08社内勉強会 2014/10/08
社内勉強会 2014/10/08
 
TVMの次期グラフIR Relayの紹介
TVMの次期グラフIR Relayの紹介TVMの次期グラフIR Relayの紹介
TVMの次期グラフIR Relayの紹介
 

TAPL 勉強会(紹介編)

  • 1. 勉強会 第 0 回 発表者 : @none_toka
  • 2. 目的 ● TaPL の内容を簡単に紹介 – 勉強会の進め方の決定のための判断材料 ● 形式 ● 時間見積り、頻度 ● 直近のスケジュール 2
  • 4. 大学院時代は、この分野の研究者 ● 本書も、当時、輪講で読了済み 自分にとっては、 ● 今回の勉強会で、 様々な立場の意見や知見が 得られると期待 4
  • 5. 目次 ● 概要 ● 本書の構造 5
  • 6. 目次 ● 概要 ● 本書の構造 6
  • 7. Types and Programming Languages ● 型システム (type system) ● 型システムから見たプログラミング言語 の研究における基本的な定義・技術・成果を 分かりやすく解説 ! Benjamin C. Pierce 7
  • 9. 「型システムとは…」 by shikuma ● 型 : プログラムが取り扱うデータの種類や、 プログラムの挙動自体を表すもの – データ型の例 : int, float, String, int 配列 – プログラム自体の挙動型 : int → String ( 整数を受け取って文字列を返す関数 ) ● 型システム : プログラムの各要素に付与された型情報を 統合・分析する手法 – プログラムの安全性 ( データ整合性、セキュリティ、 停止性など ) の保証 – 最適化のための有用情報の抽出 詳しくは第 1 章へ ! 9
  • 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