aboutsummaryrefslogtreecommitdiff
path: root/TextFormat.md
diff options
context:
space:
mode:
authorJF Bastien <jfb@chromium.org>2015-06-08 17:46:01 +0200
committerJF Bastien <jfb@chromium.org>2015-06-08 17:46:01 +0200
commit8ab1c1eaaf25e0688d893a70708aba31188f76d1 (patch)
tree0a3d24b1d065529f430de89f2854899a421b327a /TextFormat.md
parent9329862be20ddb6da38e28519871910c2680af1d (diff)
downloadnanowasm-design-8ab1c1eaaf25e0688d893a70708aba31188f76d1.tar.gz
Split out text format into its own document.
Diffstat (limited to 'TextFormat.md')
-rw-r--r--TextFormat.md22
1 files changed, 22 insertions, 0 deletions
diff --git a/TextFormat.md b/TextFormat.md
new file mode 100644
index 0000000..1ce2bb4
--- /dev/null
+++ b/TextFormat.md
@@ -0,0 +1,22 @@
+# Text Format
+
+The purpose of this text format is to support:
+* View Source on a WebAssembly module, thus fitting into the Web (where every
+ source can be viewed) in a natural way.
+* Presentation in browser development tools when source maps aren't present
+ (which is necessarily the case with the MVP).
+* Writing WebAssembly code directly for reasons including pedagogical,
+ experimental, debugging, optimization, and testing of the spec itself.
+* The text format is equivalent and isomorphic to the
+ [binary format](BinaryEncoding.md).
+* The text format will be standardized, but only for tooling purposes:
+ * Compilers will support this format for `.S` and inline assembly.
+ * Debuggers and profilers will present binary code using this textual format.
+ * Browsers will not parse the textual format on regular web content in order
+ to implement WebAssembly semantics.
+* Given that the code representation is actually an
+ [Abstract Syntax Tree](ASTSemantics.md), the syntax would contain nested
+ statements and expressions (instead of the linear list of instructions most
+ assembly languages have).
+* There is no requirement to use JavaScript syntax; this format is not intended
+ to be evaluated or translated directly into JavaScript.