Perl

De la Viquipèdia, l'enciclopèdia lliure.
Saltar a la navegació Saltar a la cerca
Nota de desambiguació.svg Desambiguació : si busqueu altres significats, vegeu Perl (desambiguació) .
Perl
llenguatge de programació
Autor Larry Wall
Data d’origen 1987
Última versió 5.34.0 (20 de maig de 2021)
Ús propòsit general
Paradigmes multi-paradigma: funcional , imperatiu , orientat a objectes , reflexiu , procedimental
Escrivint dinàmic
Extensions comunes .pl .pm .t
Influenciat per C ++ , C , sed , Awk , BASIC , Lisp i shell Unix
Va influir Perl 6 , PHP
Implementació de referència
Implementació intèrpret
Sistema operatiu Multiplataforma
Llicència Llicència pública general o llicència artística de GNU [1]
Lloc web www.perl.org/ i dev.perl.org/perl5/
Codi i execució d'un programa de demostració senzill (anomenat " Hello world ") escrit en idioma Perl

Perl és un llenguatge de programació d'alt nivell , dinàmic, procedimental i interpretat creat el 1987 per Larry Wall . Perl té un conjunt únic de funcions heretades de C , shell d’escriptura Unix ( sh ), Awk , sed i en diversos graus de molts altres llenguatges de programació, inclosos alguns llenguatges funcionals.

Descripció

Encara que conegut com a llenguatge de desenvolupament CGI , Perl es va crear originalment com a ajut per als enginyers de sistemes , com a llenguatge de manipulació de text i fitxers. De fet, també es diu P PRÀCTICA I Xtraction i nforme L anguage [2] , però aquest és un acrònim inversa . Per tant, segons la pròpia documentació de Perl, mai no l’hauríeu de referir com a "PERL", sinó com a "Perl" o "perl", depenent de si voleu dir l'idioma com a tal o una implementació específica respectivament [3] .

Ha evolucionat al llarg del temps, també gràcies a un potent sistema de mòduls, en un llenguatge més general, que inclou processament d’imatges, consulta de bases de dades, processos de comunicació de xarxa i es pot utilitzar en totes aquelles àrees en què no es requereixi estrictament el rendiment d’un idioma. compilat a un nivell inferior, oferint a més temps de desenvolupament molt més ràpids. Per tant, també s’utilitza per prototipar programes que s’implementaran en altres idiomes.

