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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

VC++ .NET Discussion :

L'�quipe Visual C++ donne des d�tails sur certaines �tapes de la refonte du compilateur C/C++


Sujet :

VC++ .NET

  1. #1
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 308
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : S�n�gal

    Informations professionnelles :
    Activit� : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 308
    Billets dans le blog
    15
    Par d�faut L'�quipe Visual C++ donne des d�tails sur certaines �tapes de la refonte du compilateur C/C++
    L'�quipe Visual C++ donne des d�tails sur certaines �tapes de la refonte du compilateur C/C++,
    et parle �galement de ses perspectives d'avenir

    Nom : 7183.image_5F00_0C7B3B88.png
Affichages : 5096
Taille : 17,9 Ko

    Jim Springfield, architecte logiciel sur Visual C++ et employ� chez Microsoft, a r�cemment reconnu dans un billet de blog que le compilateur C/C++ de Microsoft est maintenant vieux. Selon lui, il existe dans le code source de ce dernier des commentaires qui date de 1982, lorsque Microsoft commen�ait tout juste � travailler sur son propre projet de compilateur C. Les commentaires effectu�s par Ralph Ryan l'auraient conduit � lire un document publi� par ce dernier en 1985 et intitul� � Le langage de programmation C et un compilateur C �. Pour Jim Springfield, cet ouvrage est tr�s int�ressant � lire et certaines choses qui y sont d�crites se refl�tent encore dans les codes d'aujourd'hui. En effet, l'ouvrage aurait mentionn� qu'il est possible de compiler des programmes C avec deux disquettes et 192 K de RAM (bien qu'il recommande un disque dur et 256 K de RAM).

    Pour Jim, �tre capable de fonctionner dans cet environnement signifie que vous ne pouviez pas garder beaucoup de travail dans la m�moire � la fois. Le compilateur a �t� con�u pour analyser les programmes et convertir les �tats et les expressions � l'IL (language intermediare) aussi rapidement que possible et de les �crire sur le disque, sans jamais garder une fonction enti�re en m�moire. En fait, le compilateur commencera � �mettre l'IL pour une expression avant m�me de voir la fin de cette derni�re. Cela signifie que vous pouvez compiler des programmes qui �taient assez grands sur une jolie petite machine.

    Jim Springfield a �galement �crit ceci : � Notre compilateur se compose de deux pi�ces (un front-end et un back-end). Le front-end lit le code source, fait l'analyse s�mantique et �met l'IL. Le back-end lit l'IL puis effectue la g�n�ration et l'optimisation du code. L'utilisation du terme � compilateur � dans le reste de cet article ne concerne que le front-end. �

    Jim, poursuivant ses explications, affirme que pour le code C (surtout K&R C), cette approche a bien fonctionn�. Rappelez-vous, vous n'avez m�me pas besoin d'avoir des prototypes pour les fonctions. Microsoft a ajout� le support pour C++ dans C 7.0 qui a �t� lib�r� en 1992 ; ce dernier a partag� une grande partie du m�me code avec le compilateur C et cela est encore vrai aujourd'hui. Bien que le compilateur ait deux binaires diff�rends (C1.dll et C1xx.dll) pour C et C++, il y a beaucoup de codes sources qui sont partag�s entre eux.

    L'ing�nieur informaticien souligne que cela fait maintenant environ trois ans, que Microsoft a lanc� un projet pour finalement effectuer une r�vision majeure du code source de son compilateur. Cela afin de changer la fa�on dont le compilateur analyse les codes tout en r�solvant �galement les probl�mes rencontr�s dans le pass�. Il fallait �galement adopter une nouvelle approche pour les fonctionnalit�s telles que constexpr . Cela dit, nous avons rapidement d�cid� d'adopter quelques principes cl�s pour guider notre d�veloppement. Le principe le plus important est que tous les travaux de refonte que nous faisons seront int�gr�s dans la m�me branche de d�veloppement que les fonctionnalit�s.

    La premi�re phase de ce travail a finalement �t� effectu�e dans Visual Studio 2015. Nous avons effectu� plusieurs changements dans l'impl�mentation du compilateur, mais beaucoup d'entre eux ne sont pas directement visibles. Le changement le plus visible est que les binaires c1ast.dll et c1xxast.dll ne sont plus pr�sents. Nous essayons maintenant de faire en sorte que toute compilation pour une analyse statique utilise le m�me binaire que celui que utilis� pour la g�n�ration de code. Tous les blocs 6000 + #if ont disparu, et il y a moins de 200 contr�les d'ex�cution pour l'analyse. Ces grands changements ont entra�n� la d�sactivation de l'analyse du code dans une partie de la Release Candidate (RC) du compilateur C++.

    Springfield pr�cise que maintenant, un arbre complet est g�n�r� pour les fonctions. Il peut utiliser la m�me structure de donn�es pour g�n�rer du code ou effectuer une analyse statique. � Ces m�mes arbres sont utilis�s pour �valuer les fonctions de constexpr. Nous suivons �galement plein d'informations afin de pouvoir fournir de meilleurs diagnostics � l'avenir. �

    Selon Jim Springfield, avec tous ces changements, l'�quipe s'efforce d'assurer une grande compatibilit� tout en fixant les bogues r�els en int�grant de nouvelles fonctionnalit�s au compilateur. Il affirme l'existence d'un syst�me automatis� appel� Gauntlet qui se compose de plus de 50 machines qui construisent toutes les versions du compilateur et ex�cutent de nombreux tests dans toutes les saveurs notamment 32 bits, 64 bits, et les architectures ARM. Toutes les modifications doivent passer par Gauntlet avant d'�tre v�rifi�es.

    Pour finir, Jim Springfield d�clare : � Pour l'avenir, nous continuons � investir dans l'am�lioration de notre compilateur. Nous avons commenc� � travailler sur l'analyse des mod�les dans un AST (arbre de syntaxe abstraite) et cela donnera quelques am�liorations imm�diates. Nous allons continuer � investir dans l'am�lioration de notre compilateur avec comme objectif de le rendre pleinement conforme aux normes. Cela dit, nous sommes �galement tr�s int�ress�s � apporter notre soutien � Clang . En cela, il y a une pr�sentation au CppCon sur l'utilisation du frontal Clang avec notre g�n�rateur de code et un optimiseur �.

    Pour rappel, Clang est un compilateur pour les langages de programmation C, C++ et Objective-C.

    Source : blog msdn

    Et vous ?

    Qu'en pensez-vous ?

    Voir aussi :
    Forum Microsoft Visual Studio
    Forum Microsoft Visual C++ (.net)
    Forum C++
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous �tes passionn�, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la r�daction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    R�daction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, R�daction de news, interviews et t�moignages, Organisation de d�fis, de d�bats et de sondages, Relecture technique, Mod�ration, Correction orthographique, etc..
    Vous avez d'autres propositions de contributions � nous faire ? Vous souhaitez en savoir davantage ? N'h�sitez pas � nous approcher.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    �tudiant
    Inscrit en
    Ao�t 2015
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Ao�t 2015
    Messages : 6
    Par d�faut
    C'est vraiment genial pour visual studio 2015

  3. #3
    Membre confirm� Avatar de athlon64
    Profil pro
    Inscrit en
    F�vrier 2009
    Messages
    243
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2009
    Messages : 243
    Par d�faut Un exemple � suivre chez Microsoft
    1982... c'est pas trop t�t .

    Je trouve que Visual studio reste un chef-d'oeuvre.
    Ils s'am�liorent au fil des nouvelles versions. L'exp�rience utilisateur compte pour eux.
    Chapeau � l'�quipe de ce projet.

    Contrairement � l'annonce des nouvelles versions de Windows qui me d�prime, je reste impatient � chaque nouveaut� de visual.

    Ce qu'ils font est si remarquable que je me demande pourquoi leur team n'a pas encore repris en main la branche Windows.

Discussions similaires

  1. R�ponses: 1
    Dernier message: 23/03/2015, 16h37
  2. R�ponses: 0
    Dernier message: 22/11/2011, 11h38
  3. Des getters er des Setters avec visual Studio 2005
    Par zghidi dans le forum Visual Studio
    R�ponses: 9
    Dernier message: 27/02/2008, 13h37
  4. Comment faire des camemberts/histogrames avec visual studio 2005
    Par uriel0105 dans le forum Visual Studio
    R�ponses: 1
    Dernier message: 18/06/2007, 09h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo