|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+# Summarise Contribution & Motivation
|
|
|
2
|
+
|
|
|
3
|
+- Web is becoming mature and now requires more complex applications to run on it
|
|
|
4
|
+- Javascript is currently only built in language
|
|
|
5
|
+- Javascript is not well equipped to deal with these applications or be a compile target
|
|
|
6
|
+- WebAssembly is a low level bytecode for the web
|
|
|
7
|
+- Aims to provide safe, low overhead execution
|
|
|
8
|
+- Better solution than plugins for safety
|
|
|
9
|
+- Better than asm.js for consistent performance
|
|
|
10
|
+
|
|
|
11
|
+# Methodology
|
|
|
12
|
+
|
|
|
13
|
+- Defines modules for each binary and therefore allows imports
|
|
|
14
|
+- Defines functions, not first class and not nested, call stack not exposed
|
|
|
15
|
+- Instructions based in a stack machine, for compactness
|
|
|
16
|
+- Only defines 4 types, integers and IEEE floating points
|
|
|
17
|
+- Has global and local variables
|
|
|
18
|
+- Memories defined by modules with little endianness, disjoint from code space and stack so programs can only mess up their own environment
|
|
|
19
|
+- Does not offer simple jumps, has structured control flow, gives single pass validation/compilation/SSA
|
|
|
20
|
+- Can do JIT and validation in single pass
|
|
|
21
|
+- Transmitted over wire in binary form, streaming compilation possible due to layout
|
|
|
22
|
+
|
|
|
23
|
+# Critical Assessment
|
|
|
24
|
+
|
|
|
25
|
+- Improves on native client by being available on all browsers as it is not compact and still requires knowledge of underlying system
|
|
|
26
|
+- Traps are not handled but need JS intervention
|
|
|
27
|
+- Still missing features for higher level languages
|
|
|
28
|
+- A compile target for the web with safety by design should prevent many exploits
|
|
|
29
|
+-
|