Weitere ähnliche Inhalte
Kürzlich hochgeladen (10)
言語の世界
- 1. 言語の世界
ネットワーク応用通信研究所
楽天 技術研究所
Rubyアソシエーション
@yukihiro_matz
まつもとゆきひろ
Yukihiro "Matz" Matsumoto
言語の世界 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
- 8. 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
- 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
- 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