\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}