Commit 05e5517dd887751cc3293b823b5fd442aa356c22
1 parent
950e73bd
Cleanup pass.
Showing
3 changed files
with
13 additions
and
10 deletions
abstract.tex
| 1 | \begin{abstract} | 1 | \begin{abstract} |
| 2 | 2 | ||
| 3 | One of the reasons programming mobile systems is so hard is the wide variety | 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 | development time. Unfortunately, languages leave no way for programmers to | 8 | development time. Unfortunately, languages leave no way for programmers to |
| 9 | express and structure uncertainty about runtime conditions, forcing them to | 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 | \sloppypar{We introduce a new approach based on \textit{structured uncertainty} | 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 | \texttt{maybe} statements allow programmers to defer choices about app | 14 | \texttt{maybe} statements allow programmers to defer choices about app |
| 15 | behavior that cannot be made at development time, while providing enough | 15 | behavior that cannot be made at development time, while providing enough |
| 16 | structure to allow a system to later adaptively choose from multiple | 16 | structure to allow a system to later adaptively choose from multiple |
| 17 | alternatives. Eliminating the uncertainty introduced by \texttt{maybe} | 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 | testing, user configuration, temporal adaptation, or machine learning | 19 | testing, user configuration, temporal adaptation, or machine learning |
| 20 | techniques, depending on the type of adaptation appropriate for each | 20 | techniques, depending on the type of adaptation appropriate for each |
| 21 | situation. Our paper motivates the \texttt{maybe} statement, presents its | 21 | situation. Our paper motivates the \texttt{maybe} statement, presents its |
introduction.tex
| @@ -88,11 +88,14 @@ maybe { | @@ -88,11 +88,14 @@ maybe { | ||
| 88 | // Don't attempt to save energy | 88 | // Don't attempt to save energy |
| 89 | } | 89 | } |
| 90 | \end{minted} | 90 | \end{minted} |
| 91 | + | ||
| 91 | \vspace*{-0.2in} | 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 | \label{fig-example-maybe} | 95 | \label{fig-example-maybe} |
| 95 | 96 | ||
| 97 | +\vspace*{-0.2in} | ||
| 98 | + | ||
| 96 | \end{figure} | 99 | \end{figure} |
| 97 | 100 | ||
| 98 | In this paper, we focus on the challenge of providing developers with | 101 | In this paper, we focus on the challenge of providing developers with |
maybe.tex
| @@ -27,7 +27,7 @@ maybe { | @@ -27,7 +27,7 @@ maybe { | ||
| 27 | } or { | 27 | } or { |
| 28 | ret = slowPowerEfficientAlgorithm(input); | 28 | ret = slowPowerEfficientAlgorithm(input); |
| 29 | choice = SLOW; | 29 | choice = SLOW; |
| 30 | -} better { | 30 | +} analyze { |
| 31 | return { "repeat": false, | 31 | return { "repeat": false, |
| 32 | "score" : nanoTime() + powerDrain() } | 32 | "score" : nanoTime() + powerDrain() } |
| 33 | } | 33 | } |
| @@ -39,7 +39,7 @@ else { cleanUpAfterSlowAlg(ret); } | @@ -39,7 +39,7 @@ else { cleanUpAfterSlowAlg(ret); } | ||
| 39 | 39 | ||
| 40 | \vspace*{-0.2in} | 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 | \label{fig-maybeexamples} | 44 | \label{fig-maybeexamples} |
| 45 | 45 |