Me to prijde jako semanticky cistejsi (psal jsem diplomku na tohle tema).
Skoky, at uz GOTO ci JMP jsou nehezke konstrukty, ktere maji tendenci porusovat viditelnost promennych, pokud mate v moci skakat na adresu, tak si musite dat pozor na skok doprostred instrukce (vivat viry a anti-disasm) a jine podivnosti.
Takze ta reprezentace vnorenych bloku, ktere pripomina XML, je celkem hezky aspekt WASM. A kod muze jit jen na pocatek nebo na konec bloku.
Samozrejme to obnasi nutnost proskenovat celej instrukcni flow, ale s tim se jaksi pocita, pokud to projde pres JIT preklad.
Jediny do ceho to haze vidle je onen switch-case, ze neexistuje nativni trampolina/vektorizovany jump, ale je treba ty bloky vnorovat (pripomina mi to problemaktiku parsovani vyrazu - zda se zavorkuje zleva nebo zprava :)
Někdy kolem roku 2000 jsme se spolužákem žádali Akademii věd o grant na vybudování úložiště a vyhledávače ve kterém by byly uloženy a zaindexovány všechny práce studentů a doktorandů.
Přišlo nám, že spousta zajímavých a potenciálně užitečných prací zahnívá v depozitářích univerzit.
Nevyšlo to, prý by to bylo pěkné, ale byl by to velký průšvih.
A to jsme chtěli na zorganizování, vybudování a několikaletý provoz jen cca 3M Kč.
Ty verejne digitalni kopie zavedli myslim par let po nas (koncil jsem 2006), my jen odevzdavali digitalni verzi do informacniho systemu skoly.
Pak jsem to mel chvili na osobnim webu - a nedavno jsem zkousel sluzbu na kontrolu plagiatu - odhalilo to prave jenom tenhle zdroj (tak nevim zda nascrapovali internet sami nebo je tam nejaka spoluprace s vyhledavaci) a casti abstraktu na webu skoly :D
Ty Bc/Mgr prace jako nemaj takovou hodnotu, obcas je to nutne zlo.. na vyssi stupni ale prace a papery existuji - kdyz je to podstata onoho studia. Bohuzel taky casto jen v placenych systemech, coz je skoda. Clovek by z toho rad cerpal.. nez to vymyslel sam, a pak ho narkli z toho ze to nekde okopcil az si projde sam tou narocnou casti.
Právě. Zajímavé je, že tady se sám tváří trošku vysokoúrovňověji než JVM, kde skoky jsou. Ale musí se řešit právě tyto lahůdky jako skok doprostřed instrukce (JVM IIRC zakazuje) a viditelnost proměnných. JVM má celkem komplexní algoritmus verifikace, který řeší tyto srandy, a kterému se asi chtěli autoři wasm vyhnout. A k tomu už i pre-verifikaci, což stručně řečeno znamená, že v class souboru jsou navíc i informace, které je výpočetně jednodušší ověřit než odvodit. Původně pre-verifikace vznikla (zřejmě kvůli výkonu) pro J2ME, v jiné podobě (a možná ne pod tímto názvem) se objevila následně pro Javu SE (snad v 7 to ještě šlo vypnout a 8 to vyžaduje, pokud nemáme starou major verzi).
Pravda, wasm asi část věcí nemusí řešit (IIUC to má jednodušší s typy), ale i tak by stejný postup přinesl část painu.