Le projet GNU annonce l'intégration du langage de programmation D dans GCC
Qui vient s'ajouter au C, C++, Objective-C, Java, Ada et Fortran

Le , par Stéphane le calme, Chroniqueur Actualités
GNU Compiler Collection (GCC), l’ensemble de compilateurs créés par le projet GNU. GCC, est utilisé pour le développement de la plupart des logiciels libres. Le noyau Linux dépend notamment étroitement des fonctionnalités de GCC.

GCC est un logiciel libre capable de compiler divers langages de programmation, parmi lesquels le C, C++, Objective-C, Java, Ada et Fortran. À cette liste, vient s’ajouter désormais le langage de programmation D, comme l’a annoncé le projet dans une liste de diffusion : « Je suis heureux d'annoncer que le Comité directeur de la CCG a accepté l’inclusion dans GCC du langage front-end ainsi que du runtime D et a nommé Iain Buclaw comme responsable. Les correctifs nécessitent toujours l'approbation d'un évaluateur global », a annoncé David Edelsohn, Directeur de la technologie GCC chez IBM.

Le D est un langage de programmation impératif orienté objet et multiparadigme conçu pour la programmation système.

Il s’inspire de nombreux langages, dont entre autres 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 langage D peut être considéré comme un langage de haut niveau par le fait de la simplification du code par rapport au C++, des frameworks Phobos et Tango qui permettent un niveau d'abstraction important, et surtout parce que le langage intègre nativement un ramasse-miettes. Le ramasse-miettes, comme en Java, permet de ne pas se préoccuper de la gestion de la mémoire et donc de simplifier les tâches d'écriture de code.

Cependant, le langage D est aussi considéré comme un langage de bas niveau, car il autorise :
  • l'intégration de code assembleur, ce qui permettra de faire des optimisations importantes par rapport à l'architecture matérielle, mais rendra le code plus difficilement portable ;
  • la désactivation partielle ou totale du ramasse-miettes, ce qui autorise une gestion plus précise de la mémoire.

Parmi les autres particularités de D, nous pouvons citer :
  • la gestion de test unitaire en natif ;
  • les modules ;
  • les fonctions anonymes ;
  • les structures de tableau ;
  • la surcharge d'opérateurs ;
  • la gestion des exceptions ;
  • la documentation style javadoc ;
  • les templates ;
  • l'interfaçage avec des bibliothèques écrites en C.

Le compilateur officiel, DMD, est développé parallèlement à la spécification du langage. Il cible le langage machine. Une partie de son code (le frontend) est ouvert, ce qui permet de corriger rapidement les problèmes rencontrés, ou encore de réaliser son propre compilateur en utilisant une autre base (backend). Il existe actuellement pour les plates-formes Linux, Mac OS X et Windows.

Du côté de GNU, le compilateur GDC, mêlant le frontend de DMD et le backend de gcc avait été annoncé comme étant en développement.

Source : annonce de l'inclusion de D dans GCC

Voir aussi :

Débuter avec le langage D

Et vous ?

Avez-vous déjà utilisé le langage D ? Qu'en pensez-vous ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de ddoumeche ddoumeche - Membre éprouvé https://www.developpez.com
le 22/06/2017 à 14:27
Voila qui va booster la popularité de D, langage qui a des intérêts absolument indéniables et est sans doute le futur remplaçant du c++

Mais rappelons quand même que D compile avec LLVM qui offre des performances d'exécution identiques à GCC pour un programme en C.
Avatar de captaindidou captaindidou - Membre averti https://www.developpez.com
le 22/06/2017 à 15:09
On ne peut plus d'accord.
Avatar de zobal zobal - Membre confirmé https://www.developpez.com
le 22/06/2017 à 20:36
Citation Envoyé par ddoumeche Voir le message
langage qui a des intérêts absolument indéniables
Lesquels ? Parce que par rapport au C++11, je ne vois pas grand chose d'absolument indéniable dans l'article.

