Hirdetés

Új hozzászólás Aktív témák

  • ddekany

    veterán

    Ez az asm.js annyira... Nézzük a folyamatot. Régen: Megírsz egy programot C/C++-ban, lefordítod/linkeled a cél platformra, és kész. Most: Lefordítod a C/C++ az LLVM köztes nyelvére (byte code), az erre készült Clang fordítóval. Az LLVM köztes nyelvét után Emscriptem-el továbbfordítod a JavaScript-é. Ez nem egy szokványos ember által olvasható JavaScript lesz, hanem efféle hagyományos-gépikód emulátor, ami bazi int tömbökkel emulálja a heap-et meg ilyeneket, és mindent int-ekkel meg double-kal csinál, más típust tán nem is használ. Aztán jön a JavaScript interpreter a böngészőben, ami ha valami modern darab, elkezd azon küzdeni, hogy egy ilyen dinamikus, sebességet mindig leszaró nyelvet, mint a JS, valahogy gyorsabbra fordítson. És ezt a förmedvényt jól optimalizálhatónak fogja tartani, mert direkt úgy van tervezve, hogy jól essen egy tipikus JS optimalizálónak. Főleg ha meg van jelölve, hogy ez asm.js, és fel van rá készítve, akkor nagyon bátran nekiállhat. Így végül, ha minden jól ment, valami hasonló gépikóddá fogja transzformálni, mint amit régen azzal az egyetlen fordítással kaptál, csak persze azért lassabb lesz, meg biztos van még pár buktató. :W Könyörgöm, legalább LLVM byte-kódot kapná a böngésző, de neeem, ahhoz túl nagy összefogás kell... és a JS az már today is fut... Na, ez az IT.

Új hozzászólás Aktív témák