Perl 6 - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

Perl 6
Camelia.svg

Apparu en Spécification : 2001-2010, mise en œuvre partielle par Rakudo Star
Auteur Larry Wall
Développeurs The Perl Foundation
Paradigmes Objet, impératif, fonctionnel, dynamique
Typage Fort, dynamique
Influencé par Perl, Haskell, APL, Ruby, Python, SmallTalk, Self
Implémentations Pugs, Parrot
Système d'exploitation Multi-plate-forme
Site Web http://dev.perl.org/perl6

Perl 6 est une refonte totale du langage de programmation Perl.
Cette refonte garde l'esprit du langage qui laisse une grande liberté au programmeur et lui permet une expression concise.
Perl 6 reste un langage générique et permet toujours de programmer des unilignes mais propose un bien meilleur support pour l'écriture de programmes importants.
Le langage de documentation, Pod, un langage de balisage léger a été amélioré et mieux intégré pour permettre la programmation lettrée. Une première version légère de Perl 6 appelée Rakudo Star a été livrée le 29 Juillet 2010. Le logo de Perl 6 est appelé Camelia. C'est un papillon, on peut lire P sur une aile et 6 sur l'autre.

Perl 6 n'a pas pour objectif premier d'être rétrocompatible avec Perl 5, même s'il est prévu un mode de compatibilité et la possibilité d'appeler les modules des paquetages existants de CPAN.

Le langage permet toujours d'écrire des programmes très concis, notamment avec le support d'hyperopérateurs similaires aux opérateurs de manipulation de tableaux dynamiques du langage APL. C'est un des aspects de la syntaxe concrète qui permet de paralléliser l'exécution de portions de programmes.

Le langage est complexe mais il est toujours possible de programmer dans un sous-ensemble restreint du langage. Il inclut beaucoup de fonctionnalités qui, pour d'autres langages, appartiennent généralement à des bibliothèques logicielles. Ainsi le système d'expressions rationnelles a été entièrement refondu et constitue aussi un moteur d'analyse syntaxique puissant et rapide grâce à un contrôle très fin du retour sur trace.
Il est complètement intégré au système objet.
Le système objet, minimaliste en Perl 5, supporte maintenant le dispatch multiple, les rôles et la réflexion.
La programmation orientée prototype et la programmation orientée objet sont toutes deux possibles car le programmeur peut modifier le comportement par défaut des métaclasses et du mécanisme de dispatch vers les méthodes et multiméthodes. Les rôles sont un système de composition de code similaire aux mixin mais de granularité inférieure à la classe.

Les concepteurs de Perl 6 ont apporté un soin tout particulier à la syntaxe du langage qui avait été notablement alourdie en Perl 5 avec l'ajout du support des références. Les principes directeurs dans la conception du langage sont : le principe de Huffman, la lisibilité, l'extensibilité. Chaque aspect du langage est hautement paramétrable via des constructions lexicales ou syntaxiques appelés adverbes ou modificateurs. Certains opérateurs sont des caractères Unicode mais souvent un alias plus verbeux en ASCII est disponible. L'interopérabilité avec les bibliothèques d'autres langages dynamiques de haut niveau est un but à terme grâce à la mise en œuvre de ces langages par le même moteur (Pugs ou Parrot).

Le typage explicite du contenu d'une variable est optionnel. Le typage des données est donc statique lorsqu'il est explicite ou inferré, dynamique sinon.
Le programmeur dispose donc d'un continuum entre la programmation lâche typique des langages de script et la rectitude et les performances d'un langage à typage statique. Typiquement, un programme évoluera au cours du temps vers un typage plus "serré".

Perl 6 devrait être un langage rapide car, outre le typage statique, le support de la parallélisation, ses implantations supportent la compilation à la volée en code natif.

Page générée en 0.089 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales | Partenaire: HD-Numérique
Version anglaise | Version allemande | Version espagnole | Version portugaise