\begin{frame}{Programs are Words}
\begin{goal}{}
Everything stored on a computer is a word (a sequence of bits).
\end{goal}
A bit can either be 0 or 1. So the alphabet is $\Sigma = \{\,0,1\,\}$.
\pause\bigskip
\begin{goal}{}
So, in particular, a computer program is a \emph{word}.
\medskip
From an abstract point of view, a program
\begin{itemize}
\item takes a \emph{words as input}
\item produces a \emph{word as output}
\end{itemize}
\end{goal}
\pause\medskip
\begin{exampleblock}{}
A program can be given itself as input.
\medskip
For instance, you can do
\begin{itemize}
\item []\texttt{/bin/cat /bin/cat}
\end{itemize}
in Linux.
\end{exampleblock}
\end{frame}