GNU/Linux Magazine Hors-série N°
Numéro
55

Spécial C et C++

Temporalité
Juillet/Août 2011
Image v3
Spécial C et C++
Article mis en avant

Résumé
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.

Dans ce numéro...


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.

Magazines précédents

Spécial PHP
GNU/Linux-Magazine Hors-série N°54
Spécial PHP
Initiation à Python
GNU/Linux-Magazine Hors-série N°53
Initiation à Python
Développement Android
GNU/Linux-Magazine Hors-série N°52
Développement Android
Hacks, électronique & embarqué
GNU/Linux-Magazine Hors-série N°51
Hacks, électronique & embarqué
Incontournable Python
GNU/Linux-Magazine Hors-série N°49
Incontournable Python

Les derniers articles Premiums

Les derniers articles Premium

Stubby : protection de votre vie privée via le chiffrement des requêtes DNS

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Depuis les révélations d’Edward Snowden sur l’espionnage de masse des communications sur Internet par la NSA, un effort massif a été fait pour protéger la vie en ligne des internautes. Cet effort s’est principalement concentré sur les outils de communication avec la généralisation de l’usage du chiffrement sur le web (désormais, plus de 90 % des échanges se font en HTTPS) et l’adoption en masse des messageries utilisant des protocoles de chiffrement de bout en bout. Cependant, toutes ces communications, bien que chiffrées, utilisent un protocole qui, lui, n’est pas chiffré par défaut, loin de là : le DNS. Voyons ensemble quels sont les risques que cela induit pour les internautes et comment nous pouvons améliorer la situation.

Surveillez la consommation énergétique de votre code

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Être en mesure de surveiller la consommation énergétique de nos applications est une idée attrayante, qui n'est que trop souvent mise à la marge aujourd'hui. C'est d'ailleurs paradoxal, quand on pense que de plus en plus de voitures permettent de connaître la consommation instantanée et la consommation moyenne du véhicule, mais que nos chers ordinateurs, fleurons de la technologie, ne le permettent pas pour nos applications... Mais c'est aussi une tendance qui s'affirme petit à petit et à laquelle à terme, il devrait être difficile d'échapper. Car même si ce n'est qu'un effet de bord, elle nous amène à créer des programmes plus efficaces, qui sont également moins chers à exécuter.

Donnez une autre dimension à vos logs avec Vector

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Avoir des informations précises et détaillées sur ce qu’il se passe dans une infrastructure, et sur les applications qu'elle héberge est un enjeu critique pour votre business. Cependant, ça demande du temps, temps qu'on préfère parfois se réserver pour d'autres tâches jugées plus prioritaires. Mais qu'un système plante, qu'une application perde les pédales ou qu'une faille de sécurité soit découverte et c'est la panique à bord ! Alors je vous le demande, qui voudrait rester aveugle quand l'observabilité a tout à vous offrir ?

Body