Coup d'oeil sur les compilateurs

Publié le par JJ

Comme je n'aime pas réinventer la roue, je vous invite à suivre le lien [en]  pour connaitre un tas de compilateur surpuissant avec au passage une mention spéciale pour ce site qui publie VB 2005.NET en premier alors qu'il me semble qu'il s'agit d'une béta. En fait je n'en sais rien puisque je ne peux pas exécuter se programme sur mon pc.

Dans tous les cas il faut connaître la norme à laquelle se réfère le compilateur. Non que ça change grand chose pour un débutant mais après si. Mais le C++ n'a pas toujours eu toutes ses fonctionnalités... de même pour java.

L'avantage de connaître sa norme pour un &C-iste comme moi est de mieux comprendre que #include <stdlib.h> et #include <cstdlib> c'est pas la même chose, et que mélanger stdio.h et iostream c'est pas beau. Je ne parle pas de conio.h nononononononon! et en regle générale j'ai tendance à faire enlever les printf des codes en C++ parce que cout. "C+" n'existe pas.

On n'a pas le choix: pour beaucoup de monde C c'est une sorte de sous C++ avec que des inconvénients: pas de cin pas de cout. à la place un printf et un scanf qui sont chiant à utiliser.Pas d'objets pas de classes, pas facile à entretenir.

C'est vrai les struct sont un peu délicates à déclarer en C... mais bon, personnelement je trouve hypocrite de dire je fais du C++ et faire de la programmation fonctionnelle
et pas de l'objet. Bien sur c'est possible, mais je crois pas que le ++ est là pour faire joli.

En suivant ce lien sur Wikipedia  [en] on retrace mieux que je saurai le faire l'histoire de la surcouche. Je recommande la lecture des exemple d'incompatibilité entre Cet C++ notement avec le style C old fashion:

 
int main(argc, argv)
int argc;
char **argv;
{
...

}



qui est incompatible avec le style C++:
int main(int argc, char *argv[])
{
...
}


Je précise que je n'ai jamais rencontré de code dans le premier style donc je le déconseille.

Enfin pour finir il y a des discussions sur l'avenir du C++ avec par exemple la possibilité d'integrer un "ramasse miette" dans une norme future ou un type table de hachage comme en java. Un peu comme pour ce qui c'est passé avec la STL.

Hum ya des puristes qui craignent pour le "ramasse miette" parce que c'est une belle façon de ralentir le code et de laisser la main sur la chose principale d'un langage orienté objet cad vie de l'objet en échange du colmatage de toutes les fuites de mémoire...

Publié dans Compilation

Commenter cet article