Commit 05e5517dd887751cc3293b823b5fd442aa356c22
1 parent
950e73bd
Cleanup pass.
Showing
3 changed files
with
13 additions
and
10 deletions
abstract.tex
| 1 | 1 | \begin{abstract} |
| 2 | 2 | |
| 3 | 3 | One of the reasons programming mobile systems is so hard is the wide variety |
| 4 | -of environments a typical app encounters at runtime. In many cases, only | |
| 5 | -post-deployment user testing can determine the right algorithm to use, the | |
| 6 | -rate at which something should happen, or when an app should attempt to | |
| 7 | -conserve energy. Programmers should not be forced to make these choices at | |
| 4 | +of environments a typical app encounters at runtime. As a result, in many | |
| 5 | +cases only post-deployment user testing can determine the right algorithm to | |
| 6 | +use, the rate at which something should happen, or when an app should attempt | |
| 7 | +to conserve energy. Programmers should not be forced to make these choices at | |
| 8 | 8 | development time. Unfortunately, languages leave no way for programmers to |
| 9 | 9 | express and structure uncertainty about runtime conditions, forcing them to |
| 10 | -adopt fragile ad-hoc solutions. | |
| 10 | +adopt ineffective or fragile ad-hoc solutions. | |
| 11 | 11 | |
| 12 | 12 | \sloppypar{We introduce a new approach based on \textit{structured uncertainty} |
| 13 | -through a new language construct: The \texttt{maybe} statement. | |
| 13 | +through a new language construct: the \texttt{maybe} statement. | |
| 14 | 14 | \texttt{maybe} statements allow programmers to defer choices about app |
| 15 | 15 | behavior that cannot be made at development time, while providing enough |
| 16 | 16 | structure to allow a system to later adaptively choose from multiple |
| 17 | 17 | alternatives. Eliminating the uncertainty introduced by \texttt{maybe} |
| 18 | -statements can be done in a large variety of ways: Through simulation, split | |
| 18 | +statements can be done in a large variety of ways: through simulation, split | |
| 19 | 19 | testing, user configuration, temporal adaptation, or machine learning |
| 20 | 20 | techniques, depending on the type of adaptation appropriate for each |
| 21 | 21 | situation. Our paper motivates the \texttt{maybe} statement, presents its | ... | ... |
introduction.tex
| ... | ... | @@ -88,11 +88,14 @@ maybe { |
| 88 | 88 | // Don't attempt to save energy |
| 89 | 89 | } |
| 90 | 90 | \end{minted} |
| 91 | + | |
| 91 | 92 | \vspace*{-0.2in} |
| 92 | 93 | |
| 93 | -\caption{\textbf{Example use of the \texttt{maybe} statement.} } | |
| 94 | +\caption{\textbf{Example Use of the \texttt{maybe} Statement.} } | |
| 94 | 95 | \label{fig-example-maybe} |
| 95 | 96 | |
| 97 | +\vspace*{-0.2in} | |
| 98 | + | |
| 96 | 99 | \end{figure} |
| 97 | 100 | |
| 98 | 101 | In this paper, we focus on the challenge of providing developers with | ... | ... |
maybe.tex
| ... | ... | @@ -27,7 +27,7 @@ maybe { |
| 27 | 27 | } or { |
| 28 | 28 | ret = slowPowerEfficientAlgorithm(input); |
| 29 | 29 | choice = SLOW; |
| 30 | -} better { | |
| 30 | +} analyze { | |
| 31 | 31 | return { "repeat": false, |
| 32 | 32 | "score" : nanoTime() + powerDrain() } |
| 33 | 33 | } |
| ... | ... | @@ -39,7 +39,7 @@ else { cleanUpAfterSlowAlg(ret); } |
| 39 | 39 | |
| 40 | 40 | \vspace*{-0.2in} |
| 41 | 41 | |
| 42 | -\caption{\textbf{More examples of \texttt{maybe} statements.}} | |
| 42 | +\caption{\textbf{More Examples of \texttt{maybe} Statements.}} | |
| 43 | 43 | |
| 44 | 44 | \label{fig-maybeexamples} |
| 45 | 45 | ... | ... |