Table des matières
Ceci est une ancienne révision du document !
~~REVEAL transition=convex&controls=1&show_progress_bar=1&build_all_lists=1&open_in_new_window=1~~
Programmer en Python
Généralités
- Qu'est-ce qu'un langage de programmation ?
- Compilation ou interprétation, ou… ?
Rôle des langages de programmation
- Décrire des instructions dans un langage compréhensible par un être humain, mais transformable en d'autres instructions compréhensibles par l'ordinateur (langage machine)
- Automatiser le traitement de l'information;
- Effectuer des calculs, des simulations;
- Traiter l'information en temps réel;
- Fournir un interface à l'utilisateur;
Évolution des langages
- L’assembleur (à partir des années 50’s)
- Mnémoniques équivalentes aux instructions machines, donc fonction du processeur utilisé
- Instructions de bas niveaux (appel d’une variable en mémoire, opération arithmétique entre 2 opérandes,…)
- Fortran, Cobol, Pascal, C, Basic,… (années 60s et 70s)
- Indépendants de l’ordinateur utilisé
- Proche d’un langage courant, description procédurale
- Les langages à objets (années 80s et 90s)
- Briques logicielles indépendantes et autonomes
- Réutilisations aisées, sans devoir les approfondir
- Java, C++, Python, perl, Ruby. . .sont les plus connus
- Des langages spécialisés (PHP, SQL,…)
Compilation et compilateur
Code source | ||||||||||||||||||||||||||
Compilation | ||||||||||||||||||||||||||
Code objet | ||||||||||||||||||||||||||
Exécution | ||||||||||||||||||||||||||
Résultat | ||||||||||||||||||||||||||
- Etape de traduction du code source en langage machine
- Liaison éventuelle du code avec des bibliothèques existantes de code compilé
- Exécution ultérieure du code machine (sur un ordinateur ne disposant pas du compilateur par exemple)
- Le compilateur peut optimiser le code (passes multiples)
Interprétation et interpréteur
Code source | ||||||||||||||||||||||||||
Interprétation | ||||||||||||||||||||||||||
Résultat | ||||||||||||||||||||||||||
- Traduction dynamique du code source et exécution immédiate en répétant sans cesse :
- lecture et analyse d'une instruction
- exécution de l'instruction (si elle est valide)
- Le code est souvent moins optimisé, donc plus lent
- Il est nécessaire de disposer de l'interpréteur sur l'ordinateur
- On peut créer dynamiquement du code à interpréter pendant l'exécution
- On peut éviter la phase lente de compilation
Python / Langages à Bytecodes
Code source Python (.py | ||||||||||||||||||||||||||
Compilation | ||||||||||||||||||||||||||
Python Bytecode (.pyc) | ||||||||||||||||||||||||||
Interprétation | ||||||||||||||||||||||||||
Résultat | ||||||||||||||||||||||||||
- Pour Python (et d'autres langages), c’est un peu plus compliqué…
- Le programme est compilé vers un pseudo-code indépendant de l’ordinateur
- Le Bytecode est interprété par la suite
- Avantages :
- Facilité de développement (cycle écriture-exécution rapide, “briques” logicielles)
- Portabilité (même programme pour des ordinateurs et OS différents)
Premier aperçu de Python
- Avantages généraux
- Avantages techniques
- Avantages pour l'apprentissage
- Avantages pour le scientifique, le chimiste
- Les premiers pas avec Python
Avantages généraux
- langage de haut niveau (orienté objet)
- permet d’écrire des petits programmes ou suites d’instructions (scripts)
- licence libre (et gratuit)
- utilisable pour la programmation occasionnelle par des non-informaticiens
- nombreuses librairies existantes (modules)
- moderne et efficace pour les informaticiens
- excellente lisibilité intrinsèque du code
- bien documenté (aide et manuels en ligne, livres, forums, exemples…)
Avantages techniques
- mode interactif
- non déclaratif
- typage de haut niveau, dynamique et fort
- ramasse-miette intégré
- interfaçable avec d’autres langages (à partir de et vers)
- version de base “piles comprises”
- module mathématique
- accès aux fichiers et répertoires (+ formats de données standards)
- compression, archivage, gestion de bases de données
- fonctions génériques du système d’exploitation
- réseau et communication, protocoles internet (+email, html)
- multimedia (son, image)
- interface graphique (Tkinter)
- outils de documentation et gestion d’erreurs (débogage)
- modules spécifiques Windows, Mac, Linux
- …
Avantages pour l'apprentissage
- Installation aisée
- de la version de base
- de “distributions” étendues (avec des modules complémentaires)
- éditeur inclus (Idle) ou autre (SciTe, Pycharm, Eric,…)
- mode interactif pour les premiers essais
- principes de base identiques à de nombreux langages
- on n’est pas obligé d’utiliser toute la puissance du langage
- cycle d’écriture/essais très rapide
Avantages pour le scientifique, le chimiste
Les premiers pas avec Python
- teaching/progappchim/presentation_principes.1483965245.txt.gz
- Dernière modification : 2017/01/09 13:34
- de villersd