PythonJérôme Petazzoni Qu'estce que c'est ?Langage de script « évolué »Nombreux types de base : entiers, chaînes, listes, tables d e hachageOrientation objet : classes, héritage, introspectionGestion transparente de la mémoire par référence comptageOn ne manipule pas de pointeurs mais des références (=Java)On peut définir des fonctions anonymes (~lambdacalcul, Caml)Syntaxe concise, claire e t cohérente (je vous jure que si!)(lambda t_debut, octets, t_fin: octets/(t_fin-t_debut))(time.time(), len(urllib.urlopen(myurl).read()), time.time()) Petit historique...● Première version : février 1991● Version 2.0 en 2000● Aujourd'hui : version 2.4● versions embarquées (pour téléphone portable, pour Palm, en Java...)● stackless Python(utilisé pour le moteur du jeu EVE, entre autres) Langage interprété ou compilé ?● Langage interprétécomme BASIC, Caml, PHP, TCL, Perl...● ...mais aussi compilécomme Caml, Java, C, C++...● Machine v irtuelle à bytecodecomme Caml, Java● Génération du bytecode automatique :lorsqu'on exécute toto.py, le fichier toto.pyc est créé à la volée● Machine v irtuelle JIT disponible (psyco) Typage fort ou faible ?● ●Typage fort : C, Java Typage faible : PHP, Perl● ●définition très stricte d es les chaînes sont des entiers et variables, des f onctions... inversement proportionnel● ●généricité : avantage : par h éritage code plus c ompact● ●“super” généricité : inconvénient :bof (void*, Object) ...