Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> actually quite readable, although some of the language can be a bit intimidating if you're not used to reading programming language papers

You're more generous than me, I think it's rubbish.

Would have been easier to read if they had written it more like an ISA manual.



You can understand the WASM spec in your sleep if you’ve ever worked through a type-system paper from the last two decades (or a logic paper from even earlier I guess).

Granted, not many people have, but there’s a reason why it makes sense for it to be written in that style: they want it to be very clear that the verification (typechecking, really) algorithm doesn’t have any holes, and for that it’s reasonable to speak the language of the people who prove that type of thing for a living.

The WASM spec is also the ultimate authoritative reference for both programmers and implementers. That’s different from the goals of an ISA manual, which usually only targets programmers and just says “don’t do that” for certain dark corners of the (sole) implementation. (The RISC-V manual is atypical in this respect; still, I challenge you to describe e.g. which PC value the handler will see if the user code traps on a base RV32IMA system.)


> You can understand the WASM spec in your sleep if you’ve ever worked through a type-system paper from the last two decades

Is there a lot of crossover between those people and people who work with assemblers or code generation? There's even more crossover with those people and understanding how to read a minimal ISA document.


This is an opportunity to learn. The way WebAssembly is defined is the standard way PL semantics are defined.


WebAssembly isn't a programming language, it's an ISA or a bytecode VM. They've defined it in a very over-engineered way, with different representations all the way through. It has created issues for people working on assemblers and code generation because it's hard to choose a good representation for compilers to generate. This all could have been avoided.


Those are all programming languages.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: