HowTo禁止、楽しくハックする発表中心のカンファレンスというコンセプト最高です。質問時間も長めで大量の質問がなされていました。
スケジュール
スケジュール - Tokyo RubyKaigi 11 #tkrk11
Streem
スピーカー: まつもとさん
インタビュー matz/streem: prototype of stream based programming language
言語作成には言語デザインに関する話題と言語実装に関する話題があるが、言語デザインに関する話題が少ない気がする。(まつもとさんは言語デザインの方が好き)
- デザイン
実例
stdin | stdout
["Hello World"] | stdout
# Simple echo server tcp_server(8007) | each { |sock| sock | sock }
Streemを使って欲しい、というのもあるけどプログラミング言語を一からデザインすることの楽しさを伝えたかった。
プログラミング言語をデザインするのは楽しいよ。
mruby/c
九州工業大学 田中 和明さん
mrubyよりももっと小さな環境で動かしたい。 OS不要、ドライバなしで動きます。
mrubyバイナリ。CPUに依存しない互換性あり。最初のRITEの4文字を見て、エンディアンやアライメントを理解しているらしい。
Rubyに型があると便利か
spice life 栗原 勇樹 さん
型システム入門 - プログラム言語と型の理論 という本がよい。(でも難しい。)
type_struct
ksss/type_structを作った。Keyword Arguemts が使える struct。
Point = TypeStruct.new{ x: Integer, y: Integer, }
これ単体だと以外と使えなかった。
TypeStructでJSONの型チェック
のRuby版の機能をTypeStructに機能追加しては。JSONのValidateをTypeStructでかける。安心感がある。
ArrayやHashはArrayOfみたいな便利クラスを作った。
class ArrayOf def initialize(type) @type = type end def === self.all? { |e| e === @type } end end
refinementsを使ったUnionの実装格好やInterfaceの実装もすごい。
Ruby3の型システム
Ruby3の型について
- 静的チェック -> methodが呼べるかの事前check
- No Annotation
- Cでは頑張ってAnnotation書く
今後、静的解析に挑戦してみたい。型システム入門よりも簡単な本があったら教えてほしい。
matz : 型は書きたくないでござる(内部に型があるのはよい)