D (langage)

D (langage)
Page d'aide sur l'homonymie Pour les articles homonymes, voir D.
D
Apparu en 1999
Auteur Walter Bright
Paradigme orienté objet, procédural
Typage statique
Influencé par C, C++, Java
Implémentations GNU Compiler Collection
  • Il y a eu plusieurs langages de programmation appelés D durant l'histoire de l’informatique.
    • le langage créé par Walter Bright et développé dans cet article ;
    • le langage Dialog Manager, présenté dans un autre article ;
    • le langage utilisé pour piloter le système de trace DTrace.

Sur les autres projets Wikimedia :

D est un langage de programmation impératif orienté objet.

Sommaire

Historique

Le langage D a été créé par Walter Bright en décembre 1999 avec sa société Digital Mars, et il est présenté comme le successeur du C, d'où son nom (le langage C lui-même succédait au langage B, qui quant à lui ne dérive pas d'un langage A, mais du BCPL. Avant la création du C++, on se demanda longtemps si le successeur du C s’appellerait D, selon l’ordre alphabétique, ou P, selon l’ordre des lettres dans le nom de BCPL).

Il s’inspire de nombreux langages, dont C++, Java (avec lequel il partage la notion de « ramasse-miettes » et d’héritage simple), Eiffel (pour le paradigme de programmation par contrat)...

Le compilateur officiel cible le langage machine.

Origine

Walter Bright a imaginé ce langage en s’apercevant que l’expressivité du C ou du C++, qui leur donne leur puissance de traitement, rend leur utilisation sensible.

En particulier :

  • la création et la maintenance de compilateur est ardue ;
  • la syntaxe globalement mal comprise introduit des bugs par simple méconnaissance ou inattention.

Pour pallier 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[1]. »

— Walter Bright

D est en version 2.00 (depuis le 17 juin 2007), et subit ponctuellement de légères modifications de spécification. Ces transformations sont réalisées par Walter Bright et Andrei Alexandrescu, mais ils reprennent en considération des remarques et requêtes de la communauté qui gravite autour de D.

Compilateurs

Le compilateur officiel, DMD, est développé parallèlement avec la spécification du langage. Une partie de son code (le frontend) est ouvert, ce qui 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 les plates-formes Linux, Mac OS X et Windows.

Un compilateur GNU, GDC, mêlant le frontend de DMD et le backend de gcc est en développement.

Un compilateur sous licence BSD, LDC, mêlant le frontend de DMD et le backend LLVM est encore en cours de développement. Il peut compiler en 64 bits. Il supporte l'essentiel du langage D dans sa version 1, mais ne supporte pas officiellement le langage D 2.0.

Particularités

D introduit dans ses spécifications les éléments de la programmation par contrat, de test unitaire, et de vrais modules qui améliorent la qualité et facilitent la maintenance du code. Les fonctions anonymes, les structures de tableau, les « templates » et surtout le « ramasse-miettes » 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 bibliothèques écrites en C.

Programmation objet

La programmation objet en D supporte l’encapsulation, l’héritage, le polymorphisme, le paradigme de l’héritage simple étendu par des interfaces et de vraies « propriétés ». L’instanciation se fait uniquement par référence et laisse le contrôle sur l’initialisation des attributs statiques 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 permet en revanche d'utiliser le langage pour accéder aux périphériques comme le font les systèmes d'exploitation ou les pilotes, ou de faire de puissantes optimisations de code en accédant à des instructions spéciales du microprocesseur.

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 selon les besoins de l’application développée.

Exemples

Le fameux « Hello World », exemple de référence pour tous les langages :

import std.stdio;
 
void main () 
{
    writefln("Hello world!");
}

Et un second exemple :

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

Les versions 2.0 accepte également le type string comme un alias à immutable(char)[].

Notes et références

  1. « If a language can capture 90% of the power of C++ with 10% of its complexity, I argue that is a worthwhile tradeoff. »

Liens externes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article D (langage) de Wikipédia en français (auteurs)

Игры ⚽ Нужно решить контрольную?

Regardez d'autres dictionnaires:

  • langage — [ lɑ̃gaʒ ] n. m. • v. 1160; lengatge v. 980; de langue I ♦ 1 ♦ Fonction d expression de la pensée et de communication entre les hommes, mise en œuvre au moyen d un système de signes vocaux (parole) et éventuellement de signes graphiques… …   Encyclopédie Universelle

  • LANGAGE (PHILOSOPHIES DU) — L’intérêt pour la langue est un trait dominant de la philosophie contemporaine. Non que nos contemporains soient les premiers à découvrir le langage. Celui ci a toujours été à la place d’honneur dans la philosophie, tant il est vrai que la… …   Encyclopédie Universelle

  • Langage De Programmation — Un langage de programmation est un langage informatique, permettant à un être humain d écrire un code source qui sera analysé par une machine, généralement un ordinateur. Le code source subit ensuite une transformation ou une évaluation dans une… …   Wikipédia en Français

  • Langage Humain — Le langage est la faculté de mettre en œuvre un système de signes linguistiques (qui constituent la langue) permettant la communication et l expression de la pensée, ce qui est privatif des humains, et des sentiments, ce qui est commun aux… …   Wikipédia en Français

  • Langage oral — Langage humain Le langage est la faculté de mettre en œuvre un système de signes linguistiques (qui constituent la langue) permettant la communication et l expression de la pensée, ce qui est privatif des humains, et des sentiments, ce qui est… …   Wikipédia en Français

  • Langage quotidien — Langage humain Le langage est la faculté de mettre en œuvre un système de signes linguistiques (qui constituent la langue) permettant la communication et l expression de la pensée, ce qui est privatif des humains, et des sentiments, ce qui est… …   Wikipédia en Français

  • Langage traditionnel — Langage humain Le langage est la faculté de mettre en œuvre un système de signes linguistiques (qui constituent la langue) permettant la communication et l expression de la pensée, ce qui est privatif des humains, et des sentiments, ce qui est… …   Wikipédia en Français

  • Langage Formel — Dans de nombreux contextes (scientifique, légal, etc.), on désigne par langage formel un mode d expression plus formalisé et plus précis (les deux n allant pas nécessairement de pair) que le langage de tous les jours (voir langage naturel). En… …   Wikipédia en Français

  • Langage sms — « Bonjour, ça va ? » écrit en langage SMS. Manifeste contre le langage SMS …   Wikipédia en Français

  • Langage texto — Langage SMS « Bonjour, ça va ? » écrit en langage SMS. Manifeste contre le langage SMS …   Wikipédia en Français

  • Langage Des Fleurs — Un bouquet savamment composé porte un message. Le don de fleurs existe dans la plupart des civilisations, qu il constitue un cadeau ou un acte religieux. Dans certaines cultures, on accorde aux fleurs une symbolique particulière, en donnant à… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”