Prévention du déréférencement de références nulles dans un langage à objets

Resume. Le dereferencement de references nulles est une erreur de programmation courante dans les langages a objets. Pour la prevenir, certaines approches garantissent statiquement son absence a l’aide de systemes de types ou d’annotations mais reduisent l’expressivite du langage. D’autres approches analysent plutot le code source pour identifier les erreurs potentielles, mais peuvent trouver des faux-positifs et ne garantissent pas l’absence d’erreurs a l’execution. Dans cet article, nous proposons une approche offrant la garantie statique d’absence d’erreur de dereferencement dans une grande portion du code. L’approche consiste en un systeme de types statiques simple, des verifications dynamiques et un operateur de test dynamique. En plus de preserver l’expressivite du langage, notre approche limite la zone de danger a la construction des instances et permet la detection precoce des erreurs a l’execution. Nos mesures experimentales demontrent une grande etendue des garanties statiques et l’efficacite de la detection precoce des erreurs.