このドキュメントは、アナライザーを実装する際のガイダンスをまとめたものです。
全般
- 提出された_すべて_のファイルを解析しましょう。ただし、
tests/invalidator/editor/example/exemplarのファイルは除きます。
- 100%の正確さを目指す必要はありません。それを達成するのはほぼ不可能です。アナライザーがすべての問題を見つけられなかったり、特定のタグを推測できなかったりしても問題ありません。
コンパイル
言語にコンパイルの手順が必要な場合は、次の点を検討しましょう。
- 解答をコンパイルすると、通常はより高い精度が得られます。たとえば、値の確定した型がわかるのはコンパイル_後_だけです。ただし、トレードオフ(実行が遅くなる、メモリ使用量が増えるなど)にも注意しましょう。
- パフォーマンスを改善するために、可能であればインメモリでのコンパイルを検討しましょう。
テスト
- 充実したテストスイートを用意しましょう。
- アナライザーの動作を検証するには、ゴールデンテストを使いましょう。これらのテストでは、アナライザーの検証のためにデプロイされるDockerイメージを使うようにしましょう。
- 各アプローチのテストを用意することも検討しましょう。これらの解答に対してアナライザーがうまく動作することが望ましく、後でアプローチにタグを割り当てるのにも役立ちます。