• [^] # Re: pas compris l'interet

    Posté par (site web personnel) . En réponse au message Macro pour définir identifiant uniques. Évalué à 1.

    Là on s'écarte un peu de ma question initiale, mais pas grave ;)
    Le compilateur (qui prend entre autres, des fichiers C en entrée et produit du C en sortie) est relativement "complexe". Par complexe, c'est juste que c'est pas un script de 10 lignes de bash. C'est une application assez lourde, écrite en Java avec un fw à composant. Du coup, intégrer du sed/awk dedans, pas possible (d'autant plus qu'il doit fonctionner sur autre chose que des unix, windows en particulier, et dépendre de cygwin & cie, bof bof).

    Pour détailler un peu plus, le code C va être intégralement analyser pour construire un ASG. ASG qui est manipulé pour effectuer différentes taches:
    - créer un code partagé par plusieurs instances d'un même composants. Ca va demander de faire des structure pour stocker les données d'instances et potentiellement modifier le code donné en entrée pour utiliser cette structure.
    - optimisation du code produit (fortement dépendant de l'architecture que tu compiles... est-ce que tu peux changer les composants à chaud ? Certaines liaisons peuvent elles changer ?)
    - etc

    Du coup, la manip du code n'est pas vraiment simple. Parfois, on aimerait bien faire certaines chose pas très bien, comme c'est le cas pour moi. Je fais une hypothèse sur le code produit, et je m'en sers pour écrire le code d'entrée. C'est mal, mais dans certains cas, on a pas trop le choix. En l'occurrence ici, j'aimerais que certaines fonctions dans le code final généré reflète des noms qui sont données dans le langage qui décrit l'architecture du système.

    On se concentre sur du code en C (pour plein de raisons, mais la plus grande étant les cibles qu'on vise n'ont pas toujours un compilateur C++, et il est plus facile de maîtriser ce qui fini sur ta plate-forme en utilisant du C qu'autre chose. J'ai pas dit que c'était une vérité absolue, mais parfois, faut faire des choix pragmatique pour arriver à quelque chose qui fonctionne), du coup, l'utilisation d'un langage OO n'est pas possible. On a des travaux visant à intégrer des composants écris en C++, on sait récupérer du code objet, etc.

    Et pour finir, la question était aussi pour nourrir ma curiosité, car je suis souvent surpris par ce qu'on peut faire avec les macros et le cpp, et je pensais qu'ici, j'aurais le plus de chance de trouver des as de ce dialecte. J'avoue avoir été un peu déçu d'avoir comme réponse:
    "j'ai pas fait de C depuis des lustres, mais ça sert à rien ce que tu fais"
    "projet sponso par orange, normal que ça soit de la merde"