Perlテックブログ

ITエンジニアの成長意欲を刺激する技術考察、モジュール開発の日記。Perlイベントや国内や海外のPerlの記事の紹介。

コンパイル時型チェックと実行時型チェックの分離 - SPVM開発日記

今週一週間は、SPVMの小さなバグをとっていく。文法チェックの試験をもう少し増やす。

それと、コンパイル時型チェックと実行時型チェックを明確に分離したい。まだ、自分の中でまとまっていないので、考えをまとめる。

コンパイル時型チェック

コンパイル時型チェックは、ありとあらゆる型について、コンパイル時に可能な型をチェックする。数値型の自動変換、インターフェース型や汎用オブジェクト型への代入、配列型への代入、リファレンス型への代入など、すべての型を考慮に入れる。

実行時型チェック

実行時型チェックは、オブジェクト型に対してだけ型チェックを行う。

オブジェクト型の中でも、左辺と右辺が、同じ型かどうかだけをチェックする。

オブジェクトについては、constやリファレンスを考慮する必要はないから、基本型の名前と配列の次元だけをチェックできればよい。

これが正しいかどうかは、やってみないとわからないんだけれど、すべての必要な試験を書いて、仕様を満たしているかどうかが確認できれば、OKという判断ができる。

仮説を立ててアルゴリズムを実装する。必要な試験を書いて仕様を満たすか検証する。