D (langage)

Il y a eu plusieurs langages de programmation appelé D durant l'histoire de l'informatique.
  • un langage dévellopé dans cet article a été créé par Walter Bright.
  • un autre langage appelé Dialog Manager est présenté dans un autre article.

Image manquante
Langage_progr.png
image:Langage_progr.png

Cet article fait partie de la série
Langages de programmation
Langages à objets
Ada 95 - C++ - C#
Common Lisp
Delphi - Eiffel - Java
Nice - Oz - Python
Simula - Smalltalk
Visual Basic
Langages impératifs
APL - ASP - Assembleur
BASIC - C - COBOL
Forth - FORTRAN - Logo
Pascal - Perl - PHP
Langages fonctionnels
Erlang - Haskell
ML/OCaml - Oz
Lisp/Common Lisp
Scheme
Langages déclaratifs
Clips - Oz - Prolog
Langages concurrents
Ada 95 - Erlang
Java - Oz
Langages balisés
HTML - SGML - XML
Dialectes XML
S-expressions
Voir aussi
Conception - Codage
Tests - Optimisations

D est un langage de programmation impératif orientée objet. Il a été créé par Walter Bright en décembre 1999 avec sa société Digital Mars et est présenté comme le successeur du C d'où son nom. Il s'inspire du langage Java avec lequel il partage la notion de « ramasse-miettes » et d'héritage simple, mais à l'inverse de ce dernier, ses programmes sont compilés en langage machine.

Sommaire

L'origine

Walter Bright a imaginé ce langage en s'apercevant que l'expressivité du C ou du C++ qui leur donnent leur puissance de traitement rendent sensible leur utilisation ; En particulier :

Pour palier ces problèmes, le langage D possède une syntaxe épurée du C dont l'un des effets est de rendre la compilation plus rapide. Ainsi, couplé avec des notions modernes incluses dans le langage, la productivité est améliorée.

« Si un langage peut récupérer 90% de la puissance du C++ mais seulement 10% de sa complexité, cela vaut largement le coup » ~ Walter Bright

D est actuellement (début 2005) en développement, et subit ponctuellement de légères modifications de spécification. Ces transformations sont réalisées exclusivement par Walter Bright, mais il prend considération des remarques et requêtes de la communauté qui gravite autour de D.

Le compilateur est développé parallèlement avec la spécification du langage, et est toujours (début 2005) en phase de beta testing. Son code ouvert permet de corriger rapidement les problèmes que l'on peut rencontrer et de réaliser son propre compilateur en utilisant une base (un des rêves de l'auteur est en effet d'en voir fleurir d'autres que le sien). Il existe actuellement pour plateforme Linux et Windows.

Ses particularités

D introduit dans ses spécifications les éléments de la programmation par contrat, de test unitaire, et de vrai module qui améliorent la qualité et facilitent la maintenance du code. Les fonctions anonymes, les structures de tableau, les «templates» et surtout le «ramasse miette» permet de faire de D un langage simple d'utilisation. Le langage D permet enfin de programmer en bas niveau et l'interfaçage avec des librairies écrites en C.

L'objet

La programmation objet en D supporte l'encapsulation d'objet, l'héritage, le polymorphisme, le paradigme de l'héritage unique étendu par des interfaces et de vrais «propriétés». L'instanciation se fait uniquement par référence et laisse le contrôle sur l'initialisation des attributs statiques. Tous ces points rendent le D très proche du Java et du C#.

Le codage bas niveau

D permet à l'opposé du C# et du Java d'embarquer du code assembleur dans les programmes. Cette particularité contrarie les possibilités de portabilité du code, mais par contre permet d'utilisé le langage pour accéder aux périphériques comme le font les système d'exploitation ou les Drivers, ou de faire de puissantes optimisations de code en accédant à des instructions spéciales du microprocesseur.

Le ramasse miettes

Le ramasse-miettes dans D est souple et permet au programmeur de libérer lui même sa mémoire. Ce gestionnaire a été introduit pour faciliter la programmation de tous les jours et peut être désactivé pour réduire la consommation des ressources processeur lorsque les besoins s'en font sentir (indispensable pour les gros projet).

Exemple

// programme en D qui affiche les arguments de la ligne de commande
 import std.stdio;
 int main(char[][] args) {
    foreach (int i, char[] arg; args) {
       writefln("args[", i, "] = '", arg, "'");
    }
    return 0;
 }
 

Liens externes

See also: D (langage), 1999, 2005, APL (langage), Active server pages, Ada (langage), Assembleur (langage), Basic, CLOS