IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)

Vous �tes nouveau sur Developpez.com ? Cr�ez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et �tre connect� pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Cr�ez-en un en quelques instants, c'est enti�rement gratuit !

Si vous disposez d�j� d'un compte et qu'il est bien activ�, connectez-vous � l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oubli� ?
Cr�er un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

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

363PARTAGES

16  0 
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

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 lu gratuitement 0 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer � vous proposer des publications.

Une erreur dans cette actualit� ? Signalez-nous-la !

Avatar de ddoumeche
Membre extr�mement actif 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.
7  0 
Avatar de zobal
Membre confirm� https://www.developpez.com
Le 24/06/2017 � 0:57
Citation Envoy� par ddoumeche Voir le message
Petite erreur factuelle, Python comme la quasi totalit� des langages � d�sinstanciation implicite (Lisp, VB6) a un ramasse-miette.
Petite erreur factuelle, Python utilise un compteur de r�f�rences, par d�faut. Le garbage collector est disponible via un module sp�cifique ou avec des interpr�teurs alternatifs.

https://docs.python.org/3/faq/design...-manage-memory

Citation Envoy� par ddoumeche Voir le message
Pour r�pondre � ta question, combien de projets c++ lanc�s dans les entreprises ces derni�res ann�es ?
Je ne sais pas, j'avoue que je ne connais pas le fonctionnement interne de toutes les entreprises du monde. Par contre je connais les pages github de google, facebook et microsoft : 246 projets en C++, 1 projet en D. Mais peut-�tre qu'ils utilisent tous D pour leurs projets propri�taires...
3  0 
Avatar de Hassan.
Nouveau membre du Club https://www.developpez.com
Le 30/06/2017 � 1:48
Je code en D depuis quelques ann�es. Les avantages par rapport au C++ sont : une librairie standard beaucoup plus riche et facile � utiliser, une m�taprogrammation tr�s pouss�e, la CTFE qui veut dire que le compilateur ex�cute des fonctions au moment de la compilation d�s qu'il le peut (comme sort par exemple : https://dlang.org/blog/2017/06/05/co...ime-sort-in-d/), l'UFCS qui permet d'�crire variable.fonction au lieu de fonction(variable) (comme les m�thodes d'extension), les modules, le scope guard, les blocs unittest qui servent �galement de documentation pour le code, la s�curit� contre les bugs de corruption de la m�moire (plus d'infos dans le talk de Walter Bright intitul� "Pointers gone wild" ), et les modules. Les modules �crits par les utilisateurs sont disponibles sur code.dlang.org et la gestion des d�pendances se fait avec l'outil dub (comme composer en PHP).

En ce qui concerne la gestion de m�moire, le plus facile est de laisser le GC s'en occuper. En D le GC n'est pas impr�visible et donc son utilisation est idiomatique, il y a une s�rie d'articles dans le blog officiel � ce propos : https://dlang.org/blog/2017/03/20/do...ar-the-reaper/

Ceci dit, il est �galement possible d'utiliser les pointeurs intelligents (Scoped, RefCounted, etc.) voire d'appeler directement GC.malloc et GC.free. La RAII peut �tre impl�ment�e avec les blocs scope :

Code : S�lectionner tout
1
2
3
4
auto bloc = cast(ubyte *) GC.malloc(1024);
scope(exit) GC.free(bloc);
//on utilise bloc dans le reste du code
Le langage supporte �galement un mot-cl� @nogc qui va forcer le compilateur � afficher des erreurs dans les lignes qui utilisent le GC dans votre code. Le probl�me � l'heure actuelle est que la biblioth�que standard (Phobos) et quelques fonctionnalit�s du langage (comme les exceptions) s'appuient sur le GC. C'est un souci qui emp�che les devs de se passer pleinement du GC. Cependant, c'est une priorit� de rendre Phobos ind�pendante du GC et on bosse actuellement dessus.

Plusieurs strat�gies existent pour la gestion de m�moire. La plus commune est d'utiliser le GC dans le code en prenant soin de le d�sactiver (avec GC.enable, GC.disable, GC.collect) dans les zones o� le profiling indique qu'il cause des probl�mes de performances, mais il y a d'autres fa�ons. Simon Arneaud en a parl� lors du DConf 2017 dans (en r�f�rence au flag -betterc du compilateur) en listant quelques projets existants et la fa�on par laquelle ils ont g�r� la m�moire, notamment les outils TSV d'eBay qui ont fait preuve de performances consid�rables malgr� l'utilisation du GC.

On a r�cemment traduit le D tour en fran�ais, vous pouvez y jeter un coup d'oeil si �a vous int�resse : https://tour.dlang.org/tour/fr/welco...e/welcome-to-d
3  0 
Avatar de captaindidou
Inactif https://www.developpez.com
Le 22/06/2017 � 15:09
On ne peut plus d'accord.
2  0 
Avatar de Shepard
Membre exp�riment� 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 ...
2  0 
Avatar de 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...
1  0 
Avatar de ddoumeche
Membre extr�mement actif 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 ?
1  0 
Avatar de kopbuc
Membre r�gulier 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.
0  0 
Avatar de ddoumeche
Membre extr�mement actif 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.
0  0 
Avatar de 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.
0  0