Mécanique
BONJOURS TOUT LE MONDE.
FORMULAIRE A REMPLIR:
Votre Prénom:
Votre NOM:
Les Langages de Programmation
I – La Genèse
Vers 1950, au tout début de l’informatique, les développeurs n’avaient pas le choix. Programmer, c’était se faire comprendre de la machine. La machine parlait binaire, le programmeur devait parler binaire pour se faire comprendre d’elle. Le code hexadécimal (ou octal) était déjà utilisé, mais c’est le bit qui était l’unité d’entrée des données, parfois même avec des clés.
Bien entendu, les constructeurs fournissaient la liste des mnémoniques de leurs unités centrales, et les programmeurs écrivaient sur papier leurs programmes, avant de les convertir en binaire, à la main. Ne riez pas, c’est vrai ! Heureusement, toutes les machines disposèrent rapidement d’assembleurs, programmes permettant de passer des mnémoniques à l’hexadécimal.
L’assembleur est appelé langage de bas niveau puisqu’il s’adresse directement à la machine. L’avantage des langages de bas niveau :
Compacité (mais aujourd’hui, hein ! on s’en … ).
Rapidité (bien que les compilateurs modernes puissent être très efficaces).
Optimisation forte (accès à toutes les possibilités de la machine).
En contrepartie de ces maigres avantages, le langage machine possède aussi des inconvénients :
Lenteur du développement (<100 i="1,N)" sum="0.0" i="1,N" sum="SUM+A(I)" mean="SUM/FLOAT(N)" number="0" i="1,N" number="NUMBER+1" mean =" ,F10.5,5X,20H" mean =" ,I5)" name="FORTRAN">FORTRAN
Formula Translation
Mathématiques et sciences naturelles
APL
A Programming Language
Essentiellement problèmes mathématiques
LISP
List Processing Language
Langage dans le domaine de l'intelligence artificielle inspiré du λ-Calcul.
BASIC
Beginners All-Purpose Symbolic Instruction Code
Problèmes généraux
ALGOL
Algorithmic Language
Mathématiques et sciences naturelles
COBOL
Common Buisness Oriented Language
Commercial
LOGO
Emprunté au mot grec LOGOS = la raison
Langage d'apprentissage développé principalement pour les enfants
BCPL
Basic Combined Programming Language
Langage qui connaît un grand succès, intégrant la puissance de l'assembleur
SIMULA
Langage développé à partir de l'ALGOL et contenant des nouveaux concepts
FORTH
FOuRTH generation language
Langage d’automate. Utilise la notation polonaise inversée. Très léger !
PL/1
Programming Language n°1
Commercial / mathématiques et sciences naturelles
PROLOG
Programming in Logic
Langage fortement orienté vers le problème
C
Successeur du langage B de AT&T
Langage utilisé pour développer les systèmes d'exploitation. Par exemple UNIX ou MS-Windows.
PASCAL
Du célèbre mathématicien Pascal
Langage structurel polyvalent
ADA
Du nom de la première programmeuse de l'histoire de l'ordinateur: Augusta Ada Byron, collaboratrice de Ch.Babbage
Langage polyvalent dont le développement a été commandé par le ministère américain de la défense
MODULA-2
Modular Language n°2
Langage modulaire développé à partir du PASCAL
C++
Successeur du langage C, développé par Bjarne Stroustrup.
Langage orienté objet. Le plus utilisé au monde à l’heure actuelle.
CAML
Categorical Abstract Machine Language
Langage fonctionnel généraliste développé à l’INRIA, utilisé en CPGE.
JAVA
Sun, langage bytecodé portable de 1991. S’exécute sur une machine virtuelle.
Orienté Web, mais peut être généraliste. Langage orienté objet ressemblant à C++.
C#
Microsoft.
Offre concurrentielle à JAVA.
III – Compilé vs Interprété
De nombreuses classifications des langages s’opposent, comme par exemple : programmation impérative (C, Fortran, Pascal, Basic…), programmation déclarative (SQL, Prolog), programmation fonctionnelle (Lisp, Caml, Schème, ML), voire même programmation objet (C++, JAVA). La frontière étant souvent un peu flou entre ces différents types.
Une seconde classification est dans le cadre du BTS IRIS beaucoup plus importante. Elle différencie les langages compilés et les langages interprétés :
Langage interprété
En informatique, un interpréteur est un outil ayant pour tâche d'analyser, de traduire, et d'exécuter un programme écrit dans un langage informatique. De tels langages sont dits langages interprétés.
Le cycle d'un interpréteur est le suivant:
lire et analyser une instruction ;
si l'instruction est syntaxiquement correcte, l'exécuter ;
passer à l'instruction suivante.
Ainsi, contrairement au compilateur, l'interpréteur se charge aussi de l'exécution du programme, au fur et à mesure de son interprétation. Du fait de cette phase d'interprétation, l'exécution d'un programme interprété est généralement plus lente que le même programme compilé.
Intérêt des langages interprétés :
Facilité de programmation, interactivité à l’écriture.
Facilité de mise au point, aucune phase d’attente avant essai.
Portabilité. Seul l’interpréteur doit être porté.
Inconvénients des langages interprétés :
Lenteur (toute relative).
Manque de protection du code.
Disponibilité et compatibilité des interpréteurs.
Parmi les langages interprétés les plus connus, on trouve :
Basic, Perl, Python, Lisp, Prolog
Langage compilé
Un compilateur est un programme informatique qui traduit un langage, le langage source (par exemple le lanage C), en un autre, appelé le langage cible (par exemple un fichier objet), en préservant la signification du texte source.
En pratique, un compilateur sert le plus souvent à traduire un code source écrit dans un langage de programmation en un autre langage, habituellement un langage d'assemblage ou un langage machine. Le programme en langage machine produit par un compilateur est appelé code objet.
Les étapes de la compilation incluent
le découpage du programme en lexèmes (analyse lexicale) ;
la vérification de la correction de la syntaxe du programme (analyse syntaxique) ;
l'analyse des structures de données (analyse sémantique) ;
la transformation du code source en code intermédiaire ;
l'application de techniques d'optimisation sur le code intermédiaire ;
l'allocation de registres et la traduction du code intermédiaire en code objet, avec éventuellement l'insertion de données de débogage et d'analyse de l'exécution ;
enfin vient la phase d'édition des liens, souvent externe au compilateur.
Le programme généré est toujours un exécutable autonome ou ne dépendant que de librairies partagées.
Intérêt des langages compilés :
Rapidité à l’exécution.
Reverse ingeneering très complexe.
Autonomie du programme généré. Exécutable (Attention aux librairies partagées).
Inconvénients des langages compilés :
Lenteur de mise en œuvre. Compilation nécessaire à chaque modification.
Deboggage presque impossible sur exécutable final.
Parmi les langages compilés les plus connus, on trouve :
C, C++, Pascal, ADA
Langage mixte
Le gros intérêt des langages interprétés est leur portabilité. Le gros intérêt des langages compilés est leur rapidité, d’où l’idée de rassembler ces deux grands points au sein d’un langage.
Pour ce faire, on va utiliser un compilateur, mais celui-ci au lieu de fournir un code spécifique à un processeur particulier va générer du code pour un processeur générique qui n’existe pas… L’exécutable n’en est donc pas vraiment un, et il lui faudra un interpréteur pour convertir les instructions du processeur générique vers le processeur réel.
JAVA par exemple fait partie de ces langages mixtes. Le compilateur JAVA fournit un code intermédiaire appelé Bytecode qui nécessite pour s’exécuter une machine virtuelle.
C#, le concurrent de JAVA développé par Krosoft, génère du code compatible CLR (Common Language Runtime) encore appelé Bytecode MSIL. Le code obtenu s’exécutera sur le .NET Framework qui doit être installé sur la machine.
Le moment de force est l'aptitude d'une force à faire tourner un système mécanique autour d'un point donné, qu'on nomme pivot.
Prenez une planche en équilibre au bord d'un muret. Pour la déséquilibrer on peut poser une charge sur la partie en porte-à-faux. La capacité de cette charge à faire basculer la planche n'est pas la même suivant qu'elle est posée près du muret ou au bout de la planche. De même, on peut au même endroit, placer une charge plus grosse et constater la différence de comportement.
Le pouvoir de basculement dépend donc de l'intensité de la force, mais aussi de la position relative du point d'application et du point de rotation réel ou virtuel considéré.
Ces distinctions sont représentables par le modèle de moment d'une force qui est l'aptitude d'une force à faire tourner un système mécanique autour d'un point donné, qu'on nommera aussi pivot.
Expression vectorielle [modifier]
Le moment d'une force s'exerçant au point A par rapport au pivot P, est le pseudovecteur :
.
où désigne le produit vectoriel.
Remarque sur la notation
Il existe plusieurs variantes de notation des moments de force ; certaines (comme sur l'image ci-contre) comportent des parenthèses autour du vecteur, parfois autour de l'ensemble. D'autres ajoutent même à la notation l'élément agissant et l'élément subissant l'action. Une notation plus compacte consiste à nommer la force par la même lettre que celle désignant le point d'application, ce qui rend plus rapide l'identification des cas de nullité de moments.
Ce pseudovecteur est à la fois orthogonal à et au bipoint et finalement normal au plan dans lequel se déroule la rotation que peut provoquer la force, et son sens donne le sens de rotation (la rotation est positive dans le plan orienté par ).
Si d est la distance orthogonale du pivot P à la droite d'action, c’est-à-dire PH, alors sa norme vaut :
.
La longueur d est appelée bras de levier. Dans le cas bidimensionnel, il est fréquent de considérer la norme du moment comme le moment lui-même, celui-ci ne comportant qu'une composante non nulle.
Les composantes et la norme d'un moment de force sont exprimées en newton-mètre (Nm), dans le système international d'unités.
Cas de nullité du moment
Puisqu'il s'agit ensuite d'établir la somme nulle des moments, on peut naturellement s'intéresser aux cas de nullité individuelle des moments de force ; de par les propriétés du produit vectoriel :
la force est nulle ;
le bipoint est . La force est donc appliquée en P.
et sont colinéaires ; alors la droite d'action passe par P, ce qui inclut aussi le cas précédent.
Formule de transport du moment
Lorsqu'on connaît le moment d'une force en un point, il est possible de le recalculer en n'importe quel point de l'espace. Cette opération est inévitable lorsqu'on manipule les torseurs d'actions mécaniques. Cela revient à poser une rallonge au levier AP. On montre alors la relation suivante :
.
On peut vérifier alors :
.
En réalité une force est modélisée par un vecteur (représentant la force) et son point d'application. Il est possible de représenter cette action mécanique par le couple de vecteurs force et moment en un point, qui sont les éléments de réduction du torseur d'action mécanique. La relation d'équilibre liée au principe fondamental de la statique devient une somme de torseurs ; en pratique, on effectuera parallèlement la somme des forces, et la somme des moments tous exprimés au même point, d'où l'intérêt de la formule de transport de moments.
Moment par rapport à un axe Lorsqu'un solide est animé d'un mouvement de rotation effectif autour d'un axe (cas d'une roue guidée par un palier) il est intéressant de ne considérer que la part utile du moment d'une force. On définit le moment de la force par rapport à l'axe (Δ) par
,
où est un vecteur unitaire de (Δ), P est un point quelconque de (Δ) et où les crochets dénotent le produit mixte.
En résumé il s'agit de la composante suivant du moment de calculé en P. De ce fait il s'agit d'un nombre scalaire : « » est une opération de projection sur l'axe . Sur le plan mécanique, c'est la seule composante (dans le cas d'une liaison parfaite au pivot) susceptible de fournir (ou consommer) une puissance. Le « reste » du moment sera subi par le palier. Cette partie complémentaire intéressera le technologue qui prendra en compte ces valeurs pour le dimensionnement du palier.
Le moment par rapport à l'axe est nul si
le moment par rapport au point est nul (cas général précédent).
la force est dans la direction de l'axe considéré.
Couple de forces
Si on considère deux forces opposées appliquée en A et appliquée en B, points distincts d'un même système, il est évident que leur somme est nulle. Qu'en est-il de la somme de leur moment en un point P de l'espace ?
.
On remarque que le résultat est indépendant du point de pivot P considéré. Cette quantité est appelée couple. Il n'est pas besoin de préciser le point de rotation. Les deux forces constituent alors un couple de forces.
Outre les autres cas évidents, le couple est nul lorsque les deux forces ont la même droite d'action. Le couple augmente avec l'intensité commune des forces, mais aussi avec l'éloignement des points. Il est maximal lorsque et sont orthogonaux.
En réalité le couple n'existe pas intrinsèquement. Il est toujours associé à un ensemble de forces s'annulant vectoriellement mais dont les moments s'ajoutent sans s'annuler. C'est par exemple le résultat de l'action du vent sur une éolienne, ou l'action des forces électromagnétiques sur l'induit d'un moteur électrique.
On ne doit donc pas faire le raccourci « somme des moments = moment de la somme ». Cela n'est vrai que pour un ensemble de forces appliquées au même point. Cela montre enfin qu'une action mécanique n'est pas représentable par un seul vecteur force. La considération du point d'application est primordiale.
Théorème de Varignon [modifier]
Le moment en P de la résultante de plusieurs forces concourantes en A est égal à la somme des moments en P de ces différentes forces :
,
avec .
En effet :
En dynamique [modifier]
En mécanique dynamique, on peut montrer que le moment des forces est la dérivée du moment cinétique par rapport au temps :
Ceci est l'équivalent du principe fondamental de la dynamique (deuxième loi de Newton) en rotation.
On peut aussi montrer que si est le vecteur vitesse angulaire, c'est-à-dire le vecteur
colinéaire à l'axe de rotation Δ,
dont la norme est la vitesse angulaire
et orienté de façon que l'orientation positive d'un plan normal correspond au sens de rotation, alors :
où JΔ est le moment d'inertie du solide par rapport à l'axe de rotation Δ.