SlideShare a Scribd company logo
GC生誕50周年を
                        祝って
                    A Semicentennial history of the GC

                                                    nari/中村 成洋
                                      ネットワーク応用通信研究所
GC生誕50周年を祝って - A Semicentennial history of the GC         Powered by Rabbit 0.6.4
自己紹介
自己紹介


       ✓ nari/中村 成洋です
       ✓ 福岡生まれ、島根在住
       ✓ NaCl勤務


                                                               2/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
自己紹介

       ✓ GC歴 3.5年(駆け出し)
               ✓ GC界の中では最弱

       ✓ アイス工場歴 3年
       ✓ 大体一緒くらい

                                                               3/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
本を書きました
 
GC本を知ってる人
    ノシ
おぉ…
持ってる人
  ノシ
なんと…
全部読んだ人
  ノシ
僕だけですね!
今日話すこと
GCに興味を持ってもらう
今日話すこと

       ✓ GCとは
       ✓ 偉人達と共にあるGC
       ✓ 魅力
       ✓ まとめ

                                                             14/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
今日はなす事

       ✓ GCとは
       ✓ 偉人達と共にあるGC
       ✓ 魅力
       ✓ まとめ

                                                             15/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
GCとは
GCとは

                           プログラムが動的に確
                           保したメモリ領域のう
                           ち、不要になった領域を
                           自動的に解放する機能
                              [「ガベージコレクション - Wikipedia」より引用]


                                                                 17/99
GC生誕50周年を祝って - A Semicentennial history of the GC       Powered by Rabbit 0.6.4
GC = ゴミ集め
ナウい言語にGCは必須
       ✓ Ruby
       ✓ Perl
       ✓ Java
       ✓ Haskell
       ✓ etc..
                                                             19/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
そんなGCの仕組みは驚く
 ほど知られていない
さまざまな噂
GC = 魔法?
魔法として登場




        よくわかる現代魔法 2 ガーベージコ
        レクター              23/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
帯にも

                           古(いにしえ)からの魔
                           法、ガベージコレクショ
                           ンの秘密を完全解説
           [「ガベージコレクションのアルゴリズムと実装 − 帯」より
                                     引用]


                                                                   24/99
GC生誕50周年を祝って - A Semicentennial history of the GC         Powered by Rabbit 0.6.4
GC = 一子相伝?
GC好き = 秘密結社?
プログラミングが本当に
               好きな人の中にはGC
               Loverというタイプの人
               が結構います。教科書
               がほとんどないので、な
               にか秘密結社めかた連
               帯感がその人たちの間
               にあるような気がしま
               す。
        [「ガベージコレクションのアルゴリズムと実装 − 監修者                            27/99
GC生誕50周年を祝って - A Semicentennial history of the GC 前書き」より引用by Rabbit 0.6.4
                                                        Powered ]
そんなGC
歴史は古い


       ✓ 1960年に論文発表
       ✓ 今年は「GC生誕50周年」!!
       ✓ GCイヤー


                                                             29/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
歴史を
さかのぼってみよう
今日はなす事

       ✓ GCとは
       ✓ 偉人達と共にあるGC
       ✓ 魅力
       ✓ まとめ

                                                             31/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
偉人達と共にあるGC
実はGCは偉人達と共にあ
      る
John McCarthy
(ジョン・マッカーシー)
 


    http://www.flickr.com/photos/null0/272015955/
どんな人?


       ✓ LISPの父
       ✓ 人工知能の父
       ✓ チューリング賞受賞


                                                             36/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
GCとのつきあい
GCとのつきあい


       ✓ 実はGCの父でもある
       ✓ Mark Sweep GC
       ✓ 50年前に論文を発表

                                                             38/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
LISPからGCは産まれた

       ✓ 最初はなかった
       ✓ Listの操作とかが面倒だったらし
         い
       ✓ ほどなくしてD. Edwardsが実装し
         たそう
                                                             39/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
こんな話も
ルンバ




                                                                   41/99
GC生誕50周年を祝って - A Semicentennial history of the GC         Powered by Rabbit 0.6.4
ルンバの中ではLISPが動
    いている!
やっぱゴミ集めはLispに
                           任せろって
                 [「Lightweight Language Weekend: Language Update
                           (Common Lisp) 竹内郁雄先生」より引用]



                                                                    43/99
