Re: Constante NIL

From: Xavier Leroy (Xavier.Leroy@inria.fr)
Date: Wed Jun 02 1999 - 21:02:10 MET DST


Date: Wed, 2 Jun 1999 21:02:10 +0200
From: Xavier Leroy <Xavier.Leroy@inria.fr>
To: Vyskocil Vladimir <vyskocil@math.unice.fr>, Caml list <caml-list@inria.fr>
Subject: Re: Constante NIL
In-Reply-To: <37529AB8.B306AD5F@math.unice.fr>; from Vyskocil Vladimir on Mon, May 31, 1999 at 04:20:40PM +0200

> N'est t'il pas concevable de rajouter a Objectif Caml une constante
> NIL, UNDEF ou je sais pas trop comment la nommer dont la valeur serait
> '_a. Ceci permettrait d'initialiser "par defaut", par exemples,
> les variables d'instances d'une classe lorsque l'on ne possede aucune
> valeur par defaut du bon type. Je sais qu'il y'a toujours la possibilite
> d'utiliser le type 'a option mais ca devient lourd a gerer...

Le problème de la constante "nil" est d'assurer qu'elle n'est pas
utilisée comme une valeur "normale" du type en question. Cela
signifierait générer des tests à "nil" avant chaque accès dans une
structure de données (de la même manière que les compilateurs Java
doivent tester si les objets ne sont pas "null"). C'est coûteux en
taille de code et en temps d'exécution, et diminue la robustesse des
programmes.

L'utilisation du type 'a option est certes lourde mais a le mérite de
rendre ces tests explicites et optimisables par le programmeur.

Quant à utiliser Obj.magic, je le déconseille car le programme peut
alors très bien planter s'il utilise par erreur la valeur "nil" comme
une valeur normale. (Oui, j'ai essayé; et oui, mon code a fini par
planter à cause de cela.)

- Xavier Leroy



This archive was generated by hypermail 2b29 : Sun Jan 02 2000 - 11:58:23 MET