Principe de Huffman

Un article de Wikipédia, l'encyclopédie libre.

En informatique, le Principe de Huffman est une règle informelle souvent invoquée par Larry Wall, le concepteur du langage Perl, pour concevoir les constructions syntaxiques d'un langage informatique et pour écrire des programmes en un langage informatique donné.

Le but du principe de Huffman est d'écrire des programmes concis. Son domaine d'application n'est pas spécifique à Perl, mais peu de concepteurs de langages ont prêté autant d'attention que Larry Wall aux propriétés souhaitables de la syntaxe concrète d'un langage.

Le principe de Huffman fait référence au principe qui sous-tend le codage de Huffman et d'autres algorithmes de compression de données : l'encodage d'un symbole souvent utilisé doit être plus court que celui d'un symbole moins utilisé.

Sommaire

[modifier] Le principe de Huffman dans la conception d'un langage

Le concepteur d'un langage doit identifier ou créer des structures de contrôle et de données qui seront les plus utilisées et proposer une syntaxe concrète concise et distinctive pour celles-ci. Cela évite au programmeur d'utiliser des abstractions de bas niveau. La concision permet aussi de rendre visible des similarités entre les instructions ou les expressions consécutives dans un programme et d'en rendre la lecture voire la factorisation plus facile. Autrement, ces régularités auraient été cachées par la verbosité d'abstractions de bas niveaux.

Ainsi Perl 6 propose des hypeopérateurs qui opèrent sur tous les éléments d'un tableau, ou un switch qui opère sur des données composites. De même, Haskell propose des types algébriques de données et le filtrage par motif qui permettent de créer des structures de données composites et de les modifier.

Finalement, avec du code plus concis, le programmeur peut voir plus de code sur son écran, et moins faire appel à sa mémoire ou éviter de faire défiler du code continuellement sur son écran pour rechercher de l'information. L'inconvénient est un langage plus complexe dont l'apprentissage est plus long.

[modifier] Le principe de Huffman dans l'écriture d'un programme

Dans un programme, un identificateur doit être d'autant plus court qu'il est souvent utilisé dans sa portée. Conformément au principe de code comme commentaire, on peut d'abord donner un nom explicite à ladite variable et l'aliaser en son nom court.

[modifier] Parallèle avec l'évolution des langages naturels

L'étude diachronique des langages naturels montrent que certains tendent au cours du temps vers une meilleure conformance au principe de Huffman. Ainsi, les pronoms sont généralement très utilisés et sont aussi très courts. Dans des langages non contraints par le corset d'académies normatives, ce mécanisme s'effectue tout naturellement, particulièrement à l'oral. Ainsi, dans un cours de langue, un enseignant pourra remplacer le mot souvent utilisé de "vocabulary" par son raccourci "vocab". L'usage de sigles et d'acronymes est aussi une conséquence du principe de Huffman. Néanmoins, le sigle www, lu à voix haute, est plus long à prononcer que world wide web.

[modifier] Liens externes

  • Le Synopsis 3, partie de la spécification de Perl 6, utilise le verbe "to Huffman-code". C'est une métonymie qui désigne le l'application du principe de Huffman et non l'utilisation du codage de Huffman.