GC生誕50周年を祝って - A Semicentennial history of the GC          Powered by Rabbit 0.6.4
Marvin L. Minsky
(マービン・ミンスキー)
 


taken by Bcjordan : http://en.wikipedia.org/wiki/File:Marvin_Minsky_at_OLPCb.jpg
どんな人?


       ✓ 人工知能の父
       ✓ チューリング賞受賞


                                                             46/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
GCとのつきあい


       ✓ GCアルゴリズムを作成
       ✓ Copy GC(47年前)


                                                             47/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
Edsger Wybe Dijkstra
(エドガー・ダイクストラ)
 


photo ©2002 Hamilton Richards : http://userweb.cs.utexas.edu/users/EWD/
経歴


       ✓ ダイクストラ法(最短経路問題)
       ✓ セマフォ考案
       ✓ チューリング賞受賞


                                                                  50/99
GC生誕50周年を祝って - A Semicentennial history of the GC        Powered by Rabbit 0.6.4
GCとのつきあい


       ✓ 三色マーキング
       ✓ Dijkstraのライトバリア


                                                             51/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
Donald Ervin Knuth
(ドナルド・クヌース)
 


Flickr user Jacob Appelbaum : http://flickr.com/photos/ioerror/56359970/in/set-1220741/
経歴
       ✓ Tex
       ✓ METAFONT
       ✓ The Art of Computer
         Programming 鋭意執筆中
       ✓ チューリング賞受賞
                                                                  54/99
GC生誕50周年を祝って - A Semicentennial history of the GC        Powered by Rabbit 0.6.4
GCとのつきあい



       ✓ Lisp2(マークコンパクトGC)



                                                             55/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
Guy Steele Jr.
(ガイ・スティール)
 


    http://labs.oracle.com/people/mybio.php?uid=25706
経歴

       ✓ Schemeの設計
       ✓ Java言語仕様まとめ
       ✓ 並列アルゴリズムの研究
       ✓ ACMグレース・ホッパー賞受賞

                                                                  58/99
GC生誕50周年を祝って - A Semicentennial history of the GC        Powered by Rabbit 0.6.4
GCとのつきあい

       ✓ 並列GCの論文発表(学生時代)
       ✓ ACM Student Award 1975の1位
         論文
       ✓ GCの研究で世界的に有名になっ
         た
                                                             59/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
竹内郁雄先生
 


    http://jibun.atmarkit.co.jp/ljibun01/rensai/genius/01/01.html
経歴

       ✓ 竹内関数(≒tak関数)
       ✓ LISPの神様
       ✓ TAO
       ✓ 未踏ソフトウェア事業

                                                                  62/99
GC生誕50周年を祝って - A Semicentennial history of the GC        Powered by Rabbit 0.6.4
 


    http://jibun.atmarkit.co.jp/ljibun01/rensai/genius/01/01.html
GCとのつきあい

       ✓ 実時間 GC アルゴリズム実装 =>
         TAO
       ✓ GC本監修を引き受けてくださっ
         た!!

                                                             64/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
まつもとゆきひろさん
 
経歴


       ✓ Ruby作者
       ✓ 日経BP技術賞大賞受賞


                                                                  67/99
GC生誕50周年を祝って - A Semicentennial history of the GC        Powered by Rabbit 0.6.4
GCとのつきあい


       ✓ CRubyにGCを実装
       ✓ お仕事でGCを実装(レア!)


                                                             68/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
紹介しきれないけど、まだま
   だ偉人がいる!
竹内先生曰くGCとは

                           50年近くも火が消えず
                           に (ボーボーと燃えてい
                           るわけではないが) 研
                           究が続けられている基
                           幹技術である。
          [「2008年度下期未踏ユース「オープンかつポータブルな
          データベースガーベジコレクション」採択理由」より引用]

                                                             70/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
なぜGCは多くの偉人を引
   きつけたのか?
その魅力について
今日はなす事

       ✓ GCとは
       ✓ 偉人達と共にあるGC
       ✓ 魅力
       ✓ まとめ

                                                             73/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
魅力
私が考える魅力



           1. 制約が多い



                                                             75/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
制約が多い
GCは自由ではない


       ✓ 言語処理系に気を遣ったり
       ✓ OSに気を遣ったり


                                                             77/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
制約から工夫が生まれる
工夫を作るのは楽しい!
私が考える魅力


           1. 制約が多い
           2. 広い土壌


                                                             80/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
