Geri qayıt
Braun tədqiqatı: async/await hər dildə fərqli davranır
SiTech AI Team2 წთ. საკითხავი

Braun tədqiqatı: async/await hər dildə fərqli davranır

Braun Universitetinin laboratoriyası göstərir ki, yeddi müasir async runtime hətta kiçik bir proqramda dörd fərqli nəticə verir; arxasındakı doqquz dizayn ölçüsü xəritələnir.

Braun Universitetinin Cognitive Engineering Lab-ının yeni məqaləsi async/await-in yeddi müasir runtime-da necə davrandığını araşdırır və ümumi sintaksisin təlqin etdiyindən qat-qat az uzlaşma olduğunu göstərir. Yazını Gavin Qrey 2026-cı il sentyabrın 8-də dərc edib.

Kiçik proqram, dörd cavab

On beş ildən çoxdur dillər "düz xəttli asinxronluq"a yönəlir — paralel kod adi xətti kod kimi görünsün (Python, Rust, Swift). Lakin kiçik psevdokod fərqi göstərir: write_to_log "A" çap edir, iki saniyəlik sleep gözləyir və "B" çap edir; fire_and_forget bu funksiyanı fon vəzifəsi kimi işə salır və gözləmədən qayıdır; main fire_and_forget-i gözləyir, bir saniyə yatır və "C" çap edir. Yeddi runtime — Asyncio, C#, JavaScript, Tokio, Smol, Trio və Swift — dörd fərqli nəticə verir; proqramın üç variantında heç iki runtime eyni nəticə çıxarmır.

İsti və soyuq başlanğıc, doqquz ölçü

İzahın bir hissəsi "tələskənlikdir": isti başlanğıc artıq runtime-da işləyən vəzifə qaytarır, soyuq başlanğıc isə await-ə qədər heç nə etməyən inert obyekt; Python və Rust tənbəl qiymətləndirir. Məqalə yalnız məhsuldarlığı deyil, icranın müşahidə edilən semantikasını dəyişən doqquz dizayn ölçüsü müəyyən edir və onları üç qrupa bölür: həyatın başlanğıcı, həyatın sonu və ləğvetmə.

Niyə Swift "AC", Trio isə "ABC" çap edir

Nümunədə iki ölçü üstünlük təşkil edir. Dinamik əhatə dairəsində vəzifə onu yaradan funksiyadan uzun yaşaya bilməz — bunu Swift və Python+Trio seçib. Onlar məhv etmə ilə fərqlənir: Swift vəzifəni ləğv edir, Trio isə nəzakətlə bitməsini gözləyir. Buna görə Swift "AC", Trio isə "ABC" çap edir. Ləğvetmə başqa cəhətlərdən də dəyişir: məlumatlılıq, davamlılıq (vəzifə ləğvi saymaya və davam edə bilər, ya da ləğv olunmuş qala bilər) və siqnalın yayılması — yuxarıdan aşağıya, aşağıdan yuxarıya və ya bütün asılılıqlara eyni anda.

Dizayn məkanının arxasındakı hesablama

Məkanı dəqiqləşdirmək üçün müəlliflər onu asinxron proqramların nüvə hesablaması üzərində formal semantikaya çeviriblər. Mücərrəd maşının izləri icranı çata bölən semantik qərarları vurğulayır və proqramların niyə ayrıldığını addım-addım izah edir. Hər ölçü məhsuldarlıq, yaddaş, erqonomika və semantika arasında güzəştdir; düzgün cavablar yoxdur və hər dilin öz məntiqi var — amma kiçik proqramlar belə ciddi izah tələb edir.

SSiTech

SiTech — AI ilə gücləndirilmiş veb hazırlanması

Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.