---- Alphan Bayazit <[EMAIL PROTECTED]> demiş ki: 
> Parrot assembly ile diğer dillerin vmlerini nasıl karşılaştırdınız
> anlamadım.

Ben Parrot Assembly'sini değil, normal bir programlama dilinden çevrildikten 
sonra oluşan bytecode'ların VM'ler tarafından çalıştırılmasını karşılaştırmak 
istemiştim. Şöyle ki,

1. Python betiğini Parrot'ın Python derleyicisi ile ilk önce Parrot 
bytecode'una (.pbc) çeviriyorsunuz.
2. Ardından Python'un kendi derleyicisi ile bir tane de Python bytecode'u 
(.pyc) için örnek oluşturuyorsunuz.
Not: Bytecode'ların oluşturulması esnasında herhangi bir optimizasyon seçeneği 
kullanılmıyor.
3. Sonra her bir bytecode'u kendi VM'i içinde çalıştırıyorsunuz.

Ama velhasıl kelam, şu an için düzgün çalışan bir Parrot için Python 
derleyicisi bulamadım.

Bunun dışında dediğiniz gibi, elbette kodu direk Parrot Assembly'si ile 
yazsaydık dediğiniz gibi C-Assembly karşılaştırması olurdu.

> Muhtemelen daha hızlıdır ama derleme zamanını göreceli olarak
> ortadan kaldırsanız bile derleyicilerin verimsizliğini hesaba katmanız
> gerekir.

Hiçbir Python2Parrot derleyicisinin Python'un kendi derleyicisi kadar verimli 
olamayacağı aşikar. Ama bu haldeyken bile bence VM'ler arasındaki teknoloji 
farkları performansa yansıyabilir. (Demek istediğim o ki, bence, eğer 
yukarıdaki 3 adımdan oluşan test gerçekleştirilebilseydi beklendiğinden epey 
farklı sonuçlar alınabilirdi.)

> Aslında konu dışı ama kartezyen çarpmayla uğraşmak istemeyenler
> alternatif olarak 0'dan 2^n-1'e kadar saydırıp 1 olan bitlere karşılık
> gelen elemanları alabilir.

Sanırım bu konuda Bülent Bey sizden biraz evvel davranmış. Yine de çok 
teşekkürler. Bu fikir gerçekten çok güzel.

> (Başka bir algoritma, başka bir dil (ruby))
> 
> def komb (d)
>   (1...(2**d.size)).map do |i|  
>     d.values_at *(0...d.size).map {|j| (i[j]==1) ? j : nil}.compact
>   end
> end
>
> ...
> ocaml (biraz hileli):
> 
> let rec comb = function [] -> [[]] 
>     | hd::tl -> let c=comb tl in (List.map (fun x -> hd::x) c) @ c
> 
> ...
> sml kodu da birazcık daha "güzel"dir ama işte ruhumuzu hıza satıyoruz.

Açıkcası onu da görmeyi çok isterdim.

> Pek adları geçmediği için reklam yapma ihtiyacı duydum :)

Elinize sağlık.


İyi çalışmalar.

_______________________________________________
cs-lisp mailing list
cs-lisp@cs.bilgi.edu.tr
http://church.cs.bilgi.edu.tr/lcg
http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp

Cevap