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