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

C++ Discussion :

CPIP : un préprocesseur C/C++ développé sous Python


Sujet :

C++

  1. #1
    Expert confirmé

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2014
    Messages : 194
    Par défaut CPIP : un préprocesseur C/C++ développé sous Python
    CPIP : un préprocesseur C/C++ développé sous Python
    Pour démystifier les « prétraitements » avant la phase de compilation

    Plusieurs traitements réalisés en arrière-plan par les outils de développement, avant la phase de compilation du code source d’un projet, sont inconnus pour le développeur. On peut citer notamment l’inclusion des fichiers ou encore l’utilisation des macros.

    CPIP, un préprocesseur C/C++ développé par Paul Ross, ingénieur informatique chez Google, ambitionne de changer cela. L’outil se donne pour mission de démystifier l’ensemble des « prétraitements » qui sont effectués avant la compilation.

    Comme tous les préprocesseurs, il permet de réaliser les inclusions de fichiers juste avant la phase de compilation, la définition et le replacement de macros et de constantes symboliques ainsi que la compilation conditionnelle du code source.

    Toutefois, CPIP est plus puissant que cela et permet d'enregistrer et visualiser tous les détails de l'opération pour ensuite les afficher à l'utilisateur sous différents formats: code source prétraité, graphe SVG représentant les différentes étapes d'inclusion, arbre coloré représentant le résultat de la compilation conditionnelle, page web affichant les dépendances et définitions de macros ainsi que d'autres informations sous forme de tableaux.

    Le but est donc de donner au développeur toutes les informations utiles qui peuvent l'aider lors du débogage, au lieu de considérer cette phase de prétraitement comme un "sale boulot qui doit être fait le plus vite possible" déclare Paul Ross.

    CPIP a été développé en Python. La version 0.9.1 est disponible en bêta-test sur SourceForge depuis le 23 septembre dernier sous licence GPLv2. Elle a été testée sous Python 2.7 et 3.3 et est actuellement en cours de refactorisation. La version stable devrait être disponible dans quelques semaines.

    Un exemple de précompilation du noyau Linux en utilisant CPIP est disponible sur la page web du projet.

    Télécharger la version bêta de CPIP


    Pour plus d'information sur le fonctionnement d'un préprocesseur


    Source : Le site du projet


    Et vous ?

    Pensez-vous que ce préprocesseur va vous faciliter la tâche de débogage ?

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par défaut
    Citation Envoyé par Amine Horseman Voir le message
    Pensez-vous que ce préprocesseur va vous faciliter la tâche de débogage ?
    Perso, je pense que cet outil ne m'apporterait pas grand chose. A part quand je touche du code existant, je n'utilise pas de macros à part pour l'inclusion et comme header guard. J'évite autant que possible le code conditionnel, préférant séparer le code qui diffère dans différentes unités de compilation, pour que la bonne soit choisie par ma toolchain. A la limite, ça pourrait servir à optimiser les listes d'includes. Quant à débugguer, cpp affiche très bien du code pré-processé, et enfin, j'aurais tendance à penser que ce préprocesseur est plus lent, donc à n'utiliser que pour débugguer en cas de souci. Je ne suis donc pas près de m'en servir...

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Sans compter que sur Visual (et surement les autres compilos du coup), l'option -I (/I ou quelque chose comme ça, je ne sais plus exactement ne l'ayant utilisé qu'une seule et unique fois dans ma courte carrière ) permet déjà ce résultat si je ne m'abuse.
    Je ne trouve aucune utilité à ce projet en dehors de s'amuser avec des regexp et comprendre la syntaxe du langage, en tant que projet perso.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 488
    Par défaut
    C'est "/P" l'option de VS.

Discussions similaires

  1. Quels sont les outils de développement sous Linux ?
    Par Community Management dans le forum Linux
    Réponses: 120
    Dernier message: 11/10/2015, 11h17
  2. Midi sous Python
    Par pfeuh dans le forum Général Python
    Réponses: 1
    Dernier message: 14/11/2006, 11h45
  3. Comment lancer une application qui a été développée sous Unix avec le navigateur IE
    Par diamonds dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 26/09/2006, 14h43
  4. Fonction addslashes sous Python ?
    Par ecocentric dans le forum Général Python
    Réponses: 2
    Dernier message: 28/01/2006, 18h27
  5. Existe-t-il un rad sous python?
    Par sloshy dans le forum EDI/RAD
    Réponses: 6
    Dernier message: 03/10/2005, 09h26

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