\documentclass{article}
\usepackage{../style}

\begin{document}

\section*{Homework 1}

\HEADER

\begin{enumerate}

\item {\bf (Optional)} If you want to run the code presented
      in the lectures, install the Scala programming language
      available (for free) from

\begin{center}
\url{http://www.scala-lang.org}
\end{center}

      If you want to follow the code I present during the
      lectures, read the handout about Scala.

\item {\bf (Optional)} Have a look at the crawler programs.
      Can you find a usage for them in your daily programming
      life? Can you improve them? For example in cases there
      are links that appear on different recursion levels, the
      crawlers visit such web-pages several times. Can this be
      avoided? Also, the crawlers flag as problematic any page
      that gives an error, but probably only 404 Not Found
      errors should be flagged. Can you change that?)

\item Read the handout of the first lecture and the handout
      about notation. Make sure you understand the concepts of
      strings and languages. In the context of the CFL-course,
      what is meant by the term \emph{language}?

\item Give the definition for regular expressions---this is an
      inductive datatype. What is the
      meaning of a regular expression? (Hint: The meaning is
      defined recursively.)

\item Assume the concatenation operation of two strings is
      written as $s_1 @ s_2$. Define the operation of
      \emph{concatenating} two sets of strings. This operation
      is also written as $\_ \,@\, \_$. According to 
      this definition, what is $A \,@\, \{\}$ equal to?
      Is in general $A\,@\,B$ equal to $B\,@\,A$?

\item Assume a set $A$ contains 4 strings and a set $B$
      contains 7 strings. None of the strings is the empty
      string. How many strings are in $A \,@\, B$?

\item How is the power of a language defined? (Hint: There are two
  rules, one for $\_^0$ and one for $\_^{n+1}$.)

\item Let $A = \{[a], [b], [c], [d]\}$. (1) How many strings
      are in $A^4$? (2) Consider also the case of $A^4$ where one of
      the strings in $A$ is the empty string, for example $A =
      \{[a], [b], [c], []\}$.

\item (1) How many basic regular expressions are there to match
      the string $abcd$? (2) How many if they cannot include
      $\ONE$ and $\ZERO$? (3) How many if they are also not
      allowed to contain stars? (4) How many if they are also
      not allowed to contain $\_ + \_$?

\item When are two regular expressions equivalent? Can you
      think of instances where two regular expressions match
      the same strings, but it is not so obvious that they do?
      For example $a + b$ and $b + a$ do not count\ldots they
      obviously match the same strings, namely $[a]$ and
      $[b]$.

\item What is meant by the notions \emph{evil regular expressions}
      and by \emph{catastrophic backtracking}? 

\item \POSTSCRIPT  
\end{enumerate}

\end{document}

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: t
%%% End: 
