---- 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