author | Alan Dipert
<alan@dipert.org> 2020-02-12 23:32:08 UTC |
committer | Alan Dipert
<alan@dipert.org> 2020-02-12 23:32:08 UTC |
parent | 07beedd6d26f6ed3a16c9ac74c9b3985bd74021f |
paper/jacl-els-2020.tex | +11 | -11 |
diff --git a/paper/jacl-els-2020.tex b/paper/jacl-els-2020.tex index 1ab0c26..36e05f8 100644 --- a/paper/jacl-els-2020.tex +++ b/paper/jacl-els-2020.tex @@ -506,23 +506,23 @@ optimizers that may be applied to deliverable executables. The compiler has one analysis pass that results in an AST. The AST is then converted to JavaScript strings by a code generation step. -Each AST node is a JavaScript object with at least the following -keys: +AST nodes are represented by generic JavaScript objects with at least +the following keys: \begin{itemize} - \item \texttt{op}: The node name, a JavaScript string. - \item \texttt{env}: An \texttt{Env} JavaScript object that - represents the node's lexical environment. + \item \texttt{op}: The node's name, as a JavaScript string. + \item \texttt{env}: An object of class \texttt{Env} that represents + the node's lexical environment. \item \texttt{parent}: The node's parent; this is \texttt{null} for the root. \item \texttt{form}: The node's original source data, a Lisp datum. \end{itemize} -\texttt{node} and \texttt{Env} objects are immutable by -convention. Functions are provided for modifying and merging these -objects so as only to produce new objects. This convention reduces the -possibility of optimization passes interfering with one another. It -also eases understanding the AST, since every AST node contains a copy -of all relevant context. +Nodes and \texttt{Env} objects are immutable by convention. Functions +are provided for modifying and merging these objects so as only to +produce new objects. This convention reduces the possibility of +optimization passes interfering with one another. It also eases +understanding the AST, since every AST node contains a copy of all +relevant context. As JavaScript objects, AST nodes are easily introspected using the Web browser's object inspector.