Skip to content

Commit 5eba09c

Browse files
committed
Improve introduction
1 parent b7b4600 commit 5eba09c

File tree

2 files changed

+32
-25
lines changed

2 files changed

+32
-25
lines changed

src/thesis.bib

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -441,3 +441,12 @@ @article{WebAssembly-AFP
441441
note = {\url{http://isa-afp.org/entries/WebAssembly.html}, Formal proof development},
442442
ISSN = {2150-914x},
443443
}
444+
445+
@online{CoffeeScript,
446+
title = {CoffeeScript},
447+
author = {Booth, Geoffrey},
448+
year = {2020},
449+
date = {2020-05-25},
450+
url = {https://coffeescript.org/},
451+
urldate = {2020-07-15}
452+
}

src/thesis.tex

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -53,39 +53,37 @@
5353

5454
\chapter{Introduction} % FIXME
5555

56-
With the only standardized and widely supported language for the Web being
57-
JavaScript, it became more common for other languages to support JavaScript as
58-
a compile target, with developers writing software in those other languages and
59-
compiling the software to JavaScript to run on the Web.
56+
The modern Web is based on three primary integrated components: document markup
57+
using HTML, styling using CSS, and interactivity using the JavaScript
58+
programming language.
59+
With JavaScript as the only standardized and widely supported programming
60+
language for the platform, as the usage of the Web as a universal platform
61+
continued to expand authors of software projects wished to enable their
62+
software to be run on the Web but had reasons, some technical and others more
63+
superficial, requiring the use of different source languages.
64+
Often, this was a lower-level language used for performance reasons, a stricter
65+
language for safety reasons, or support for existing libraries or large
66+
projects in existing languages that cannot easily be ported to JavaScript.
67+
To enable this, it became common for other programming languages to support
68+
JavaScript as a compile target, allowing developers to write software to be run
69+
on the Web without having to write JavaScript directly.
70+
6071
Some of these source languages were designed intentionally with this goal in
61-
mind, such as CoffeeScript.
62-
The goals of these projects were to provide developers the same distribution
63-
platform (the Web) but with the freedom of writing their programs in a
64-
different syntax.
65-
However, with the usage of the Web as a universal platform continued to expand,
66-
authors of other projects wished to compile their software to be run on the
67-
Web, but had strong reasons requiring the use of a different source language.
68-
Often, this was a lower-level language used for
69-
performance reasons, a stricter language for safety reasons, or support for
70-
existing libraries or large projects in existing languages that cannot easily
71-
be ported to JavaScript.
72-
Often, this language is C or C++.
73-
74-
The Emscripten project compiles LLVM\footnote{\url{http://llvm.org/}}
75-
intermediate representation software, which can be generated from C/C++, to
76-
JavaScript\cite{AboutEmscripten}.
72+
mind, such as CoffeeScript\cite{CoffeeScript}, while others such as C or C++
73+
had the capability added by external alternative compilers.
74+
The Emscripten\cite{AboutEmscripten} project compiles
75+
LLVM\footnote{\url{http://llvm.org/}} intermediate representation software,
76+
which can be generated from C/C++, to JavaScript.
7777
The resulting compiled program utilizes a subset of JavaScript's available
7878
syntax and operations, called asm.js, which are heavily optimized by JavaScript
7979
interpreters and just-in-time compilers, as well as the underlying
8080
hardware\cite{AsmJsResig}.
81-
8281
While this clever usage of the existing platform provided performance
83-
improvements, JavaScript was not designed as a low-level, performant compile
84-
target, and the resulting benefits of asm.js relied heavily on JavaScript
85-
runtime implementations.
82+
improvements and developer satisfaction, JavaScript was not designed as a
83+
low-level, performant compile target, and the resulting benefits of asm.js
84+
relied heavily on JavaScript runtime implementations.
8685
An attempt to define a formal specification and standardize the platform began
8786
in 2013, but was abandoned shortly thereafter in 2014\cite{AsmJsSpec}.
88-
8987
The abandonment of asm.js's formalization coincided with discussions amongst
9088
its project leaders for defining a new ``proper'' bytecode solution for native
9189
code on the Web; followed shortly thereafter by initial discussions between

0 commit comments

Comments
 (0)