[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Documentation complète sur la compilation de programmes



Le 05/01/2016 11:21, Pierre TOUZEAU a écrit :

Bon je m'arrête là, je suis déjà trop compliqué sans doute ;-)

puisqu'on semble reprendre les bases, je me permet d'intervenir.

Un programme est composé de deux parties: une suite d'instructions destinées à l'ordinateur et une autre suite d'instructions destinées à l'utilisateur, c'est une interface entre l'homme et la machine.

La partie communication avec l'homme est souvent la plus longue à mettre au point et la moins "mécanisable", c'est là que les langages de haut niveau (C, Pascal...) sont le plus utile.

Mais ces parties sont exécutées à la vitesse de l'homme: très lentement! Aucun besoin d'optimisation en terme de vitesse, là.

Les instructions destinées à l'ordinateur sont essentiellement la traduction en binaire d'équations mathématiques, si les équations sont connues, leur programmation n'est généralement pas difficile, il existe même des bibliothèques ("libraries") qui font le travail. L'optimisation est déjà faite.

Si on doit programmer une bibliothèque soi-même, On va se retrouver devant deux types d'éléments de programmes: les éléments utilisés une fois, qu'on peut optimiser mais le gain est minime, et ceux utilisés souvent, "les boucles" dans lesquels un gain, même minime, devient par la répétition très important.

Ce sont ces boucles qu'il faut optimiser.

Un compilateur se contente d'assembler les différents morceaux pour qu'ils aillent bien ensemble. Il peut compter le nombre d'usages de chaque partie pour voir s'il est utile de l'optimiser. Surtout tous les ordinateurs ne sont pas faits pareil, n'ont pas la même mémoire, le même processeur.

Un compilateur peut créer un code optimisé pour chaque variante de processeur, chaque variante de matériel.

Programmer en langage machine permet d'optimiser le code pour un matériel particulier, pas pour un grand nombre de matériels différents.

reste qu'un compilateur ne sait pas à quoi sert le programme. Par exemple, si on fait un programme de contrôle de température, les paramètres seront différents selon qu'il s'agit d'un four ou d'un frigo.

Si vous écrivez une application nouvelle, il vous faudra donc sans doute optimiser à la main certains aspects, ceux qui sont inconnus du compilateur...

j'ai beaucoup simplifié, les spécialistes m'excuseront :-)
jdd


Reply to: