言語の世界
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

言語の世界

on

  • 6,514 views

デブサミ12

デブサミ12

Statistics

Views

Total Views
6,514
Views on SlideShare
6,454
Embed Views
60

Actions

Likes
17
Downloads
86
Comments
0

6 Embeds 60

http://pokotsun.mydns.jp 46
http://us-w1.rockmelt.com 6
http://paper.li 3
https://twitter.com 3
http://s.deeeki.com 1
http://translate.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

言語の世界 Presentation Transcript

  • 1. 言語の世界 ネットワーク応用通信研究所 楽天 技術研究所 Rubyアソシエーション @yukihiro_matz まつもとゆきひろ Yukihiro "Matz" Matsumoto言語の世界 Powered by Rabbit 0.9.2
  • 2. プログラミング言語って? 言語ってなんだろう?言語の世界 Powered by Rabbit 0.9.2
  • 3. プログラミング言語って? プログラム=手順書 手順書記述用人工言語言語の世界 Powered by Rabbit 0.9.2
  • 4. プログラミング言語って? プログラム=理想記述 思考表現用人工言語言語の世界 Powered by Rabbit 0.9.2
  • 5. せめぎあうふたつの立場 機械のためか? 人間のためか?言語の世界 Powered by Rabbit 0.9.2
  • 6. FORTRAN (1954) FORmula TRANslator言語の世界 Powered by Rabbit 0.9.2
  • 7. FORTRAN (1954) 人間のため 数式でプログラムできるよう言語の世界 Powered by Rabbit 0.9.2
  • 8. FORTRAN (1954) 機械のため 速く計算できるためにはどんなことでも言語の世界 Powered by Rabbit 0.9.2
  • 9. FORTRAN (1954) ループアンローリング ベクトル化言語の世界 Powered by Rabbit 0.9.2
  • 10. FORTRAN (1954) 背景 コンピュータが遅かった言語の世界 Powered by Rabbit 0.9.2
  • 11. FORTRAN (1954) 背景 「言語の常識」がまだなかった言語の世界 Powered by Rabbit 0.9.2
  • 12. LISP (1958) LISt Processor言語の世界 Powered by Rabbit 0.9.2
  • 13. LISP (1958) 人間のため 数学的概念からスタート ラムダ計算言語の世界 Powered by Rabbit 0.9.2
  • 14. LISP (1958) 機械のため IBM704計算機 car=content of address register cdr=content of data register言語の世界 Powered by Rabbit 0.9.2
  • 15. LISP (1958) 人間のため ガーベージコレクター言語の世界 Powered by Rabbit 0.9.2
  • 16. LISP (1958) 人間のため Lispプログラマは値はなんでも知っている が、コストについてはなにも知らない言語の世界 Powered by Rabbit 0.9.2
  • 17. LISP vs FORTRAN 人間主義 vs 機械主義言語の世界 Powered by Rabbit 0.9.2
  • 18. 勝者は? Algol!言語の世界 Powered by Rabbit 0.9.2
  • 19. 漁夫の利 原始的すぎるFORTRAN 数学的すぎるLISP 求められたのはアルゴリズム記述言語の世界 Powered by Rabbit 0.9.2
  • 20. 新たな伝統の誕生 Algolは滅びぬ! 何度でもよみがえるさ言語の世界 Powered by Rabbit 0.9.2
  • 21. Algol属 Algol → PL/I Algol → Pascal言語の世界 Powered by Rabbit 0.9.2
  • 22. Algol属 Ada, Eiffel, C, C++, Java,...言語の世界 Powered by Rabbit 0.9.2
  • 23. Lispへの揺り戻し Smalltalk, Scheme, Ruby,...言語の世界 Powered by Rabbit 0.9.2
  • 24. 言語のカンブリア爆発 カンブリア爆発 古生代カンブリア紀の 間に突如として今日見 られる動物の「門」が出 そろった現象言語の世界 Powered by Rabbit 0.9.2
  • 25. 言語のカンブリア爆発 言語のカンブリア爆発 1960年代後半から 1970年代前半までに 多種多様な言語が誕 生した現象言語の世界 Powered by Rabbit 0.9.2
  • 26. 言語のカンブリア爆発 現在の「重要」な言語分類の基礎 システムプログラミング言語 C:1972 オブジェクト指向言語 Simula:1967 スクリプト言語 Shell:1971 関数型言語 ML:1972言語の世界 Powered by Rabbit 0.9.2
  • 27. 言語のカンブリア爆発 「変な言語」も 配列指向言語 APL:1960 論理型言語 Prolog:1972 並列言語 アクターモデル:1973言語の世界 Powered by Rabbit 0.9.2
  • 28. つまり、どういうことか キバヤシ 優れた言語のアイディ アは1970年代までに 出揃っているのだよ! MMRメンバー なんだってーーっ!!言語の世界 Powered by Rabbit 0.9.2
  • 29. 言語設計者受難の時代 どうせ既存のものの組 み合わせさ言語の世界 Powered by Rabbit 0.9.2
  • 30. そうは言っても 人気の言語はそれなりに新しい Perl (1986) Python (1990) Ruby (1995) PHP(1995)言語の世界 Powered by Rabbit 0.9.2
  • 31. そうは言っても 人気の言語はそれなりに新しい Java (1995) C# (2000) Scala (2003) Erlang (1986)言語の世界 Powered by Rabbit 0.9.2
  • 32. 新しい? とは言っても10年、20年言語の世界 Powered by Rabbit 0.9.2
  • 33. 新しい? 言語の世界じゃ10年く らいじゃまだまだはなた れ小僧さ言語の世界 Powered by Rabbit 0.9.2
  • 34. 新しい言語の動機 作りたかったから 新しいパラダイム 新しい環境 新しい制約言語の世界 Powered by Rabbit 0.9.2
  • 35. 新しいパラダイム 構造化プログラミング オブジェクト指向プログラミング 関数型プログラミング言語の世界 Powered by Rabbit 0.9.2
  • 36. 新しいパラダイム ここ20年くらい登場してないなあ言語の世界 Powered by Rabbit 0.9.2
  • 37. 新しいパラダイム 過去のパラダイムの組み合わせ言語の世界 Powered by Rabbit 0.9.2
  • 38. 新しいパラダイム 既存のパラダイムの組み合わせ 並列+関数型 オブジェクト指向+関数型 並列+論理型言語の世界 Powered by Rabbit 0.9.2
  • 39. 既存のパラダイムの組み合わせ バランスの良い組み合わせ言語の世界 Powered by Rabbit 0.9.2
  • 40. 新しい環境 新しいOS 新しいCPU 新しいアプリケーション言語の世界 Powered by Rabbit 0.9.2
  • 41. 新しいアプリケーション Web MapReduce言語の世界 Powered by Rabbit 0.9.2
  • 42. 新しい制約 CPU数 メモリ量 データ量 アクセス量言語の世界 Powered by Rabbit 0.9.2
  • 43. どこまでが言語か 文法 ライブラリ アーキテクチャ言語の世界 Powered by Rabbit 0.9.2
  • 44. どこまでが言語か デザインパターン コミュニティ エコシステム言語の世界 Powered by Rabbit 0.9.2
  • 45. どこまでが言語か 思想 人格言語の世界 Powered by Rabbit 0.9.2
  • 46.   温故知新言語の世界 Powered by Rabbit 0.9.2
  • 47.   歴史から学ぶ言語の世界 Powered by Rabbit 0.9.2
  • 48.   歴史のパターン言語の世界 Powered by Rabbit 0.9.2
  • 49. 歴史の振り子 集中 vs 分散言語の世界 Powered by Rabbit 0.9.2
  • 50. 歴史の振り子 性能 vs 生産性言語の世界 Powered by Rabbit 0.9.2
  • 51. 歴史の振り子 静的 vs 動的言語の世界 Powered by Rabbit 0.9.2
  • 52. 歴史の振り子 正確さ vs 柔軟さ言語の世界 Powered by Rabbit 0.9.2
  • 53. 未来の言語 APL言語の世界 Powered by Rabbit 0.9.2
  • 54. APL APLによるライフゲーム言語の世界 Powered by Rabbit 0.9.2
  • 55. 未来の言語 Whitespace言語の世界 Powered by Rabbit 0.9.2
  • 56. Whitespace Whitespaceによるhello world言語の世界 Powered by Rabbit 0.9.2
  • 57. 未来の言語 新しいぶどう酒は新し い皮袋に [「マタイ 9:17」より引用]言語の世界 Powered by Rabbit 0.9.2
  • 58. 旧来の言語 古いぶどう酒は古い皮 袋に言語の世界 Powered by Rabbit 0.9.2
  • 59. 未来の言語 大規模分散 高抽象度言語の世界 Powered by Rabbit 0.9.2
  • 60. 未来へのパラメータ データ量 アクセス量 CPU数言語の世界 Powered by Rabbit 0.9.2
  • 61. データ量 ビッグデータ言語の世界 Powered by Rabbit 0.9.2
  • 62. アクセス量 クラウド ソーシャルゲーム言語の世界 Powered by Rabbit 0.9.2
  • 63. CPU数 マルチコア クラウド言語の世界 Powered by Rabbit 0.9.2
  • 64. 未来の言語 Erlang Node.js R SQL の発展形言語の世界 Powered by Rabbit 0.9.2
  • 65. Erlang 分散 アクターモデル言語の世界 Powered by Rabbit 0.9.2
  • 66. Node.js 大量アクセス 非同期I/O言語の世界 Powered by Rabbit 0.9.2
  • 67. R 統計・解析 ビッグデータ連携 (R-ODM)言語の世界 Powered by Rabbit 0.9.2
  • 68. SQL 宣言的データ取得 高抽象度 Hive言語の世界 Powered by Rabbit 0.9.2
  • 69. 言語の楽しさ プログラミングの楽しさ言語の世界 Powered by Rabbit 0.9.2
  • 70. 言語の楽しさ 言語=プログラミング言語の世界 Powered by Rabbit 0.9.2
  • 71. 言語の楽しさ 言語実装=プログラミング言語の世界 Powered by Rabbit 0.9.2
  • 72. 言語の楽しさ 言語実装=プログラミング総合芸術言語の世界 Powered by Rabbit 0.9.2
  • 73. 言語の楽しさ 言語設計=プログラミング言語の世界 Powered by Rabbit 0.9.2
  • 74. 言語の楽しさ 言語設計=発想をプログラミング言語の世界 Powered by Rabbit 0.9.2
  • 75. 言語の楽しさ We program you!言語の世界 Powered by Rabbit 0.9.2
  • 76.   Enjoy Programming!言語の世界 Powered by Rabbit 0.9.2