Chapitre1 :Les programmes informatiques 1.1. La multiplicité des applications S

Chapitre1 :Les programmes informatiques 1.1. La multiplicité des applications Si l’on s’intéresse aux applications de l’ordinateur, on s’aperçoit qu’elles sont trèsnombreuses. En voici quelques exemples : x Etablissement de feuilles de paye, de facture, x Gestion de stocks, x Consultation de base de données, x Détermination du tracé d’une autoroute, x Calcul de la trajectoire d’un satellite, x Suivi médical de patients, x Traitement de texte, x … C’est une machine totalement dénuée d’intelligence. Il faut tout lui enseigner, et il fait toutcomme il lui a été enseigné, sans « réfléchir ». Cependant, contrairement aux autres machinesqui ne peuvent faire que des nombres limités de tâches, l’ordinateur est capable d’effectuerune infinité de tâches sur le traitement de l’information. L’ordinateur peut traiter autant de problèmes différents grâce à des actions de base qu’il saitréaliser. Il suffit de lui indiquer l’ordre dans lequel il faut qu’il effectue ces actions et lesdonnées à utiliser. Ces ordres élémentaires sont appelés instructions et sont rassemblés ausein d’un ensemble appelé programme. Donner des ordres à l’ordinateur signifie « être capable de communiquer » avec lui. Cettecommunication passe par un langage de communication appelé langage de programmationdans lequel est écrit le programme. 1.2 Définition 1.2.1. Le programme Un programme représente un assemblage et un enchaînement d’instructions élémentaires écritdans un langage de programmation, et exécuté par un ordinateur afin de traiter les donnéesd’un problème et envoyer les résultats. 1.2.2. L’algorithme Un algorithme lui est l’enchaînement des actions (instructions) nécessaires pour faire exécuterune tâche à un ordinateur (résoudre un problème) ; il s’écrit en pseudo langage deprogrammation (appelé langage algorithmique). Il a l’avantage d’être traduit facilement danstous les langages de programmation. L’algorithmique, l’art d’écrire des algorithmes, permet de se focaliser sur la procédure derésolution du problème sans avoir à se soucier des spécificités d’un langage particulier. Pourrésoudre un problème, il est vivement conseillé de réfléchir d’abord à l’algorithme avantd’aborder le programme proprement dit, c'est-à-dire d’écrire le programme en langage deprogrammation. Schématiquement, la mise en œuvre d’un programme se présente comme suit: 1.3. Données et résultats Supposez qu’un enseignant dispose d’un ordinateur et d’un programme de calcul de moyennede notes. Pour s’exécuter, ce programme nécessite qu’on lui fournisse les notes dont oncherche la moyenne. Nous les appellerons informations données ou plus simplement données. En retour, le programme va fournir la moyenne recherchée. Nous l’appellerons informationrésultats ou plus simplement résultats. Si le programme a été prévu pour cela, il peut, bienentendu, fournir d’autres résultats tels que le nombre de notes supérieures à la moyenne. De la même manière, un programme de paye nécessite des informations données : noms desemployés, situation de famille, numéro S/S., nombre d’heures supplémentaires, etc. Lesrésultats seront imprimés sur les différents bulletins de paye : identification de l’employé,salaire brut, retenue S/S., etc. 1.4. Schéma récapitulatif En définitive, deux étapes apparaissent dans l’utilisation d’un ordinateur : a) La transmission du programme à l’ordinateur. Il est, soit fourni directement (clavier, cartes perforées), soit recherché en archives. b) L’exécution. Ce dernier utilise des données et fournit des résultats. Là encore, l’échange d’information peut se faire soit avec l’homme, soit avec des archives. Chapitre2. Généralités sur les langages de programmation 2.1. Définition D'un point de vue mathématique, un langage de programmation est un langage formelconstruit sur un alphabet (ensemble de symboles). Dans cet alphabet, on trouve plusieurschoses : x des lettres et des chiffres ; x des mots-clés (combinaisons de lettres et parfois de chiffres) ; x des caractères : 9 correspondant à des opérateurs : par exemple « = », « < », « & » ; 9 ou pas, comme « { », « _ », … L'assemblage de ces symboles forme les « mots » du langage de programmation. Pour qu'unmot appartienne au langage, il doit vérifier certaines contraintes exprimées grâce à la théoriedes langages dans une grammaire formelle : c'est la « syntaxe » du langage deprogrammation. En associant une sémantique - généralement une opération - à chaque mot, on définit lecomportement de la machine. La mise en relation de mots va donner un programmeinformatique. 2.2 programmation Suivant le langage utilisé, un programme doit être interprété ou compilé en passant par un autre langage qui pourra être compris par la machine : l'assembleur ou même en code binaire. D'un point de vue pratique, un langage de programmation permet l'écriture de programmes de manière compréhensible par un être humain. Le programmeur n'a pas besoin de connaître lelangage machine, dit « de bas niveau », pour écrire un programme. Le langage deprogrammation fournit une abstraction de niveau supérieur pour utiliser une machine. Il existe des milliers de langages de programmation, la plupart d'entre eux étant réservés à desdomaines spécialisés. Ils font l'objet de recherches constantes dans les universités et dansl'industrie. 2.3 Syntaxe Outre les particularités sémantiques des langages, ils utilisent également des grammairesdifférentes qui proposent souvent des points communs. Les particularités syntaxiques ne sont souvent que des détails qui ne changent pas lesfonctionnalités proposées par les langages de programmation. Par exemple, dans Objective-C2, il est possible d'utiliser les accesseurs avec deux syntaxes différentes pour le mêmerésultat : La nuance est importante, car en C, la dernière instruction d'un bloc doit comprendre unpoint-virgule (;) qui est un terminateur alors qu'en Pascal, il est inutile, voire fautif, d'enmettre un (cela consiste à ajouter une instruction vide en fin de bloc). De même, le caractère ;peut être utilisé en C comme instruction vide, ce qui n'aurait pas de sens en Pascal. Les langages utilisant un terminateur sont réputés engendrer moins de fautes de syntaxe queceux utilisant un séparateur. 2.4. Balisage Certains langages utilisent des « balises » délimitant des « environnements ». Une balise estgénéralement un mot-clé associé à plusieurs caractères : \ ; <> ; etc. Les langages permettant de générer du code source ou des documents utilisent souvent desbalises. Par exemple, PHP et JSP utilisent des balises pour délimiter les parties de code àinterpréter. XML est également un langage à balises, qui permet de définir des langages deprogrammation comme XSP ou XSLT. 2.5. Stratégie d’évaluation Une stratégie d'évaluation est un ensemble de règles qui décrivent comment évaluer uneexpression dans un langage de programmation. La stratégie d'évaluation définit à quelmoment les arguments des fonctions et opérateurs sont évalués ou réduits. On distingue essentiellement deux stratégies : x l'évaluation stricte : les arguments des fonctions sont toujours évalués avant que la fonction ne soit appliquée. x l'évaluation paresseuse ou évaluation retardée : les arguments ne sont évalués que lorsque leur valeur est effectivement requise. Ce type d'évaluation est généralement utilisé dans les langages fonctionnels. La plupart des langages ont un système d'évaluation stricte, et utilisent une forme d'évaluationparesseuse pour les expressions booléennes (évaluation court-circuit). Cependant il estpossible de créer une évaluation paresseuse dans un langage à évaluation stricte. Par exemple,Scheme fournit la fonction delay qui retarde l'évaluation d'une expression et force qui obligel'évaluation. 2.6. Gestion de la mémoire Les langages de programmation offrent plus ou moins de libertés au programmeur en ce qui concerne la gestion de la mémoire : x Soit elle est entièrement sous le contrôle du développeur qui doit gérer lui-même l'espace mémoire disponible, les allocations et libérations. C'est le cas pour les langages de bas niveau, comme le C. x Soit tout peut être contrôlé par le compilateur ou par le moteur d’exécution (Java) : même s'il est possible de donner des directives, la machine virtuelle gère elle-même la mémoire à l'aide d'un ramasse- miettes. C'est ainsi que fonctionnent les langages dehaut niveau, comme Python. Certains langages proposent un système intermédiaire. En Objective-C, il est possible de lagérer directement, d'activer la gestion automatique de la mémoire ou d'utiliser un système deplus haut niveau. 2.7. Les exceptions Les exceptions sont des cas limites d'exécution du programme (division par 0, etc.). Lorsqu'elles sont générées, le déroulement du programme est interrompu. Au contraire d'uneerreur qui interrompt brutalement le programme, la gestion d'une exception permetd'interrompre proprement un programme, de corriger l'erreur et d'en reprendre l'exécution. La gestion des exceptions peut être différente selon les langages ; soit : x Il n'y en a pas (C) ; x Elle signale l'exception sans la traiter (C++, C#, Java) ; x Elle permet un traitement : par exemple, la modification du programme par leprogramme lui-même (comme en Python) pour reprendre une exécution« normalement ». 2.8. Principaux paradigmes Chaque langage de programmation est différent. Une solution exprimée dans un certainlangage peut « ressembler » à une solution exprimée dans un autre langage ; dans ce cas, ondit que les langages utilisent le même paradigme (ou style). Deux programmes fournissant lasolution au même problème, mais écrits avec des paradigmes différents serontfondamentalement très différents. De nombreux langages appartiennent simultanément à plusieurs catégories : ils sont dits« multi-paradigmes ». Par exemple, C++ permet la programmation impérative, orientée objetet la programmation générique (à base de classes et de fonctions paramétrées nommées « templates ». Common Lisp est à la fois impératif, fonctionnel, orienté objet ; son caractère« programmable » (un langage de programmation programmable…) lui permet d'intégrerd'autres « paradigmes » de programmation en son sein (par exemple : la programmationlogique et uploads/Management/ cours-logiciel-si2.pdf

  • 30
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Mar 09, 2021
  • Catégorie Management
  • Langue French
  • Taille du fichier 1.5150MB