C programmation
<span class="mw-headline" id="C_programmation« >C programmation
Ralph Wargny. Intel est principalement un fabricant de processeurs et de semi-conducteurs, et non un éditeur. Cependant, nous vendons le logiciel pour les développeurs qui programme des applications optimisées pour nos architectures matérielles et nos transformateurs afin d’obtenir des performances maximales.
Historiquement, les outils de développement que nous fournissons ont tendance à se concentrer sur le terrain des performances de calcul. Mais avec l’avènement des architectures multi-core, notre positionnement va évoluer. Ces dernières années, nous sommes passés de dual-core, les quad-core et octo-core. Il ya même vers les nombreux-core. Cette évolution vers une programmation plus complexe multi-core pour 95% des développeurs. Cela est particulièrement vrai pour les développements dans le domaine du multimédia, du traitement d’images ou de sons, mais aussi dans des applications industrielles nécessitant de nombreux contrôles.
Nous venons de lancer Intel Parallel Studio. Cet outil est destiné à C. Il s’intègre avec Microsoft Visual Studio environnement comme un extension.C est plus proche de la couche matérielle, et donc le processeur, il était logique que nous nous engageons dans ce domaine. Moins que pour C #, où Microsoft proposera ses propres solutions dans les versions 2010 et 2012 de Visual Studio.
Parallel Studio fait d’abord tester les performances des programmes C sur une architecture multi-core.L’outil analyse la façon dont l’application se comporte, et le suivi des erreurs potentielles.
Les erreurs les plus courantes sont le verrou mort qui se manifeste par un arrêt, ou la condition de course. Ce dernier apparaît comme plusieurs lignes en cours d’exécution de partager une ressource mémoire ou processeur, indéfiniment, ce qui contribue à ralentir l’ensemble du système.
La particularité de ces erreurs, c’est qu’ils sont non déterministes, c’est-à-dire qu’il est impossible de savoir quand ils vont se produire. Nous offrons plusieurs modules pour effectuer ces tâches: l’inspecteur pour trouver les erreurs de parallélisme d’une part, l’échelle pour analyser le comportement d’une application sur un des processeurs multi-core sur le module other.A troisième, appelé conseiller, qui arrivera en 2010 sera conçu pour faire des recommandations pour le développement parallèle.
Oui. Un quatrième module, appelé Compositeur, comprend des compilateurs et des bibliothèques de composants C en parallèle déjà pré-testé et corrigé. Ces éléments couvrent la compression de fichiers, la génération de fichiers MP3, de manipulation d’image … Composer est livré avec les bibliothèques d’exécution Trading Building Block pour Intel et Open MP, est un parallèle standard technologie adaptée au calcul numérique.
Pour nous, ce marché est important. Plusieurs millions de développeurs sont positionnés sur C.Mais d’ici là, la plate-forme Microsoft, nous nous attendons à une version pour Linux, et peut-être plus tard pour Mac OS. Licende l’Intel Parallel Studio se situe à 799 $ par utilisateur pour la suite complète, et 399 $ par module.
infoclick (Gers, 32) propose des solutions informatiques: vente de matériel informatique, maintenance informatique, installation de votre réseau de conseil aux entreprises. Les ventes de PC assemblés, montés informatique (Intel Pentium, AMD Athlon, AMD Sempron, etc.) PC assemblé pour la bureautique jeux et le multimédia.
Sources
Syntaxe
La syntaxe de C a été conçu pour être bref. Historiquement, elle a souvent été comparée à celle de Pascal, un langage impératif également créé dans les années 1970. Voici un exemple d’une fonction factorielle:
Il est à noter que, lorsque Pascal utilise des mots clés comme la fonction, début, fin et ensuite, C utilise des parenthèses et les accolades.
Bonjour tout le monde
programme mondial Bonjour proposé en 1978 comme un exemple dans The C Programming Language par Brian W. Kernighan et Dennis M. Ritchie:
un comportement non défini
Comportement laissée au choix de mise en œuvre
La définition du langage standard C quitte le comportement exact de plusieurs opérations dans le choix du concepteur du compilateur. Ces comportements sont définis par la propriété mise en œuvre.C permet au compilateur C d’utiliser les instructions fournies directement par le processeur, puis compiler des programmes exécutables à court et efficace. En retour, il est parfois la cause de la portabilité des bugs de code source écrit en C.
Prenons l’exemple de la division entière de nombres négatifs: -5 / 3. Bien que Fortran, Pascal et Ada spécifier un score de -1, et Modula-3 spécifie un score de -2, C garantit simplement que la valeur absolue du reste est strictement inférieure à la valeur absolue du diviseur. La seule garantie dans cet exemple est que le résultat sera compris entre -2 et 0.
Pour le programmeur et l’efficacité de C, le plus important est sans aucun doute le fait que la taille des types de données qui doivent répondre aux garanties minimales. Ainsi, l’int correspondant au mot machine peut avoir une taille de 16 bits sur processeur 16 bits et une taille de 64 bits sur le processeur 64-bit. Voir la section ‘Types’ pour plus de détails.
un comportement non défini
En C, les structures se comportent syntaxiquement valides lors de l’exécution complètement défini.Outre la division par zéro classique, nous pouvons signaler la cession multiples d’une variable dans la même expression, avec l’exemple:
Histoire de Turbo Pascal
La montée de Pascal a suivi celle de la micro-informatique, grâce à Philippe Khan bienconnu français qui, le premier commercialisé un compilateur performantet fiable: Turbo Pascal. Il a fondé le sociétéBORLAND et est actuellement le chef de la direction (CEO) de la sociétéSTARFISH.
Turbo Pascal offert un environnement complet (pourl’époque) de programmation avec l’éditeur texteperformant, compilateur, et tout ce qui aide. Avec produitsconcurrents qu’il avait à écrire du code dans un éditeur de texte séparé (compte tenu du niveau des temps éditeursà …), puis sortir et commencer à la ligne de commande compilateuren (comme ‘tpc-myprog fio. Pasmonprog.exe’), puis exécutez le programme de test. En TurboPascal, un contact a été suffisant pour faire this.Since, en vivant sa Borland Turbo Pascal a cessé apporterdes améliorations intelligentes au langage, qui est plus standard coupn’était M. Wirth. Mais depuis qu’il a le monopole unquasi, il était plus facile pour lui que pour le langage ‘C’, pour lequel le comité des normes devrait recueillir l’évolution ForEach, avec Laclé combats coûteux.PASCAL (au moins le Turbo Pascal) a été ainsiévoluer garder son esprit et la philosophie.
Puis vint de plus en versions plusperfectionnées, jusqu’à 6 qui a unenvironnement fenêtre (DOS bien sûr) Sous réserve de uneprogrammation et une bibliothèque nommée TurboVision, de sorte que Windows-Like en mode texte, ce qui permet dedévelopper applications prenant en charge les boutons de la souris, la touche de tabulation ( raccourcis beurk!), clavier, etc.
La version 7 est disponible en deux versions: une pour Windows et pourDOS avec l’apparition d’OWL (Object WindowsLibrary), un type de Turbo Vision pour Windows, qui encapsulent permettaitdéjà, c’est à dire de cacher la lacomplexité API Windows, mais il n’étaitpas encore, en particulier en tant que sortitalors petit concurrent: Microsoft Visual Basic (VB) de programmation et de ses «visuelle». réponse de Borland a été presque instantanée, et unebande programmeurs brillante inventé ‘Delphi’ en 1995, a hérité de l’environnement Turbo Pascal.marquaimmédiatement Delphi points grâce à un code machine génératrice compilateurperformant vrai (Contrairement à VB était un interprète ou compilateur unpseudo), un environnement ‘bi’ (unObjet ajout d’une fenêtre en faisant glisser provoquel’écriture automatique de code et vice versa), unetrès lisse transition avec l’objet Turbo Pascal, et Lafami VCL (Visual Component Library) sontlivrées dont les sources et la richesse de auxprogrammeurs information et de formation de toutes les allégeances.
Delphi 16 bits est toujours livré en même temps, ce que la dernière version, Delphi 5 qui devrait générer des applications pour Windows 32-bit (95,98, NT, 2000).
infoclick (Gers, 32) propose des solutions: la vente de matériel informatique, maintenance informatique, installation de votre réseau de conseil aux entreprises. Les ventes de PC assemblés, montés informatique (Intel Pentium, AMD Athlon, AMD Sempron, etc.) PC assemblé pour les jeux, la bureautique et le multimédia.
La bibliothèque standard
La norme de la bibliothèque standard, disponible avec toutes les implémentations, cette simplicité associée à un langage de bas niveau. Voici une liste de quelques-tête déclarant types et fonctions de la bibliothèque standard:
La bibliothèque standard fournit pas de support standard d’interface graphique, réseau d’E / S sur les systèmes en temps réel de série ou en parallèle,, processus ou threads, ou le traitement avancé des erreurs (comme structurée des exceptions). Cela peut restreindre la portabilité des programmes beaucoup plus pratiques à utiliser certaines de ces fonctions, sans l’existence de nombreuses bibliothèques portables et de surmonter ce manque, dans le monde UNIX, ce besoin est également apparu une autre norme, POSIX.1.
Encapsulation en C
L’encapsulation permet d’ignorer le fonctionnement interne (c’est-à-la mise en œuvre) d’une classe et fait craindre que les services rendus par it.C implémente l’encapsulation en permettant aux membres de déclarer une classe avec le mot-clé public, privé ou protégé. Ainsi, lorsqu’un membre est déclaré:
C ne nécessite pas l’encapsulation des membres dans leurs classes. Nous pourrions déclarer tous les membres du public, mais de perdre certains des avantages de la programmation orientée objet. Il est bon de déclarer toutes les données privées, ou du moins protégés, et de rendre publiques les méthodes agissant sur ces données. Cela permet de cacher les détails de la mise en œuvre de la classe.
‘Bonjour tout le monde’
Voici un exemple donné dans Bonjour tout le monde Le langage de programmation C, troisième édition Bjarne Stroustrup:
Un concept important dans les espaces C (espaces de noms). Dans un des espaces de noms fonction définie et variables. Ce mécanisme permet de résoudre les ambiguïtés lorsque plusieurs variables à partir de différents composants sont des homonymes. Pour utiliser une fonction au sein d’un espace de noms, l’opérateur de résolution de portée ‘::’ est utilisé.
Ce code source utilise le coût variable globale définie dans le namespace standard (std). Il est possible de spécifier un espace de noms spécifiques à utiliser pour éviter d’avoir à utiliser l’opérateur de résolution de portée. Pour cela, en utilisant le mot-clé est utilisé avec la syntaxe suivante:
Ceci s’applique à tous les espaces de noms. Cette déclaration est en général avant le début du code lui-même:
Déclaration de classe
Exemple de déclaration de classe MessageInternet ayant des attributs de méthodes privées et publiques»MessageInternet«le constructeur:
Déclaration des modèles
Que sont les modèles?
Les modèles vous permettent d’écrire des fonctions et classes en définissant le type de certains de leurs constituants (paramètres de type ou de type de retour pour une fonction, type d’objets pour une classe de collection par exemple).Les modèles vous permettent d’écrire du code générique, c’est-à-dire qui peuvent être utilisés pour une famille de fonctions ou de classes qui ne diffèrent que par la valeur de ces paramètres.
Pourquoi utiliser des modèles?
Par exemple, un tableau de int ou double table sont très semblables, et les fonctions de tri ou de recherche dans ces tableaux sont identiques, la seule différence étant le type de données traitées.
Exemples de modèles
Dans la bibliothèque standard C, il existe de nombreux modèles. Nous mentionnons à titre d’exemple, I / O, des cordes ou des conteneurs. Les classes de cordes, istream, ostream et iostream sont toutes les instanciations de type char.
En ligne float f = Max