| Liste Articles: [0-A] [A-C] [C-F] [F-J] [J-M] [M-P] [P-S] [S-Z] | Liste Catégories | Une page au hasard | Pages liées | ||||||
![]() |
| Cet article fait partie de la série Langages de programmation |
| Langages orientés objet |
| Ada 95 - C++ - C# Common lisp object system Delphi - Eiffel - Java - Nice |
| Langages impératifs |
| APL - ASP Assembleur BASIC - C - Pascal Perl - PHP - Python |
| Langages fonctionnels |
| ML/OCaml
- Lisp/Common Lisp Forth - Logo - Scheme |
| Langages déclaratifs |
| Clips - Prolog |
| Voir aussi |
| Conception - Codage Tests - Optimisations |
Perl (Practical Extraction and Report Language ou langage pratique d'extraction et de génération de rapports ; ce nom est un rétro-acronyme) est un langage de programmation créé par Larry Wall en 1987 et reprenant des fonctionnalités du langage C et des langages de scripts sed, awk et shell (sh). On écrit généralement le nom de ce langage avec un P majuscule pour désigner le langage et un p minuscule en parlant de l'interpréteur. « Seul perl analyse correctement Perl. »
| Sommaire |
Perl est né du besoin de disposer d'un langage optimisé pour l'extraction d'informations de fichiers textes et la génération de rapports. Voici quelques-unes des devises qui lui sont couramment associées :
Sa souplesse autorise l'emploi de plusieurs modèles de programmation : programmation procédurale, programmation fonctionnelle et POO.
Perl vise la commodité pour le programmeur (existence de raccourcis qui le font qualifier de langage "diagonal") plutôt qu'un souhait esthétique d'architecture stricte (langages « orthogonaux »). Perl est considéré surtout comme un langage de script et a été qualifié de "ciment assurant la cohésion du web", étant un des langages CGI les plus populaires. Compte-tenu du rôle qu'a eu Perl dans le développement de la "nouvelle économie", une boutade prêtait à la mairie de New York l'intention de rebaptiser Wall Street du nom de son inventeur, ce qui aurait au moins le mérite de ne pas entraîner du tout de frais pour le contribuable!
Perl a un statut de logiciel libre, distribué sous license artistique et GPL. Perl est porté sur la plupart des systèmes d'exploitation mais excelle particulièrement en environnement POSIX (Cygwin sous Microsoft Windows, Linux, etc.) ; il devient populaire aussi sous Microsoft Windows sans Cygwin grâce à la facilité d'installation de la distribution gratuite ActivePerl (dont la version 5.8 permet l'usage de l'interface graphique) et d'environnements de développement gratuits comme SciTE'.
Les programmes Perl sont intégralement portables entre Linux et Windows malgré les désignations de fichiers différentes de ces systèmes (Perl remplace tout seul si besoin les « / » par des « \ »). Un exemple du champ d'action de Perl est son utilisation comme script CGI pour faire tourner Wikipedia jusqu'en janvier 2002. Il constitue en effet un bon langage de prototypage.
Perl permet l'usage du moteur d'interface graphiques Tk pour effectuer des entrées-sorties conformes à l'état de l'art. On désigne parfois l'ensemble sous le nom générique Perl/Tk. L'extension Tk est intégrée à ActivePerl depuis la version 5.8 du langage.
Plus de 15 millions de lignes de modules Perl d'utilisation libre, allant des mathématiques avancées aux connexions aux bases de données, en passant par les réseaux, la simulation d'un calculateur quantique et bien davantage, peuvent être téléchargées depuis un réseau de sites appelé CPAN : Comprehensive Perl Archive Network.
Bien que Perl profite de la plupart des facilités d'un langage interprété, à proprement parler il n'interprète et n'exécute pas (aucun interpréteur ne le fait, d'ailleurs) le code source une ligne à la fois. Perl compile d'abord le programme entier dans un bytecode intermédiaire (assez dans l'esprit du code objet Java), l'optimisant au passage, et exécute alors ce bytecode. Il est possible de compiler un programme Perl en bytecode pour s'épargner les phases de compilation lors d'exécutions ultérieures, bien que l'"interpréteur" reste requis pour exécuter ce code.
Les phases de traduction des noms de variables en adresses, traduction de libellés d'opération en code binaire et de traduction en binaire des constantes exprimées en caractères sont d'ailleurs bien connues depuis le milieu du XXe siècle, puisque ce sont très précisément les trois fonctions principales d'un assembleur.
Perl 6 est en cours de développement. Il tournera dans la machine virtuelle Parrot. Un canular organisé par l'équipe de direction de l'éditeur O'Reilly avec la complicité de Larry Wall et Guido van Rossum (avec annonce d'un livre imaginaire dont l'annonce donnait le fac-simile) a annoncé à une époque la fusion en un langage unique nommé aussi Parrot de Perl 6 et de Python, à la grande panique de certains aficionados des deux langages.
Certaines personnes affirment avec humour que Perl veut dire 'Pathologically Eclectic Rubbish Lister' (collectionneur pathologique de déchets variés) à cause de l'utilisation intensive de caractères spéciaux chargés de sens dans la syntaxe du langage, comme on peut le voir dans cet exemple de programme affichant une salutation:
# Un exemple de programme en Perl $message = "A l'endroit : 'camel'.\n"; print $message; $message =~ s/endroit/envers/; $message =~ s/'(\w)(\w)(\w)(\w)(\w)'/'$5$4$3$2$1'/; print $message; exit 0
et sa sortie à l'écran :
À l'endroit : 'camel'. À l'envers : 'lemac'.
Les troisième et quatrième lignes de cet exemple montrent l'usage d'expressions régulières.
Ces caractères spéciaux sont liés à la puissance de traitement de Perl :
Perl a une base d'utilisateurs vaste et diversifiée. Pour plusieurs types d'utilisateurs du langage, c'est d'ailleurs leur seul point commun. Les administrateurs système en sont friands, les développeurs en apprécient la concision et la puissance, des linguistes et des biologistes - habituellement peu enclins à se pencher sur le code - l'utilisent comme langage de référence dans leurs applications métiers. Perl est particulièrement apprécié en bioinformatique où les programmes font l'objet de remaniements constants.
La base CPAN regroupe et met gratuitement à la disposition des utilisateurs de Perl du monde entier 15,4 millions de ligne de code (juillet 2004) sous forme de modules Perl et de synopsis montrant comment les mettre en œuvre. L'effet boule de neige est indiscutable. La synergie aussi.
Rejoignant le langage C sur ce point, les compétitions de code impénétrable sont aussi une composante majeure de la culture Perl. Les scripts JAPH (Just Another Perl Hacker, signifiant Rien d'autre qu'un autre hacker Perl) sont aussi typiques (voir [1] ), tout comme les tournois de Golf (voir http://perlgolf.sourceforge.net/ ) où il s'agit de réaliser une tâche avec un programme le plus court possible.
Il a été écrit que PHP ( un autre langage de script ) veut dire People Hate Perl.
"Perl part du principe que l'on a des noms et que l'on y associe des descriptions. si on a besoin d'un nom, on l'ajoute et puis voila : c'est réglé on n'en parle plus. Et pour la grammaire, c'est pareil.
Tout le probleme pour l'informaticien est que Perl aborde la programmation comme un enfant aborderait le langage :
Quand l'enfant montre un ballon, on ne lui dit pas : "ceci est une boule creuse dont l'écorce est composée de derivés du petrole raffinés par les industries pétrochimiques et moulé par une usine en Chine où le gouvernement surveille l'Internet, et qu'il a une masse 1kg, et sur la Lune, son poids est moindre que sur Terre en raison de la loi de la gravitation découverte par Newton qui à donné son nom à l'unité de poids en question.
Voila ce que l'on apprend aux informaticiens, voila ce que l'on demande à un langage de programmation : on décrit uniquement - ou au moins majoritairement.
Voilà ce que Perl évite à ses utilisateurs."


