Ce document donne des conseils pour implémenter un analyseur.
Généralités
- Analyse tous les fichiers soumis, à l'exception des fichiers tests/invalidator/editor/example/exemplar
- Ne vise pas une exactitude de 100 %, ce qui sera quasiment impossible à atteindre.
Ce n'est pas grave si l'analyseur ne parvient pas à trouver tous les problèmes ou à déduire certaines étiquettes.
Compilation
Si ton langage nécessite une étape de compilation, prends en compte ces points :
- Compiler la solution permet généralement une meilleure fidélité.
Par exemple, le type définitif d'une valeur n'est connu qu'après la compilation.
Garde toutefois à l'esprit les compromis (par exemple une exécution plus lente et une consommation de mémoire plus élevée).
- Envisage une compilation en mémoire (si possible), pour améliorer les performances.
Tests
- Prévois une suite de tests complète
- Utilise des golden tests pour vérifier le comportement de l'analyseur.
Ces tests doivent utiliser l'image Docker qui sera déployée pour vérifier l'analyseur.
- Envisage d'avoir des tests pour chaque approche.
Tu veux que l'analyseur fonctionne bien pour ces solutions, et cela aidera à attribuer des étiquettes aux approches par la suite.