Citation Envoyé par ddoumeche Voir le message
et est sans doute le futur remplaçant du c++
Et cela arrivera quand ? Parce que le D a quand même 18 ans...
Avatar de kopbuc kopbuc - Membre du Club https://www.developpez.com
le 22/06/2017 à 21:23
Citation Envoyé par zobal Voir le message
Lesquels ? Parce que par rapport au C++11, je ne vois pas grand chose d'absolument indéniable dans l'article.
Syntaxe simplifiée par rapport aux C++ avec des perf's comparables + Garbage collector activable/désactivable. C'est déjà pas mal.
Avatar de ddoumeche ddoumeche - Membre éprouvé https://www.developpez.com
le 22/06/2017 à 22:49
Citation Envoyé par zobal Voir le message
Et cela arrivera quand ? Parce que le D a quand même 18 ans...
Bien malin qui peut le savoir. C++ a quand même 33 ans et est en perte de vitesse depuis plus de 10 ans.
Avatar de zobal zobal - Membre confirmé https://www.developpez.com
le 22/06/2017 à 23:32
Citation Envoyé par kopbuc Voir le message
Syntaxe simplifiée par rapport aux C++ avec des perf's comparables
Le C++11 simplifie généralement beaucoup la syntaxe. Et ce n'est peut-être pas la caractéristique primordiale d'un langage...

Citation Envoyé par kopbuc Voir le message
Garbage collector activable/désactivable.
En quoi, le garbage collector est un avantage ? Le RAII, la move-semantic et les pointeurs intelligents sont également des outils intéressants pour gérer la mémoire. Pour certains domaines, le garbage collector est même un inconvénient majeur (d'ailleurs Rust et Python n'en ont pas non plus).

Citation Envoyé par ddoumeche Voir le message
Bien malin qui peut le savoir. C++ a quand même 33 ans et est en perte de vitesse depuis plus de 10 ans.
C'est ton ressenti, ton souhait ou le résultat d'une étude sérieuse ? Perso, mon ressenti c'est qu'il y a au contraire un regain d'intérêt depuis le C++11 et que le D ne risque pas de perdre de vitesse vu qu'il a toujours été à l'arrêt.
Avatar de ddoumeche ddoumeche - Membre éprouvé https://www.developpez.com
le 23/06/2017 à 0:55
Je vois qu'on a affaire à un passionné.

Petite erreur factuelle, Python comme la quasi totalité des langages à désinstanciation implicite (Lisp, VB6) a un ramasse-miette.

Pour répondre à ta question, combien de projets c++ lancés dans les entreprises ces dernières années ?
Avatar de Shepard Shepard - Membre éclairé https://www.developpez.com
le 23/06/2017 à 9:26
Je rejoins Zobal ... C++ n'est pas du tout en perte de vitesse selon moi :O

Il suffit de regarder l'industrie du jeu video pour s'en convaincre ^^

Par contre D, je ne connais que depuis hier (enfin je connaissais de nom mais bon ...), uniquement parce que j'ai lu cet article ...
Avatar de Aiekick Aiekick - Membre expérimenté https://www.developpez.com
le 23/06/2017 à 17:42
ca me fait toujours ticker quand je vois qu'on parle d'un langage qui intègre un GC.

il faut distinguer le langage du framework qui l'accompagne sinon on va retomber dans les histoires du nombre de ligne pour coder une fonctionnalité.

en C++ on peut tout faire, un GC c'est très simple a coder donc mauvais exemple de comparer ca au D. (d'ailleurs jamais entendu parler avant cette news)

des langages yen a plein, mais combien ont réellement percé ?

le java a explosé grâce a android. le java c'est une VM par noyau, le c++ c'est un compilateur par noyau, donc du code portable en c++ surtout en no lib c'est facile.

ce qui m'a toujours déplu avec le GC de java c'est de n'avoir aucun contrôle dessus. le bestiau ce déclenche quand ça lui chante, peu importe qu'on soit dans une boucle de calcul intensive ou non..

partout ou il y a besoin de faire un code le plus rapide que possible, on est en C ou en C++. donc bon, le D c'est comme le reste des langages. une fantaisie de plus.

travailler soit mème la mémoire est une chance pas un fléau. bien sur ça demande plus de compétence.
Avatar de ddoumeche ddoumeche - Membre éprouvé https://www.developpez.com
le 23/06/2017 à 18:07
Le GC de la JVM est paramétrable, et peut-être largement multithreadé. L'avantage est financier, beaucoup moins de temps passé à chercher les fuites mémoires.

Pour les portions de codes réclamant des performances maximales (c'est-à-dire 20% du code), rien n'empêche de faire des librairies externes, sans bytecode. Donc en C++ par exemple
Offres d'emploi IT
Ingénieur d'affaires h/f
Kacileo - Bourgogne - Dijon (21000)
Administrateur système et réseaux (H/F)
Atos - Lorraine - Metz/Strasbourg
Ingénieur systèmes et bases de données
E ConsultingRH - Nord Pas-de-Calais - Lens (62300)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil