Perl a java a Thready
Honza Pazdziora
adelton na informatics.muni.cz
Čtvrtek Září 2 15:44:31 MEST 1999
>
> > - thready? Existuje nejaka stabilni implmenetace?
>
> No pokial viem v aktualnej stabilnej verzii 5.005_03 je uz
> fungujuca podpora threadov. Niekde tusim na per.com alebo LinuxJournale
> som cital ze najblizsia verzia (5.6) to bude mat vylepsene. Osobne som
> neskusal, prakticke skusenosti zatial nemam.
use Thread;
Je asi rozumne pouzit nekterou z verzi 5.005_5*. Bezi to nad
OS-specific thread knihovnami, z cehoz plynou pripadna omezeni.
Osobne perl prelozeny s thready v produkcnim prostredi nebezim,
protoze tam je o jeden pointer navic, ale zpravy od lidi treba
z mod_perl konference rikaji, ze je to stabilni a i pro produkcni
pouziti rozumne.
> > - preklad do Java p-kodu?
>
> Co ma spolocne Perl s Javou ? :-)
Ze se kompiluji. V principu by mohlo byt jedno, jestli to pisete
v Perlu nebo v Jave, dulezite je, jestli tomu bude rozumen JVM.
Tohle IMHO neni. JPL (Java Perl Lingo) byl jakysi pokus, ale bylo to
v podstate nepouzitelne. Nad stavajicimi Perlovymi prekladaci (B)
existuje
B::JVM::Jasmin - Jasmin backend for the Perl compiler.
SYNOPSIS
perl -MO=JVM::Jasmin,CLASSNAME perl_program.pl
jasmin CLASSNAME.asm
java CLASSNAME
DESCRIPTION
This module is a crude JVM backend for the Perl compiler. It aspires
to be a ``proof of concept,'' but I think it does not even achieve
that. It's close, though, and I think it might encourage people to
explore this a little further.
> > - preklad do "nejakeho" (Perl) p-kodu
> >
> > U te posledni veci vim, ze Perl nejaky p-kod
> > vytvari, ale lze vytvorit soubor, ktery bude
> > obsahovat program v Perlu v "Perl p-kodu"
> > a usetri tim clovek neco? (Pripadne
V principu je mozno na to pouzit dump/undump -- tim ziskam obraz toho
programu i se zkompilovanym p-kodem.
Jinak
B::Bytecode - Perl compiler's bytecode backend
SYNOPSIS
perl -MO=Bytecode[,OPTIONS] foo.pl
DESCRIPTION
This compiler backend takes Perl source and generates a
platform-independent bytecode encapsulating code to load the
internal structures perl uses to run your program. When the
generated bytecode is loaded in, your program is ready to
run, reducing the time which perl would have taken to load
and parse your program into its internal semi-compiled form.
> > Take jsem si jiz delsi dobu visimal, ze je
> > neco jako Perl kompilator. Pry ale
> > rychlost vysledneho programu
> > je porovnatelna s interpretovanym programem.
> > Mate nekdo zkusenosti?
>
> Ano tymto som sa za ostatnych par tyzdnov intenzivne zaoberal. Aj p-codom
> aj Perl kompilatorom. V pripade p-kodu ziskas len to, ze nebude potrebne
> dany program do toho p-kodu kompilovat. Cize start programu bude
> rychlejsi. V pripade skompilovaneho kodu to je samozrejme tak rychle ako
> hocijaky iny program (teda skoro). Tato feature je ale zatial "highly
> experimental" a _rozhodne_ nie je pouzitelna. Musel som poeditovat par
> programov, dokonca na windoze sme museli skompilovat standard perl, lebo s
> ActiveState perlom to neslo. A su tam ine drobnosti ktore potesia napr.
> ked chce clovek zavolat podprogram tak to urobi pekny core.
> Neviem ako to vyzera v develpment verzii, ja naivne cakam na 5.6ku, ktora
> ma byt "soon" a potom uvidim.
5.6 je dostupna (beta) jako 5.005_5* a je dost lidi, kteri tohle
pouzivaji jako stabilni platformu.
S temi prekladaci je u interpretovanych jazyku problem jaksi
v principu, protoze vzdycky muzu udelat
eval '$a += 8';
takze ten vysledny prelozeny program musi vzdycky (skoro ;-) obsahovat
i ten nativni perl interpret a byt na tohle pripraveny.
Jinak samozrejme, ani na kompilovanem (do C) programu neni nic moc co
zrychlit, protoze pokud nejaka konstrukce v Perlu vede na nejakou v C
v interpretovanem provedeni, povede na ni i v tom kompilovanem.
Samozrejme usetrim neco na te interpretacni rezii, ale ty funkce,
ktere se pouziji napriklad na regularni vyrazy jsou stejne v C a tudiz
tam ke zrychleni nedojde.
------------------------------------------------------------------------
Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
.project: Perl, DBI, Oracle, MySQL, auth. WWW servers, MTB, Spain, ...
------------------------------------------------------------------------
Další informace o konferenci Perl