\section{Specific programming paradigms}
We turn to the examination of various concrete programming
problems. Because the origins of \tcc{} were in synchronous
programming, we first examine how some typical reactive and
synchronous computations may be expressed in \tgentzen{}.  Next we
consider the representation of some common patterns of default
inference. 


\subsection{Reactive programming}
A typical reactive programming task is the programming of
controllers. For such tasks, it is crucial that the controller
program be compilable into a system with bounded run-time state,
e.g.{} an FSA. The programs presented below for two reactive
computation tasks satisfy the conditions for bounded
compilability discused in Section~\ref{tcc}. (In particular they
do not use embedded parametric asks which also contain the seeds
of arbitrary recursion.)

\input{mouse}
\input{atm}

\input{fib}

\subsection{Programming with defaults}
We now turn to some techniques that make explicit use of Timed
Negative Asks for defeasible default reasoning. 
 
\input{sieve}
\input{persistent-assignments}
\input{rollers}
\input{minimization}

\newpage
\subsection{Meta-programming: A \tgentzen{} meta-interpreter}\label{meta-interp}
\input{meta-interp}

