8/38
\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}