# Programmation - Généralités ## Objectifs Qu'est-ce qu'un __langage de programmation__ ? __Pourquoi a-t-on besoin__ d'un langage de programmation ? Qu'est-ce que __programmer__ ? __Comment__ programme-t-on ? ## Définition > __Langage__ (Selon le Larousse) : Capacité, observée chez tous les humains, d'exprimer leur pensée et de communiquer au moyen d'un système de signes vocaux et éventuellement graphiques. - Le langage est un système permettant la communication entre 2 entités, 2 humains : ```mermaid flowchart LR A[Humain A] --> |Demande|B[Humain B] C[Humain A] --> |Demande|D[Humain B] D --> |Interprète|D E[Humain A] --> |Demande|F[Humain B] F --> |Interprète|F F --> |Répond|E ``` Exemple : ```mermaid flowchart LR A[Passant A] --> |"Quelle heure est-il, s'il vous plait ?"|B[Passant B] C[Passant A] --> |"Quelle heure est-il, s'il vous plait ?"|D[Passant B] D --> |Regarde sa montre|D E[Passant A] --> |"Quelle heure est-il, s'il vous plait ?"|F[Passant B] F --> |Regarde sa montre|F F --> |Répond : 8h35|E ``` - Le langage est propre à une communauté. Un __langage naturel__, ou langage ordinaire, est une langue « normale » parlée par un être humain (Exemple : le Français, l'anglais...) - Le __langage machine__ : directement interprétables par le processeur d'un ordinateur, mais peu lisibles aux yeux d'un humain, - Le __langage de programmation__ : Compréhensible par un humain et aisément traduisible en langage machine. > Un __langage de programmation__ est un langage proche du langage naturel, utilisable par un humain, et exécutable, après traduction par une machine. ___Sans langage de programmation, un humain devrait connaitre et commander la machine en maitrisant son langage, donc écrire des 0 et des 1.___ ```mermaid flowchart LR A[Langage Naturel] --> B[Langage de Programmation] B --> C[Langage Machine] ``` ### Constituants d'un langage > __Vocabulaire__ : Ensemble des mots ou vocables d'une langue Exemples : - heure, quelle, table... - rehue, llequ, betal... > __Grammaire__ (Selon le Larousse) : Ensemble des structures linguistiques propres à telle ou telle langue. Autrement dit, la grammaire indique l'ordre et les règles de structures du vocabulaire Exemples : - Quelle heure est-il ? - Il ? heure est quelle ## Programmer > __Programmer__ (Selon le Larousse) : Établir à l'avance une suite d'opérations ; planifier, déterminer à l'avance le moment et les modalités d'une action. ## ...Mais avant de programmer > Quelles sont les similitudes et différences entre ces 3 activités | Itinéraire Mappy | Recette de cuisine | Montage de meuble IKEA | | :--: | :--: | :--: | | ![Itinéraire Mappy](./assets/mappy.png) | ![Recette de cookie aux pépites de chocolat](./assets/cookie.jpeg) | ![Plan de montage](./assets/ikea.jpeg) | > Depuis quand emploie-t'on le terme algorithme ? Al-Khwarizmi, mathématicien du 9ème siècle. ![Al-Khwarizmi, Source : Wikipedia](./assets/al-khwarizmi.jpeg) > __Algorithme__ (Selon Le Robert) : Ensemble fini des règles opératoires propres à un calcul. Un __algorithme__ est une suite finie d'instructions exprimées en __langage naturel__. Un __programme__ est la traduction d'un algorithme dans un __langage de programmation__. Exemple : - A demande Quelle heure est-il ? - B regarde sa montre - B répond 8h35 Exemple : - A demande Quelle heure est-il ? - B répond 8h35 - B Regarde sa montre