Anonim işlevlerin çoğu neden JIT olarak derlenemez ve hiçbir zaman optimize edilmez?


10

Fonksiyonel programlama hakkında https://techfindings.one/archives/2652 okudum ve bununla karşılaştım:

anonim işlevler genellikle JIT derlenemez ve hiçbir zaman optimize edilmez

Biri bana neden böyle olduğunu açıklayabilir mi?



Bence downvote burada haklı değil ve ayrıca soruma uygulanamaz. JIT ve anonim işlevler hakkında teknik bir soru soruyorum - fikir / tat ya da tartışma istemiyorum. Diğerlerinden bana anonim işlevlerin neden JIT derlenemediğini açıklamalarını istiyorum. Bağlantınız bile "Başkalarının bana ______ açıklamasını istiyorum" diyorsa, o zaman muhtemelen iyisiniz "@gnat
thadeuszlay

4
"Neden?" önce "Bu doğru mu?" diye sormalısın. Bu iddiaya BS diyorum. 4 büyük tarayıcıda 4 farklı JS motoru var ve battaniyenin hiçbiri anonim işlevleri optimize etmeyeceğini iddia ediyor, bunu destekleyecek herhangi bir referans veya veri olmadan çok cesur.
Sebastian Redl

1
En azından V8 motorunun kesinlikle anonim fonksiyonları JIT-derleyebildiğinden eminim. Kaynak: Kaynak kodun ilgili kısımlarını okudum. Bunun imkansız olması için teknik bir neden yok. Bu yüzden sorunun önceliği yanlış. Bu, yazarın neden bu ifadenin mantıklı olduğunu düşündüğü sorusunu gündeme getirir. Ama bunu bilemeyiz ve bu, gnat'ın bağlantısıyla açıklandığı gibi tartışılması gereken yer değil.
amon

Ne demek istediğini görüyorum ve sana katılıyorum @SebastianRedl. Bu ifadeyi anlamadım ama daha derine inmek yerine kolay yolu seçtim ve burada sordum.
thadeuszlay

Yanıtlar:


15

İnsanların işlev başka bir işlev içinde bildirildiğinden , dış işlev her çağrıldığında derleyicinin yeniden derlemesi gerektiğini düşündüğü, adlandırılmış veya anonim işlevler hakkında yaygın bir yanlış anlama vardır . Bu doğru değil. Fonksiyonun kodu , çağrı bağlamı olmasa bile sabittir ve diğer tüm fonksiyonlarda olduğu gibi satır içi veya optimize edilebilir . Bu karışıklık, özellikle bu sorudaki gibi, yorumlanmış / JIT dil uygulamalarında iç içe geçmiş işlevleri kullanan programcılar arasında güçlü görünmektedir .

Bu makalede, sorunları anlamadığını ve düşündüğünü gösteren birkaç benzer yanlış anlama var. Fonksiyonel programlama hakkında bilgi edinmek için güvenilir bir kaynak olduğunu düşünmüyorum.


Açıkladığınız için teşekkürler. Bilgisayar Bilimi (CS) uzmanı değilim. Derecem veya CS çalışmam bile yok. Bu yüzden her şeyi kendim araştırmak benim için zor. Bağlantılı makalenin yazarının tam olarak doğru olmadığı diğer hususları açıklığa kavuşturabilir misiniz?
thadeuszlay
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.