[#48770] Re: Rubyで静的型 — "Toshiyuki Sasaki" <tsasaki1@...>
> この場合、この例では簡単かもしれませんが、たとえばvarが別のメソッド
10 messages
2014/12/23
[#48771] Re: Rubyで静的型
— Hideki Miura <m-72@...6.so-net.ne.jp>
2014/12/23
三浦です
[ruby-dev:48771] Re: Rubyで静的型
From:
Hideki Miura <m-72@...6.so-net.ne.jp>
Date:
2014-12-23 05:47:22 UTC
List:
ruby-dev #48771
三浦です > そこは型推論を使用して、自動汎化された型が伝播し、伝播先で使用した > メソッドもキャップテーブルのメンバーとすれば良いのではないでしょうか? それも可能でしょうし、もっといえばプログラム中に現れるすべてのメソッドの 表を作ってしまえばいいかもしれません。 問題は、必要なメモリ量またはテーブルをつくる計算量です。 テーブルを現実的な大きさと時間で作るのはやはり困難かと思います。 > これは痛い。気づきませんでした。が、考えてみると・・・ > 動的な条件のもと、varに代入されたものは自動汎化の対象とする、 > と単純に考えるのでは駄目ですか・・・? > 逆に言えば、静的な条件のもとvarに代入されたX, Yにはそれぞれ > 静的に束縛できる訳で。コードをコンパイル時に実行したとして。 > おそらく、静的な条件の条件分岐って条件コンパイルとかデバッグ目的とか 特殊な場合しかないと思います。そして、普通ちょっと気のきいたコンパイラなら 静的な条件の分岐は条件が無いものとしてコンパイルします。 > 私は専門家ではなく、無学な人間なので、この部分はよく理解できません > でした。このようにすると、静的束縛でかつ型指定のないダックタイピングが > できるのでしょうか?教えていただけたら幸いです。 > 申し訳ありません。これは静的型付けの話ではなく、動的型付けでいかに速く 動くコードを得るかの話です。ChromeやFirefoxで動くJSのJITコンパイラでは この手のテクニックが使われているはずです。