動的言語の問題点、大規模開発でテスト工数が増大
■ このスレッドは過去ログ倉庫に格納されています
0295uy
2012/06/11(月) 03:31:12.83最初は型情報をソースコード中に書いてなくても
一度でも実行すれば少なくともメソッドの引数の型くらいは分かるわけだし
型情報を実行してからメタすればいいんじゃねとか思う
最初にメタされた型以外が渡されたら警告でも出す
型が分かってるなら部分的にネイティブコンパイルも可能になる
型安全性を高めたい時のみ
.rbのソースコード本体とは別に .rb_neitive とかいう型情報のファイルをおいて
.rb_neitiveの型情報を見ながら.rbを実行させていく
.rb_neitiveはスクリプト本体をテスト走行させた時に実行したメソッドに渡された型などを集積して生成する
そしてネイティブコンパイル出来るメソッドは引数型固定してネイティブにしてしまう
これによって失うものは
def func a
end
func 1
func "test"
とかいう最初と2回目以降で違う型の引数を(基本的に)渡してはいけなくなる事
もし渡された場合は、そこでエラーとして扱って実行をとめるか、ネイティブではなくインタプリタ側のコードを実行するか
得られるものは、
.rb_neitiveに集積できたメソッドに関してだけは速度と型安全性が高まる事
■ このスレッドは過去ログ倉庫に格納されています