現在までの達成度 (区分) |
現在までの達成度 (区分)
4: 遅れている
理由
研究を遂行する上で不可欠であるが解決が困難である技術的問題に遭遇し、それによって研究の進捗に大きな影響を受けた。この技術的問題とはソースコード上でプログラムの実行を対応付ける問題である。一般にこの対応付けはコンパイラの提供する情報に大きく依存しており、それが対応付けを実現する際の大きな制約となっている。よってこの制約を越えた表現の実装は極めて困難であり、究極的にはデバッガを単独ではなくコンパイラと併わせて開発するしかないとされている。(Jonathan B. Rosenberg, "How Debuggers Work: Algorithms, Data Structures, and Architecture", John Wiley & Sons, Inc., 1996) 本研究を遂行する中で二つの理由で Java コンパイラが課す制約を越える技術が必要である事が明らかとなった。一つ目は上記【研究実績の概要】で説明した「地図化」によるプログラム実行の表現を実現するためである。二つ目はデバッガの評価実験で、被検者の内面的な思考の適切性を評価するために用いるデータを生成するためである。後者のデータは不具合を含むプログラムとそれを修正したプログラムのソースコードと実行の差分(障害が発生するものと正常に実行が終了する過程の違い)の対応付けが必要となる。ここで Java コンパイラが課す制約がこの対応付けの障害となる事が明らかになったのである。 Java コンパイラはソースコードに直接関連する情報として(ソースコードの)ファイル名、行番号、変数名しか提供しない。これらの情報は上記の二つの問題の解決には不十分である。よって現実的に実施可能な方法でこの問題を解決する事が必要となったのである。
|