---- 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
[email protected]
http://church.cs.bilgi.edu.tr/lcg
http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp