Le langage de programmation Python

Pourquoi ce nom ?

Guido van Rossum, son créateur, est un fan de la troupe d’humoristes britanniques, les Monty Python (Graham Chapman, John Cleese, Eric Idle, Michael Palin, Terry Jones et Terry Gilliam)

Un ordinateur communique avec vous à travers ses périphériques (l’écran en particulier) ou avec lui-même à l’aide d’un langage. Ce langage machine est dit binaire et est constitué comme son nom l’indique de deux nombres 1 et 0.

Langage humain

Bonjour, je m’appelle Fabrice Dumont.

Traduction en langage machine

01000010011011110110111001101010011011110111010101110010001011000010000001101010011001010010000001101101001001110110000101110000011100000110010101101100011011000110010100100000010001100110000101100010011100100110100101100011011001010010000001000100011101010110110101101111011011100111010000101110

Les opérations qu’il effectue avec ces deux nombres sont en fait l’addition, la soustraction, la multiplication, la division entière, la division flottante. Ces 5 opérations suffisent à faire fonctionner tous les logiciels, du plus basique au jeu vidéo très réaliste le plus sophistiqué !

Tous les logiciels fonctionnent de la même façon :

  • une suite d’instructions écrites en langage machine compose le programme.
  • lors de l’exécution de ce programme, les instructions décrivent à l’ordinateur ce qu’il doit faire

Une instruction demande par exemple au programme de traitement de texte de se fermer après avoir cliqué sur le bouton en forme de croix se trouvant en haut à droite de votre fenêtre. Cette action n’entraîne pas seulement la fermeture du programme mais l’apparition d’une fenêtre demandant si vous voulez enregistrer votre document. Dans cette fenêtre, il y a des boutons permettant de choisir une action . Si vous cliquez sur le bouton “enregistrer”, une autre fenêtre s’ouvre et vous invite à choisir un emplacement et un nom… Toutes ces instructions sont traduites en langage machine, une suite de 1 et de 0 ! Certaines instructions sont filles ou parentes d’une autre …

Il y a plusieurs aspects en jeu dans ce que je viens de décrire :

  • l’instruction “fermer le programme”
  • l’événement “fermer le programme”
  • l’interface graphique bouton liée à cet événement
  • le placement de ce bouton dans l’interface générale du logiciel
  • l’instruction fille de la première instruction : apparition d’une fenêtre demandant si vous voulez enregistrer votre document
  • l’événement “fermer le programme –> fenêtre choix”
  • l’interface graphique fenêtre liée à cet événement
  • le placement de cette fenêtre dans l’interface générale du logiciel
  • les instructions petites-filles “enregister”,”ne pas enregistrer”,”annuler”
  • les 3 évènements
  • les 3 interfaces graphiques boutons liées à ces événements
  • le placement de ces boutons dans l’interface générale de la fenêtre de choix

Si vous deviez communiquer tout cela en une suite de 1 et de 0 avec votre ordinateur, ce serait assez fastidieux ! On a donc inventé des langages de programmation, intermédiaires plus compréhensibles entre le langage humain et le langage machine ! Pourquoi intermédiaires ? Du fait que le langage humain est trop nuancé et que l’ordinateur ou plus précisément son processeur ne l’est pas du tout ! Il a donc fallu plancher sur des langages permettant de programmer des application compréhensibles et utilisables en toute transparence par les deux, l’homme et la machine ! D’un côté, un joli bouton en forme de croix permettant de fermer le programme et de l’autre une suite de 1 et de 0 permettant à l’ordinateur d’exécuter cette instruction.

Exemple de processus en passant par le langage de programmation Python :

  1. je veux écrire “Hello” avec Python (langage humain)
  2. print “Hello” (langage de programmation Python)
  3. suite binaire de 1 et de 0 (langage machine)
  4. calcul du processeur (en binaire)
  5. traduction de Python en langage humain
  6. renvoi à travers l’écran et le logiciel : Hello

Ces langages de programmation utilisent ce qu’on appelle des algorithmes. Un algorithme est une suite finie et non ambiguë d’opérations ou d’instructions permettant de résoudre un problème.

Lorsque ces instructions non ambiguës sont écrites les unes à la suite des autres, testées et répondant à la demande et au cahier de charges de l’application, elles sont compilées c-à-d traduites en langage machine. Un fichier exécutable est crée afin de l’installer sur votre système d’exploitation.

Le code source (vos instructions écrites en langage de programmation) devient théoriquement inaccessible puisque traduit en 0 et en 1… Sauf pour les as du reverse engineering informatique…

Un compilateur est un programme informatique qui transforme un code source écrit dans un langage de programmation (le langage source) en un autre langage informatique (le langage cible).
Pour qu’il puisse être exploité par la machine, le compilateur traduit le code source, écrit dans un langage de haut niveau d’abstraction, facilement compréhensible par l’humain, vers un langage de plus bas niveau, un langage d’assemblage ou langage machine. Dans le cas de langage semi-compilé (ou semi-interprété), le code source est traduit en un langage intermédiaire, sous forme binaire (code objet ou bytecode), avant d’être lui-même interprété ou compilé.
Wikipédia

Il existe deux grandes familles de langages de programmation :

  • ceux de bas niveau, se rapprochant plus du langage machine
  • ceux de haut niveau, se rapprochant plus du langage humain

Python

Python est un langage de haut niveau !!!! :-)

Il permet notamment de créer des logiciels, des site web, de gérer des flux énormes d’informations, d’administrer des réseaux, … Il est parfois le langage principal des applications ou s’intègre dans d’autres langages comme le java.

Il est multiplateforme, s’exécute donc sous linux, mac et windows.

Il est soit compilé pour que ses applications soient installées sur les systèmes d’exploitation ou interprété si Python est au préalable installé sur l’ordinateur. Lors de l’interprétation de vos programmes ou scripts écrits, Python précompile ou transforme vos instructions en bytecode, intermédiaire entre le code source et le langage machine.

Ses cartes de visite :

  • le moteur de recherche Google
  • Youtube
  • Dropbox
  • Industrial Light & Magic
  • NASA
  • CCP Games, les créateurs du jeu vidéo EVE Online
  • FreeCAD, logiciel de CAO 3D
  • Blender, logiciel de modélisation 3D
  • Inkscape, logiciel de dessin vectoriel
  • LibreOffice, une suite bureautique
  • Portage, le gestionnaire de paquets du système d’exploitation Gentoo
  • ParaView, logiciel de visualisation de données numériques
  • XBMC, un lecteur multimédia

Ses caractéristiques techniques :

  • langage de programmation orienté objet
  • langage multi-paradigme
  • langage multiplateformes
  • favorise la programmation impérative structurée, fonctionnelle et orientée objet
  • doté d’un typage dynamique fort
  • doté d’une gestion automatique de la mémoire par ramasse-miettes
  • doté d’un système de gestion d’exceptions
  • similaire à Perl, Ruby, Scheme, Smalltalk et Tcl
  • placé sous une licence libre proche de la licence BSD
  • fonctionne sur la plupart des plates-formes informatiques, des supercalculateurs aux ordinateurs centraux, de Windows à Unix en passant par GNU/Linux, Mac OS, ou encore Android, iOS
  • s’intègre avec Java ou encore .NET

Originally published at lecoinduprogrammeur.wordpress.com on September 23, 2014.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.