型、ついてますか? - 型の本質を振り返る - に参加してきた #AIAL
2016/7/8に開催された「型、ついてますか? - 型の本質を振り返る」に行ってきました。
会場は品川のマイクロソフトさんです。
大変内容が濃く興味深い話でしたが、時間が短かったこともあって大半は理解できなかった気がします。以下レポート。
型、ついてますか? 高野光弘さん(@takano32)
今日は(古代|近代|現代|原始) * (動的|静的)型付けで分類していく
静的型付け
動的型付け
- 事前に型の精査をしない
- いきなり実行できる
- 実行時にはじめて型がわかる
古代静的型付け
- C言語を代表とする
- システムと密接な型付け
- 型が不明だとデータの扱い方がわからない
古代動的型付け
処理の記述へとフォーカスしていく
BASIC
- 初心者向け
- 裏ワザ使ってシステムにアクセス出来る(DATE, PEEK,POKE)
シェル
- システムと対話するための機構を応用
近代動的型付け
古代動的型付けで解決が面倒だった分野の改善
パール(真珠)はシェル(貝)からできているという逸話
近代静的型付け
おみやげ話: C++のstructはclassと同じ動きをする
現代動的型付け
現代静的型付け
システム記述レイヤーからの解脱
- VM
- マルチプラットフォーム
- Java
- Haskel
- AltJS
原子動的型付け
レジスタ 即値 アドレス
機械語の型付け
- 実行時に即値かアドレスか判断
- この時点からは事前処理がない
- つまり動的型付けといえる
原始静的型付け
- 起源はラムダ計算
- 型なしラムダ計算
- 型ありラムダ計算
- 原始動的型付け ... ノイマン型
- 原始静的型付け ... 思考実験
なぜ歴史は繰り返すのか
- 静的型付けと見せかけて動的なのは邪悪
- TypeScriptは実行時にJavaScript)
- C言語やC++はデバッガを強化して延命された
これからのパラダイム
抽象化がさらに進む
個人的に欲しいパラダイム
副作用を考慮したシェル
- ここでいう「副作用」とは操作がマシンに影響するか
- ls → 副作用なし
- mkdir → 副作用あり
「俺が聞きたい話はこんなんじゃなかった」→ イベントやるから来てね
Linear Types niryuuさん
資料待ち
Linear Typesとは
- 1度しか取り出せない値を表す型
- Uniqueness types(Clean)
- Ownership(Rust)