Canonique (informatique)

La mise en forme canonique est le procédé par lequel on convertit des données qui ont plusieurs représentations possibles vers un format standard.

On en éprouve généralement le besoin lorsque l'on veut pouvoir faire des comparaisons logiques, pour améliorer l'efficacité de certains algorithmes en éliminant les évaluations superflues, ou pour permettre d'ordonner des éléments en fonction de leur sens.

URL canonique

Les moteurs de recherche utilisent beaucoup les URL canoniques afin de ne pas explorer plusieurs fois la même page web. Les navigateurs aussi s'en servent pour savoir si une page a été visitée ou si elle est déjà en cache.

Parmi les normalisations d'URL, on peut citer :

  • La suppression du port par défaut. Le port par défaut (80 pour HTTP) peut être supprimé sur une URL. Exemple :
http://www.example.com:80/bar.htmlhttp://www.example.com/bar.html
  • La suppression de la page par défaut. Les pages par défaut ne sont généralement pas nécessaire dans une URL. Exemples :
http://www.example.com/default.asphttp://www.example.com/
http://www.example.com/a/index.htmlhttp://www.example.com/a/
  • La suppression de l'adresse IP. Une adresse IP peut être remplacée par un nom de domaine. Exemple :
http://208.77.188.166/http://www.example.com/

La normalisation des URL est décrite dans la RFC 3986[1].

En C++, la forme canonique de déclaration des objets

Dans le langage C++, les objets (et en particulier les objets qui utilisent de pointeurs bruts), devrait être déclarée sous leur forme canonique de Coplien. Dans leur déclaration, devrait se trouver explicitement : Le constructeur, le constructeur par copie, l'affectation ( operator= ), la commutation ( swap() ), et le destructeur[2]. La règle veut, soit que l'on déclare les 5, soit que l'on utilise les valeurs par défaut.

Notes et références

  1. (en) Request for comments no 3986
  2. « FAQ C++, le club des développeurs et IT Pro », Developpez.com,‎ (lire en ligne, consulté le )
  • Portail de la logique
  • Portail de l’informatique