Les articles de GNU/Linux Magazine Hors-Série N°55

Article mis en avant

C, C, C... pourquoi toujours le C (et autres choses en rapport) ?

Les langages de programmation ne manquent pas. L'utilisateur souhaitant se former ou être formé n'a que l'embarra du choix. PHP, Perl, Java, Python, Ruby... tous sont très à la mode et largement utilisés. Pourquoi toujours en revenir au C et pour quelle raison a-t-il cette aura qui en fait le langue par excellence lorsqu'il s'agit de développement système ? Le C plaît, il fait rêver et pourtant, il reste un langage difficile à maîtriser et laissant reposer beaucoup de responsabilités sur le programmeur. Petit tour d'horizon du C ainsi que des outils et principes de compilation.
C++0x, la nouvelle version de la norme C++, arrive dans votre compilateur préféré. À vrai dire, elle y est déjà un peu depuis un certain temps. Nous allons regarder comment cela peut améliorer votre quotidien de développeur C++, surtout si vous utilisez la STL ou des bibliothèques ressemblantes.
Qui dit “Android” dit généralement “code en Java”. C'est d'ailleurs là, sans doute, l'une des raisons du succès de la plateforme et de l'affluence massive de développeurs dès les premières heures de la mise en ligne des SDK. Mais depuis quelques versions, il est également possible d'embarquer du code C/C++ et de le compiler pour la plateforme de Google sur architecture ARM. Il est même possible de créer, le plus naturellement du monde, un binaire ARM. Là, cela devient vraiment intéressant.
PHP est un langage de scripting de haut niveau, dynamiquement typé qui propose une sémantique objet. Il est construit au dessus de C (langage de bas niveau, statiquement typé), reposant sur des structures et des types définis dans l'API Zend Engine 2.0.PHP Possède une collection de fonctions très impressionnante qui servent à répondre à des besoins algorithmiques classique et couvrent un très large spectre fonctionnel. Cependant, il peut arriver que dans certains cas, les script exécutés soient particulièrement long car le nombre d'instructions demandées est excessivement important et qu'aucune optimisation de code, en restant dans le cadre de PHP, ne puisse améliorer les performances.Dans ce cas, écrire cet algorithme en C en gérant soi-même les ressources peut permettre de ne pas faire exploser la consommation mémoire ou de rendre le traitement plus rapide. Une autre bonne raison d'écrire des extensions C est le fait de vouloir utiliser une librairie externe.Pour cela, il faut disposer d'un bon niveau en C, et en optimisation de code, puis connaître les bases de l'interaction entre C et PHP.
Tout comme PHP, Python est un langage de haut niveau dynamiquement typé construit au dessus de C, un langage de bas niveau statiquement typé.Il possède par contre une philosophie totalement différente et par voie de conséquence, une implémentation radicalement différente.Si le nombre de modules Python est impressionnant, il peut être utile de vouloir créer les siens directement en C de manière à utiliser une librairie C nouvelle, ou à améliorer les performance, ce qui est utile dans de nombreux domaines niches où la rapidité d'exécution est importante ou la quantité de ressources est limitée.Inversement, des routines C peuvent appeler du code Python, en utilisant directement le code C implémentant Python.Au final, on sait que 80% du temps est passé dans 20% du code. C'est cette partie là qu'il est nécessaire de réécrire en C ou en C++. Pour l'autre partie, la rapidité de développement en Python, la pléthore de librairies disponibles en font un atout indispensable. Du coup, la combinaison des deux technologies devient idéale.
Dans cet article, nous allons voir comment intégrer un moteur de script Lua à un programme C ou C++. Le but de cet article est de fournir le matériel nécessaire pour démarrer rapidement une application avec un moteur Lua intégré.
Dans toute application un tant soit peu complexe, la lecture et l'enregistrement d'un fichier de configuration finissent par devenir une difficulté récurrente, que ce soit sous la forme de fichiers INI, XML, blobs binaires, ou bases de données. Les EFL (Enlightenment Foundation Libraries) fournissent justement une bibliothèque pour gérer ce problème de manière simple et efficace : Eet
Ecrire des programmes en C ou modifier ceux d'autres développeurs n'est pas quelque chose de naturel. Du moins pas dans un premier temps et avec la plupart des personnes. Les sources d'erreurs sont ainsi nombreuses. La fatigue, le manque d'expérience ou tout simplement la densité du code, sont parmi les plus courantes. Le fait est, que, quand on programme, on fait des erreurs. Parfois, ces erreurs ne sont pas les nôtres mais le fait de les corriger peut aider à faire évoluer un projet. Le problème est si courant que pour résoudre ces erreurs, des outils spécifiques ont été créés : les debuggers. Le plus utilisé sous GNU/Linux et d'autres systèmes en logiciel libre est celui proposé par le projet GNU : le GNU Debugger, GDB pour les intimes.
Avec Frama-c, vérifiez et validez vos programmes C de manière sûre par la preuve de programme.