git » jacl.git » commit 3c91a81

paper

author Alan Dipert
2020-02-13 16:27:25 UTC
committer Alan Dipert
2020-02-13 16:27:25 UTC
parent 2281859cc013249eef258f1bcbbd85767a3d258b

paper

paper/jacl-els-2020.tex +19 -18

diff --git a/paper/jacl-els-2020.tex b/paper/jacl-els-2020.tex
index 8ba82e7..8e01155 100644
--- a/paper/jacl-els-2020.tex
+++ b/paper/jacl-els-2020.tex
@@ -82,7 +82,7 @@ easily overcome.
 
 Developers have responded to these challenges by creating a widening
 variety of special-purpose programming languages that compile to
-JavaScript.\cite{Somasegar12,Czaplicki12,wiki:ReasonML} Each new
+JavaScript \cite{Somasegar12,Czaplicki12,wiki:ReasonML}. Each new
 language promotes one or more paradigms, application architectures, or
 development workflows, and claim some advantage relative to the status
 quo.
@@ -91,10 +91,10 @@ This paper presents one new such language, JavaScript-Assisted Common
 Lisp (JACL), an implementation of an extended subset of Common Lisp.
 
 Unlike contemporary languages, Lisp is closely associated with a
-history of innovation in the field of large-scale UI development that
-predates the existence of the Web.\cite{Cannon07,Garnet90} The design
-of Common Lisp is informed by the lessons learned in pursuit of those
-and other innovations.
+history of innovation and success in the field of large-scale UI
+development that predates the existence of the Web
+\cite{Cannon07,Garnet90}. The design of Common Lisp is informed by the
+lessons learned in pursuit of those and other innovations.
 
 The primary goal of the JACL project is to ease SPA development by
 applying Common Lisp --- a proven substrate for UI development success
@@ -175,7 +175,7 @@ self-hosting, includes the major control operators, and integrates
 tightly with JavaScript.
 
 JSCL includes a reader, compiler, and printer, and evaluation is
-performed by JavaScript's \texttt{eval} function. Between these, a
+performed by JavaScript's \texttt{eval()} function. Between these, a
 Read Eval Print Loop (REPL) is possible, and the JSCL distribution
 includes a reference implementation of one.
 
@@ -211,7 +211,7 @@ JSCL and SLip demonstrate that when the underlying reader facility is
 synchronous, a REPL cannot effectively be made available at run-time
 because of the asynchrony of input events in JavaScript. In the best
 case, the reader is only partially available through a pre-reader that
-accumulates datums asynchronously.
+accumulates characters asynchronously.
 
 \subsubsection{Compiler organization}
 
@@ -261,9 +261,9 @@ performed by a JavaScript optimizer.
 \subsection{ClojureScript}
 
 A discussion of industrial Lisp technology in the SPA setting would be
-incomplete without mention of ClojureScript.\cite{Cljs} ClojureScript
+incomplete without mention of ClojureScript \cite{Cljs}. ClojureScript
 is probably the most successful Lisp dialect for building SPAs by
-number of commercial users.\cite{CljsUsers}.
+number of commercial users \cite{CljsUsers}.
 
 ClojureScript targets JavaScript, and is a dialect of an earlier
 language, Clojure\cite{Clojure}, which targets Java Virtual Machine
@@ -323,7 +323,7 @@ Promises, iterators, async functions, async iterators, and the
 \texttt{await} keyword.
 
 These features simplify the JACL implementation and aid its
-performance\cite{V8async}. It is hoped that JACL will eventually be
+performance \cite{V8async}. It is hoped that JACL will eventually be
 written in itself, and that these features will be accessible from
 Lisp.
 
@@ -410,14 +410,15 @@ Instead, JACL offers an alternative development REPL approach that
 requires minimal host tooling: the DevTools-based REPL.
 
 For each tab, Google Chrome is capable of hosting a WebSocket-based
-debug endpoint that implements the DevTools Protocol.\cite{GDevTools}
-The Chrome DevTools Protocol is a standard for JSON object interchange
-over WebSocket that makes all of the browser's debugging facilities
-available remotely, over the network.
-
-JACL takes advantage of this feature of Chrome in order to deliver a
-command-line REPL client that may be run on the developer's host
-machine. The workflow is the following:
+debug server that implements the DevTools Protocol \cite{GDevTools}.
+
+DevTools Protocol clients may then connect to the server and interact
+with the tab's environment, such as by evaluating arbitrary JavaScript
+within the context of the tab.
+
+JACL leverages the DevTools Protocol to deliver a command-line REPL
+client that may be run on the developer's host machine. The workflow
+is the following:
 
 \begin{enumerate}
   \item Run Google Chrome from the shell with the \linebreak