Chapitre 1 RRM - Introduction à la Programmation 2023-2024 PDF
Document Details
Uploaded by Deleted User
Tags
Related
- Appunti Introduzione a Python PDF
- Introduction To Python PDF
- Csc 102 Lecture 4 Introduction to Programming (Python) PDF
- Programming Basics (DG Junior, 2023) PDF
- Python Programming Languages - First Unit - RJ First Unit F.ppt PDF
- LBOBGDT Big Data Techniques and Technologies - Introduction to Programming with Python PDF
Summary
This document provides an introduction to programming concepts, including algorithms, program design, and different programming languages. The text discusses various aspects such as program presentation, hardware and software environments and formal and natural languages. It covers Python and its comparison with other languages like Java and C++. This is a comprehensive overview but not specific to a particular exam board or year.
Full Transcript
Chapitre 1 Introduction à la notion de langage de programmation Algorithme et Programme Présentation des programmes Environnements matériel et logiciel Langues formelles et naturelles Langages de programmation Réalisation des programmes Construction des program...
Chapitre 1 Introduction à la notion de langage de programmation Algorithme et Programme Présentation des programmes Environnements matériel et logiciel Langues formelles et naturelles Langages de programmation Réalisation des programmes Construction des programmes Langage Python Python comparé à Java et C++ Conclusion 1 1. Algorithme et Programme Algorithme : ensemble des étapes permettant d’atteindre un but en répétant un nombre fini de fois un nombre fini d’instructions. Donc un algorithme se termine en un temps fini. Programme : un programme est la traduction d’un algorithme en un langage compilable ou interprétable par un ordinateur. Il est souvent écrit en plusieurs parties dont une qui pilote les autres : le programme principal. 2. Présentation des programmes Un programme source est destiné à l’être humain. Pour en faciliter la lecture, il doit être judicieusement présenté et commenté. La signification de parties non triviales doit être expliquée par un commentaire. En Python, par exemple, un commentaire commence par le caractère # et s’étend jusqu’à la fin de la ligne. 2 3. Environnements matériel et logiciel Environnement matériel est l’ordinateur qui comprend entre autres : o Microprocesseur avec une UC (Unité de Contrôle), une UAL (Unité Arithmétique et Logique),une horloge, une mémoire cache rapide ; o Mémoire momentanée (dite vive ou RAM), contenant les instructions et les données nécessaires à l’exécution des programmes. La RAM est formée de cellules binaires (bits) organisées en mots de 8 bits (octets) ; o Périphériques : entrées/sorties, mémoires permanentes (dites mortes : disque dur, clé USB, CDROM…),réseau… Environnement logiciel se caractérise par deux sortes de programmes : o Le système d’exploitation : ensemble des programmes qui gèrent les ressources matérielles et logicielles. Il propose une aide au dialogue entre l’utilisateur et l’ordinateur : l’interface textuelle(interpréteur de commande) ou graphique (gestionnaire de fenêtres). Il est souvent multitâche et par fois multiutilisateur ; o Les programmes applicatifs sont dédiés à des tâches particulières. Ils sont formés d’une série de commandes contenues dans un programme source qui est transformé pour être exécuté par l’ordinateur. Ces programmes peuvent être réaliser en utilisant des langages de programmation. 3 4. Langues formelles et naturelles Les langues naturelles sont les langues que les gens parlent, comme l'arabe, l'anglais, l'espagnol et le français, et qui ont évolué naturellement. Les langages formels sont des langages conçus par des personnes pour des applications spécifiques. Par exemple, la notation utilisée par les mathématiciens est un langage formel particulièrement efficace pour désigner les relations entre nombres et symboles. Les langages de programmation sont des langages formels qui ont été conçus pour exprimer des calculs. Ils ont tendance à avoir des règles de syntaxe strictes qui régissent la structure des instructions. Bien que les langages formels et naturels aient de nombreuses caractéristiques communes, il existe quelques différences : Les langues naturelles sont pleines d'ambiguïté, beaucoup de redondance, que les gens traitent à l'aide d'indices contextuels et d'autres informations. Les langages formels sont conçus pour être presque ou complètement sans ambiguïté, ce qui signifie que toute déclaration a exactement un sens, quel que soit le contexte. Ils sont moins redondants et plus court. Cependant, les langues formelles sont plus denses que les langues naturelles, il faut donc plus de temps pour les lire. 4 5. Langages de programmation Il existe des langages de programmation de différents niveaux : Chaque processeur possède un langage propre, directement exécutable : c’est le langage machine. Il est formé de « 0 » et de « 1 » et n’est pas portable, c’est le seul que l’ordinateur puisse utiliser ; Le langage d’assemblage est un codage alphanumérique du langage machine. Il est plus lisible que le langage machine, mais n’est toujours pas portable. On le traduit en langage machine par un assembleur ; Les langages de haut niveau. Souvent normalisés, ils permettent le transporter le programme d’une machine à l’autre. Ils sont traduits en langage machine par un compilateur ou un interpréteur. 6. Réalisation des programmes Deux techniques de réalisation des programmes : La compilation (Figure 1) est la traduction de la source en langage objet. Elle comprend au moins quatre phases : 5 o Trois phases d’analyse : lexicale (terminologie), syntaxique et sémantique. o Une phase de production de code objet). o Pour générer le langage machine il faut encore une phase particulière : l’édition de liens. Figure 1. Chaîne de compilation Dans la technique de l’interprétation chaque ligne de la source analysée est traduite au fur et à mesure en instruction directement exécutées. Aucun programme objet n’est généré. 6 Cette technique est très souple mais les codes générés sont peu performant : l’interprétation doit être utilisé à chaque nouvelle exécution. Figure 2. Chaîne d’interprétation. 7. Construction des programmes La construction des programmes peut se faire selon les deux méthodologies suivantes : o La méthodologie procédurale qui consiste à utiliser : L’analyse descendante par décomposition du problème posé à des sous tâches Ou l’analyse remontante en réutilisant d’un maximum de sous-algorithmes. 7 On doit donc décomposer un problème complexe en sous-programmes plus simples. Donc, avec cette méthodologie il faut d’abord structurer les sous tâches. La méthodologie objet qui est centrée sur les données. Elle est considérée plus stable dans le temps et meilleure dans sa conception. o On conçoit des classes qui servent à produire des composants (objets) qui contiennent des données (attributs) et des actions (méthodes). o Les classes dérivent (héritage) de classes de base dans une construction hiérarchique. Le langage Python offre les deux méthodologies. 8 8. Langage Python Python est un langage de programmation généraliste de haut niveau. Sa philosophie de conception met l'accent sur la productivité du programmeur et la lisibilité du code. Il a une syntaxe de base minimaliste avec très peu de commandes de base et une sémantique simple. Il possède également une bibliothèque standard vaste et complète, y compris une interface de programmation d'applications API (Application Programming Interface) pour de nombreuses fonctions sous-jacentes et dépendantes du système d'exploitation. 9 Python fournit des objets intégrés tels que des listes chaînées (liste), des tables de hachage (dict), des entiers arbitrairement longs (long), des nombres complexes et des nombres décimaux de précision arbitraire. Python prend en charge plusieurs modèles de programmation, notamment la programmation orientée objet (classe), impérative (def) et fonctionnelle (lambda). Python dispose d'un système de type dynamique et d'une gestion automatique de la mémoire utilisant le comptage de références. Python a été publié pour la première fois par Guido van Rossum en 1991. Le langage a un modèle de développement ouvert et communautaire géré par la Python Software Foundation à but non lucratif. 10 Il existe de nombreux interpréteurs et compilateurs qui implémentent le langage Python: o CPython : Classic Python, codé en C, implémentation portable sur différents systèmes o Jython : ciblé pour la JVM (utilise le bytecode de JAVA) o IronPython : Python.NET, écrit en C#, utilise le MSIL (MicroSoft Intermediate Language) o Stackless Python : élimine l’utilisation de la pile du langage C (permet de récurser tant que l’on veut) o Pypy : projet de recherche européen d’un interpréteur Python écrit en Python. 11 9. Python comparé à Java et C++ Le tableau suivant nous donne une comparaison entre Python et Java et entre Python et C++. Tableau 1. Comparaison entre Python et Java et entre Python et C++. 12 Comme en Java, les variables de type primitif (bool, int, float) sont passées par copie, mais les types plus complexes, contrairement au C++, sont passés par référence. Cela signifie que lorsque nous passons un objet à une fonction, en Python, nous ne faisons pas une copie de l'objet, nous définissons simplement un autre nom pour le référencement l'objet dans la fonction. 10. Conclusion Comme tout langage, Python permet de manipuler des données grâce à un vocabulaire de mots réservés et grâce à des types de données ainsi que l’approximation des ensembles de définition utilisés en mathématique. 13 Vous pouvez trouver de nombreux tutoriels, la documentation officielle et les références de bibliothèques du langage sur le site officiel de Python https://www.python.org. Les chapitre suivants sont consacré à présenter les règles de construction des identificateurs, les types de données simples ainsi que les types chaîne de caractères. Les chapitres s’étendent aussi sur les notions de variable, de référence d’objet et d’affectation. 14