related.tex
1.84 KB
\section{Related Work}
\label{sec-related}
New systems such as EnFrame~\cite{arxiv13-enframe} reflect growing interest
in managing uncertainty at the language level. EnFrame focuses on enabling
programming with uncertain data, rather than the runtime adaptation enabled
by \texttt{maybe}.
Aspect oriented programming (AOP)~\cite{aop} aims to increase modularity
through the separation of cross-cutting concerns. The programmer can express
cross-cutting concerns in stand alone modules, or aspects. Aspects are
composed of advice, which specifies a computation to be performed as well as
points in the program at which that computation should be performed.
Fundamentally, the goals of AOP and the \texttt{maybe} statement differ, with
AOP focusing on modularity and \texttt{maybe} focused on increasing runtime
flexibility in the face of uncertainty.
\texttt{maybe} shares similaries with language-based approaches to managing
energy consumption in wireless sensor networks such as
Eon~\cite{sensys07-eon} and Levels~\cite{sensys07-levels}. However, these
approaches still require programmers to express certainty by associating code
with particular energy states, rather than allowing the system to determine
which energy states are appropriate as the \texttt{maybe} system would do.
\texttt{maybe} can also enable adaptation driven by goals other than energy
management.
Attempts to enable more adaptive mobile systems date back to systems such as
Odyssey~\cite{odyssey-sosp97}. However, a taxonomy of approaches to enabling
adaptation on early mobile systems~\cite{badrinath2000conceptual} reflects
the focus of early efforts on incorporating adaptation into libraries that
could be used by multiple apps. As we have pointed out previously, while
adaptation libraries are useful, \texttt{maybe} statements can make them more
powerful by allowing programmers to express uncertainty.