From 05e5517dd887751cc3293b823b5fd442aa356c22 Mon Sep 17 00:00:00 2001 From: Geoffrey Challen Date: Fri, 19 Dec 2014 13:45:07 -0500 Subject: [PATCH] Cleanup pass. --- abstract.tex | 14 +++++++------- introduction.tex | 5 ++++- maybe.tex | 4 ++-- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/abstract.tex b/abstract.tex index e793f5d..552360b 100644 --- a/abstract.tex +++ b/abstract.tex @@ -1,21 +1,21 @@ \begin{abstract} One of the reasons programming mobile systems is so hard is the wide variety -of environments a typical app encounters at runtime. In many cases, only -post-deployment user testing can determine the right algorithm to use, the -rate at which something should happen, or when an app should attempt to -conserve energy. Programmers should not be forced to make these choices at +of environments a typical app encounters at runtime. As a result, in many +cases only post-deployment user testing can determine the right algorithm to +use, the rate at which something should happen, or when an app should attempt +to conserve energy. Programmers should not be forced to make these choices at development time. Unfortunately, languages leave no way for programmers to express and structure uncertainty about runtime conditions, forcing them to -adopt fragile ad-hoc solutions. +adopt ineffective or fragile ad-hoc solutions. \sloppypar{We introduce a new approach based on \textit{structured uncertainty} -through a new language construct: The \texttt{maybe} statement. +through a new language construct: the \texttt{maybe} statement. \texttt{maybe} statements allow programmers to defer choices about app behavior that cannot be made at development time, while providing enough structure to allow a system to later adaptively choose from multiple alternatives. Eliminating the uncertainty introduced by \texttt{maybe} -statements can be done in a large variety of ways: Through simulation, split +statements can be done in a large variety of ways: through simulation, split testing, user configuration, temporal adaptation, or machine learning techniques, depending on the type of adaptation appropriate for each situation. Our paper motivates the \texttt{maybe} statement, presents its diff --git a/introduction.tex b/introduction.tex index 43c66cd..bfd56b7 100644 --- a/introduction.tex +++ b/introduction.tex @@ -88,11 +88,14 @@ maybe { // Don't attempt to save energy } \end{minted} + \vspace*{-0.2in} -\caption{\textbf{Example use of the \texttt{maybe} statement.} } +\caption{\textbf{Example Use of the \texttt{maybe} Statement.} } \label{fig-example-maybe} +\vspace*{-0.2in} + \end{figure} In this paper, we focus on the challenge of providing developers with diff --git a/maybe.tex b/maybe.tex index 17c4370..9749425 100644 --- a/maybe.tex +++ b/maybe.tex @@ -27,7 +27,7 @@ maybe { } or { ret = slowPowerEfficientAlgorithm(input); choice = SLOW; -} better { +} analyze { return { "repeat": false, "score" : nanoTime() + powerDrain() } } @@ -39,7 +39,7 @@ else { cleanUpAfterSlowAlg(ret); } \vspace*{-0.2in} -\caption{\textbf{More examples of \texttt{maybe} statements.}} +\caption{\textbf{More Examples of \texttt{maybe} Statements.}} \label{fig-maybeexamples} -- libgit2 0.22.2