La llengua havia de ser pràctica; mai no es va voler fer compacte, elegant ni mínim, de fet el seu lema es resumeix en les sigles TMTOWTDI (Hi ha més d'una manera de fer-ho), que en italià significa molt indicativament "hi ha més d'una manera de fer-ho ". [4] Larry Wall va dir que l'objectiu de Perl és "fer possible les coses fàcils, fàcils i difícils" (" Facilitar les coses fàcils i les coses difícils" ). [5]

Perl suporta tant de procediment com a objectes paradigmes orientats, té potent processament de textos, funcions, i està equipada amb una de les majors col·leccions de mòduls produïts per la seva gran comunitat d'usuaris.

Característiques

Si a primera vista Perl sembla derivat en gran part de C, de fet ha rebut aquesta similitud mediada pels llenguatges d’escriptura de shell. Perl és un llenguatge procedimental sense tipus amb variables, expressions, assignacions, blocs delimitats, estructures de control i subrutines. Aquesta última es pot entendre com a funcions i Perl té nombroses qualitats mediades per llenguatges funcionals.

Les variables tenen un prefix ($ per a variables escalars, @ per a matriu ,% per a hash) anomenat segell i si això ha determinat en part la riquesa sintàctica de Perl, permet la interpolació de variables en cadenes. Igual que els shell Unix, Perl inclou moltes funcions estàndard per a tasques habituals, com ara ordenar i accedir al sistema operatiu. (En realitat només 279 en el nucli principal de perl, contra més de 3000 en PHP ).

Perl va prendre vectors associatius (coneguts com a 'hash') de expressions awk i regulars de sed. Això simplifica i facilita enormement l’anàlisi i el processament de tasques de text i dades.

A més, hi ha la possibilitat d'integrar el codi escrit en C en un programa Perl, així com viceversa (afegir o reescriure parts en C / C ++ en aplicacions o paquets Perl o inserir un Perl incrustat en programes C). De fet, amb els mòduls Inline :: hi ha diversos idiomes en què es poden definir les funcions d'una font Perl.

Perl es considera generalment com un llenguatge interpretat , és a dir, que per executar-lo s’interpreta en el moment de l’execució. En realitat, el primer que fa l'intèrpret és transformar el codi font en bytecode , una mica com Java; al bytecode crea un gràfic intermedi sobre el qual aplica optimitzacions, i és aquest gràfic a interpretar. Aquest enfocament permet limitar la lentitud pròpia dels llenguatges interpretats. La versió de Perl 6 [6] , en desenvolupament durant alguns anys, divideix l'executor del bytecode (o màquina virtual) del llenguatge de manera que permeti el seu ús també per compiladors d'altres idiomes, inclosos Tcl , Python , Java , etc.

La màquina virtual resultant serà una nova base per al desenvolupament d'idiomes lliures i permetrà nivells molt alts d'optimització i independència del desenvolupament dels idiomes superiors. Tot i que Perl 6 encara no s'ha publicat, algunes idees es filtren a la versió estable de Perl 5.8 i moltes més tindran una coincidència a Perl 5.10. A Haskell s’ha desenvolupat un prototip de Perl 6, anomenat Pugs, i s’està produint una interessant fecundació mútua entre les dues comunitats (Perl i Haskell).

Una vegada més, s'ha destacat com Perl és un llenguatge "sociable", que per tant tendeix a interactuar amb altres llenguatges i entorns de desenvolupament, ja siguin: dialectes shell, altres llenguatges interpretats, llenguatges especialitzats (com SQL), o els idiomes compilats més comuns. Aquesta és la raó per la qual Perl té èxit en la integració de diferents sistemes.

Perl va néixer en un entorn Unix i es va distribuir simultàniament amb dues llicències liberals, la GPL i la Artistic License , també està disponible per als sistemes operatius Microsoft Windows i MacOS abans de la versió Mac OS X (que pertany a la família Unix). La implementació més popular per a Windows la distribueix una empresa, ActiveState, que per una banda ofereix mòduls específics per al sistema operatiu Windows amb llicència gratuïta, per altra banda ven entorns de desenvolupament integrats, tant per Perl com per a altres idiomes. font com Python i Tcl .

Tot i que Perl va ser una de les grans innovacions en el camp de la programació, el criteri que la comunitat de programació fa sobre aquest tema és variat:

  • per una banda es jutja negativament pel fet que facilita l’escriptura de programes difícils de llegir i, per tant, en complica el manteniment (fins al punt que el nom de la llengua s’ha reinterpretat com a Lister de patologies eclèctiques patològicament );
  • d'altra banda, s'aprecia per la facilitat d'escriure programes potents però senzills, per la llibertat semàntica que deixa al programador fins al punt que "no hi ha una manera única de fer les coses" és un dels idiomes associats a Perl.

Wall, que de formació és lingüista, considera aquesta llibertat semàntica una virtut, ja que és més semblant al llenguatge humà. Un altre aspecte positiu que atrau els programadors és la gran disponibilitat de mòduls distribuïts amb llicències de codi obert, gairebé sempre iguals que Perl. Els mòduls solen estar ben documentats, ja que el propi idioma ofereix al Pod, una manera d’incloure la documentació dins del codi, garantint així que la documentació s’adjunta amb el mòdul. La comunitat ha creat un lloc concret, anomenat CPAN , que organitza els mòduls considerats especialment vàlids per tema. Els mòduls en si no s’emmagatzemen en aquest lloc, sinó que romanen als llocs escollits pels seus autors. Finalment, com a llenguatge interpretat i, per tant, sempre distribuït amb un codi font visible, afavoreix la pràctica liberal.

Altres característiques importants de Perl són:

  • variables predeterminades que es defineixen per a moltes operacions i funcions integrades de perl
  • la sensibilitat del context a les tasques, on Perl sap què ha de retornar en funció del valor esquerre
  • expressions regulars , que permeten la cerca i la substitució de cadenes de text descrites per caràcters especials
  • tancaments
  • la possibilitat d’aplicar diferents paradigmes de programació, com ara funcionals o orientats a objectes.

Algunes característiques de Perl, inclosa la sintaxi, permeten una síntesi rarament possible amb altres llenguatges i impossible amb llenguatges com Java i, per tant, les fonts poden tenir un significat molt dens, fins a tal punt que resulten críptiques per a aquells que no ho fan. conèixer els rudiments. D’altra banda, a Internet hi ha tanta documentació sobre Perl que és possible apropar-se ràpidament a la llengua i amb textos de referència adequats iniciar el camí de l’aprenentatge.

El llenguatge i l’intèrpret són desenvolupats per un grup d’uns cent desenvolupadors, dirigits per Wall, que pren les decisions finals sobre què incloure al codi. Els desenvolupadors van crear l'Institut Perl per facilitar el desenvolupament de Perl i millorar la seva visibilitat i organitzar conferències. Wall mateix treballa per a O'Reilly, una editorial que dóna suport activament al moviment de codi obert.

Perl forma part de les eines estàndard dels sistemes operatius Unix. La seva actualització es pot fer tant des d'Internet com mitjançant les distribucions de sistemes operatius lliures, com GNU / Linux , BSD , etc. Les versions de Windows també es poden descarregar des d' Internet . Alguns manuals de Perl inclouen un CD-Rom que inclou versions per a diferents sistemes operatius i tots els mòduls inclosos al CPAN.

La comunitat Perl sovint és atacada per l'absència d'un IDE, com ara els presents a Java, que facilita l'accés del llenguatge als novells. En realitat, la riquesa expressiva de Perl dificulta la creació d’un IDE que posi de manifest els errors de construcció de les declaracions i, atès els nombrosos valors predeterminats de les funcions bàsiques, seria extremadament difícil entendre automàticament el que el programador vol aconseguir, on hi ha un error o potser no. No obstant això, Eclipse conté una extensió per Perl i potser se seguiran altres editors de codi.

Mostra de programes

Llegiu l'entrada estàndard en format CSV i imprimiu els 2 camps inicials

 #! / usr / bin / perl
# Amb els camps podeu fer el que vulgueu
while ( <> ) {
    el meu @ camp = dividit /, / ;
    imprimeix "$ camp [0], $ camp [1] \ n" ;
}

En aquest exemple, hi ha una sèrie de valors predeterminats que no es poden entendre sense una explicació:

  • <> És un sinònim de <argv> que al seu torn és un iterador en un gestor de fitxer especial que fa referència als arxius especificats en la línia d'ordres, si és el cas, o en cas contrari a l'entrada estàndard i indica l'acció de l'extracció d'una línia a partir d'aquest gestor d'arxiu. Aquesta línia, sense més instruccions, s'insereix a $ _ que és una variable predefinida que actuen per defecte molts operadors i funcions.
  • split pren un patró (expressió regular) i, tret que s'especifiqui el contrari, actua sobre la variable $ _, trencant-lo en els punts on coincideix el patró i retornant les peces restants.

El mateix programa es podria reescriure en la forma següent:

 #! / usr / bin / perl
while ( <> ) {
   el meu ( $ field1 , $ field2 ) = split /, / ;
   imprimeix "$ field1, $ field2 \ n" ;
}

En aquest segon cas, observem com és possible escriure el mateix programa d’una altra manera. Hi ha moltes altres escriptures d’aquest mateix programa curt.

Nota: la meva declaració no és estrictament necessària tret que utilitzeu el mòdul pragmàtic estricte , però aquest últim és recomanat per la gran majoria de programadors de perl, juntament amb advertiments , ja que restringeix la llibertat del programador de manera que eviti errors. pràctiques de programació comunes, forçant pràctiques de programació més disciplinades que s’imposen per defecte en altres idiomes.

Nota

  1. ^ Llicències de Perl , a dev.perl.org . Consultat el 18 de juny de 2012.
  2. ^ (EN) Què és Perl? - Definició de Techopedia , a Techopedia.com . Consultat el 26 de setembre de 2017 .
  3. ^ (EN) perlfaq1 - perldoc.perl.org , a perldoc.perl.org. Consultat el 26 de setembre de 2017 .
  4. ^ (EN) Urban Dictionary: TMTOWTDI , a Urban Dictionary. Consultat el 26 de setembre de 2017 .
  5. ^ (EN) Larry Wall, Tom Christiansen i Randal L. Schwartz, Programming Perl, 2a ed., Sebastopol, O'Reilly, 1999, ISBN 9781565924628 , OCLC 43840699 .
  6. ^ Perl 6 , a perl6.org . Consultat a l'agost de l'6 de 2015.

Bibliografia

Articles relacionats

Altres projectes

Enllaços externs

Control de l'autoritat LCCN (EN) sh95010633 · GND (DE) 4307836-9 · BNF (FR) cb124906490 (data) · BNE (ES) XX542605 (data)
Informàtica Portal de TI : accés a les entrades de Wikipedia tractar amb ella