Formation programmation c
<span class="mw-headline" id="Formation_programmation_c »>Formation programmation c
Un nouveau concept de développement
‘Au cours des 35 dernières années, les concepteurs de matériel informatique est tombé de la machine de la taille d’un ordinateur portable Ades hangar léger basé sur les années microprocesseurs.Au minuscules même, les développeurs de logiciels sous tension de l’écriture programmation en assembleur et des programmes COBOL àl’écriture encore plus en C et C. On peut parler de progrès (bien quecela est discutable), mais il est clair que le monde du logiciel ne progresse pas aussi vite que l’équipement celuidu. Qu’est-ce que les développeurs de matériel et les développeurs de logiciels n’ont pas?
La réponse est donnée par les composants. Si les ingénieurs avaient équipements électroniques à partir d’un tas de sable à chaque conception foisqu’ils un nouveau système, si leur première étape a consisté à extraire le silicium pour fabriquer toujoursconsister circuits intégrés, ils neprogresseraient pas très fast.However, un concepteur de matériel construit toujours un système à partir de composants préparés, chacun chargé d’un ensemble de fonctionparticulière fournissantun et services à travers des interfaces définies. La tâche de matériel concepteursde est grandement simplifiée par le travail de leurs prédécesseurs.
La réutilisation est aussi une voie vers la création de meilleures Logiciels.Même aujourd’hui Aujourd ‘, les développeurs de logiciels sont encore en utilisant une certaine forme de sable et de suivre les mêmes étapes que les programmeurs lescentaines qui nous ont précédés. Le estsouvent excellent résultat, mais elle pourrait être améliorée. Création d’applications denouvelles partir de composants existants, déjà testés, des atouts susceptibles de produire un code plus fiable. En outre, il peut révélernettement plus rapide et moins coûteux, ce qui n’est pas moins important. ‘
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 le 1970s.Here est 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 mise en œuvre.Cette propriété 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.While 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:
Sources dans l’exécutable
Génération d’un exécutable à partir de fichiers source se fait en plusieurs étapes, qui sont souvent automatisées à l’aide d’outils tels que:
Précompilation
Au cours de cette étape, le préprocesseur effectue plusieurs opérations sur les fichiers source, y compris les instructions (les directives du préprocesseur) sont dans ces fichiers. Le préprocesseur génère ensuite les fichiers intermédiaires pour chaque fichier source (qui ont généralement l’extension ‘. C ‘), pour utilisation dans l’étape suivante.
Le préprocesseur effectue une substitution de texte, les inclusions de fichiers (généralement fichier d’entête contenant diverses déclarations) avec la possibilité d’effectuer certaines opérations que si certaines conditions sont remplies. Il a également été à ce stade que les commentaires sont supprimés.
Compilation
La phase de compilation se compose généralement de générer le code assembleur (toujours lisible par un être humain, mais en fonction du processeur). Pour chaque fichier source, vous obtenez un fichier en langage assembleur.
Par abus de langage est appelée compilation toute la phase de génération d’un exécutable à partir de fichiers source. Mais ce n’est que l’une des étapes menant à la création d’un exécutable.
Certains compilateurs C fonctionnent à ce niveau en deux phases, la première génération d’un fichier compilé dans un langage intermédiaire pour un idéal de la machine virtuelle (voir P-Code) portable d’une plateforme à une autre, la conversion de la langue seconde langue intermédiaire d’assemblage en fonction du processeur sur la plate-forme cible.
D’autres compilateurs C ne peut pas générer langage d’assemblage, mais seulement à la compilation de langage intermédiaire, qui sera automatiquement interprété ou compilé en code natif en cours d’exécution sur la machine cible (une machine virtuelle qui sera liée au programme final).
Assemblée
Cette étape implique la génération d’un fichier objet pour chaque fichier dans le code assembleur. Ces sont des fichiers objet en langage machine. Il s’agit d’un format binaire, en fonction du processeur. Les objets sont généralement les fichiers ‘. O’ Unix ou Linux, ou ‘. Obj’ avec les outils de développement pour les plates-formes Microsoft, Intel, Digital, IBM DOS, Windows, VMS, CP / M … où les extensions se produisent généralement sous la forme de trois caractères.
Cette phase est parfois regroupés avec la précédente (en mettant en place un flux de fichiers de données internes sans passer par le langage intermédiaire ou langage d’assemblage), auquel cas le compilateur génère un fichier objet directement binaire.
Pour les compilateurs qui génèrent du code intermédiaire, la phase d’assemblage peut également être complètement supprimées: la machine virtuelle (liée au programme final, ou utilisé séparément comme un programme d’alimentation pour fonctionner sur une machine virtuelle partagée et optimisée sur la machine hôte) à accomplir ou de compiler cette langue en code machine natif directement sur l’hôte machine.In ce cas, la machine virtuelle qui interprète le langage intermédiaire et le compile en code natif optimisé pour la machine hôte peut être un composant du système d’exploitation ou une bibliothèque partagée installé sur , et cette machine virtuelle ne sera pas même pas inclus dans le programme définitif sera disponible.
Lier
L’éditeur de liens est la dernière étape et vise à rassembler tous les éléments d’un programme. Les fichiers objets différents sont ensuite combinés, et les bibliothèques statiques, afin de produire un fichier exécutable.
Le but de liaison est de sélectionner des éléments de code présent dans un ensemble utile de code compilé et des bibliothèques, et résoudre les références mutuelle entre ces différents éléments pour leur permettre d’être renvoyé directement à l’exécution du programme.
L’éditeur de liens peut également se produire avec le compilateur génère langage intermédiaire pour générer un fichier unique langage facilement installable par lequel toutes les références sont résolus.
Mais même cette dernière phase de lier langage intermédiaire est parfois supprimé, il a ensuite réalisé que lorsque le programme est chargé directement par l’hôte de la machine virtuelle. Dans ce cas, il est le plus souvent remplacé par la création d’un package (y compris les fichiers objets différents en une seule bibliothèque ou d’archives, et l’inclusion éventuelle dans cette archive un petit fichier de directives pour décrire ce fichier de langage intermédiaire doit être utilisé en premier par le machine virtuelle pour lancer le programme).
Nous pouvons voir maintenant le goût pour les machines virtuelles, en raison de la grande variété de systèmes d’accueil et de l’évolution technologique très rapide de ces derniers, parce qu’il facilite le déploiement de programmes, de sorte que le programmeur n’a plus besoin de générer de nombreux programmes exécutables que les types de cibles systèmes.
Un peu d’histoire
Ce langage a été créé en 1969 de l’Ecole Polytechnique ZURICH WIRTH N.. Il a été produit pour aider à enseigner la programmation comme unescience. Cette langue est la base d’une programmation nouvelleméthode:programmation structurée, et pour cette raison que cette langue était si succèsdans l’éducation. Il s’agit d’un 3èmegénération langue.
En 1975, Pascal a été très largementpénétré le monde de la recherche et desuniversités. Pour son développement, PASCAL devaitêtre acceptée dans le monde industriel, cette fonction qui a été plus ou moins de succès en raison de:
À l’époque, c’est la préhistoire, Pascal a été adopté par nombreuxconstructeurs que le développement du langage (Cray Computer, ICL, Texas Instruments …), et surtout, le compilateur PASCAL CETA facilement disponibles sur les micro-ordinateurs.
Références