広い土壌
広い土壌


       ✓ 様々な人を受け入れる寛容さ
       ✓ 偉人達を見てもいろんな分野の人
         が!!


                                                             82/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
私が考える魅力


           1. 制約が多い
           2. 広い土壌
           3. 楽しい


                                                             83/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
楽しい
楽しい

       ✓ 純粋に楽しい
       ✓ 偉人達のCoolな工夫が見れる
       ✓ さっぱり上手く行かない、から楽し
         い

                                                                   85/99
GC生誕50周年を祝って - A Semicentennial history of the GC         Powered by Rabbit 0.6.4
私が考える魅力

           1. 制約が多い
           2. 広い土壌
           3. 楽しい
           4. 勉強になる

                                                             86/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
勉強になる
それぞれの偉人達を振り返る


       ✓ 決してGCが本業ではない
       ✓ それ以外の分野で大きな実績
       ✓ GCは修行であった


                                                             88/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
修行としてのGC!!
GC = 「虎の穴」
今日はなす事

       ✓ GCとは
       ✓ 偉人達と共にあるGC
       ✓ 魅力
       ✓ まとめ

                                                             91/99
GC生誕50周年を祝って - A Semicentennial history of the GC   Powered by Rabbit 0.6.4
まとめ
GCは多くの人にとって
 楽しい修行である
そんなGCを使ってばかり
  じゃもったいない
偉人達を見習って…
GCを知って遠くへ行こう!
最後に
 
ご静聴
ありがとうございました。

More Related Content

More from Narihiro Nakamura (20)

PDF
RUBYLAND
Narihiro Nakamura
 
PDF
Ruby's GC 20
Narihiro Nakamura
 
PDF
桐島、Rubyやめるってよ
Narihiro Nakamura
 
PDF
Parallel worlds of CRuby's GC
Narihiro Nakamura
 
PDF
Parallel worlds of CRuby's GC
Narihiro Nakamura
 
PDF
G1GCへ伸びていた「いばらの道」
Narihiro Nakamura
 
PDF
円環の理(Garbage Collection)
Narihiro Nakamura
 
PDF
シャイなRubyistがRubyKaigiでできること
Narihiro Nakamura
 
PDF
われわれは、GCをX倍遅くできる
Narihiro Nakamura
 
PDF
GCが止まらない
Narihiro Nakamura
 
PDF
シャイなRubyistにできること
Narihiro Nakamura
 
PDF
Railsハイパー実践講座-第35回NaCl勉強会
Narihiro Nakamura
 
PDF
Androidの中身-第26回NaCl社内勉強会
Narihiro Nakamura
 
PDF
RubyのGC改善による私のエコライフ
Narihiro Nakamura
 
PDF
絶対復習について
Narihiro Nakamura
 
PDF
AlgorithmDesign01
Narihiro Nakamura
 
PDF
make of MiniGC
Narihiro Nakamura
 
PDF
本当は怖いObjectSpace.each_object
Narihiro Nakamura
 
PDF
Talk In Point Of Gc Once In While
Narihiro Nakamura
 
Ruby's GC 20
Narihiro Nakamura
 
桐島、Rubyやめるってよ
Narihiro Nakamura
 
Parallel worlds of CRuby's GC
Narihiro Nakamura
 
Parallel worlds of CRuby's GC
Narihiro Nakamura
 
G1GCへ伸びていた「いばらの道」
Narihiro Nakamura
 
円環の理(Garbage Collection)
Narihiro Nakamura
 
シャイなRubyistがRubyKaigiでできること
Narihiro Nakamura
 
われわれは、GCをX倍遅くできる
Narihiro Nakamura
 
GCが止まらない
Narihiro Nakamura
 
シャイなRubyistにできること
Narihiro Nakamura
 
Railsハイパー実践講座-第35回NaCl勉強会
Narihiro Nakamura
 
Androidの中身-第26回NaCl社内勉強会
Narihiro Nakamura
 
RubyのGC改善による私のエコライフ
Narihiro Nakamura
 
絶対復習について
Narihiro Nakamura
 
AlgorithmDesign01
Narihiro Nakamura
 
make of MiniGC
Narihiro Nakamura
 
本当は怖いObjectSpace.each_object
Narihiro Nakamura
 
Talk In Point Of Gc Once In While
Narihiro Nakamura
 

Recently uploaded (9)

PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
PDF
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
PDF
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
Ad

GC生誕50周年を祝って