hws/hw01.tex
author Christian Urban <urbanc@in.tum.de>
Tue, 23 Aug 2016 15:38:20 +0200
changeset 416 357c395ae838
parent 403 564f7584eff1
child 438 84608b4b3578
permissions -rw-r--r--
updated
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
3a5e09a2ae54 initial comit
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     1
\documentclass{article}
249
377c59df7297 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 227
diff changeset
     2
\usepackage{../style}
0
3a5e09a2ae54 initial comit
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     3
3a5e09a2ae54 initial comit
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     4
\begin{document}
3a5e09a2ae54 initial comit
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     5
3a5e09a2ae54 initial comit
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     6
\section*{Homework 1}
3a5e09a2ae54 initial comit
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     7
331
a2c18456c6b7 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 294
diff changeset
     8
\HEADER
a2c18456c6b7 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 294
diff changeset
     9
0
3a5e09a2ae54 initial comit
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    10
\begin{enumerate}
249
377c59df7297 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 227
diff changeset
    11
401
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 394
diff changeset
    12
\item {\bf (Optional)} If you want to run the code presented
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 394
diff changeset
    13
      in the lectures, install the Scala programming language
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 394
diff changeset
    14
      available (for free) from
249
377c59df7297 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 227
diff changeset
    15
0
3a5e09a2ae54 initial comit
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    16
\begin{center}
3a5e09a2ae54 initial comit
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    17
\url{http://www.scala-lang.org}
3a5e09a2ae54 initial comit
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    18
\end{center}
3a5e09a2ae54 initial comit
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    19
401
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 394
diff changeset
    20
      If you want to follow the code I present during the
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 394
diff changeset
    21
      lectures, read the handout about Scala.
0
3a5e09a2ae54 initial comit
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    22
401
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 394
diff changeset
    23
\item {\bf (Optional)} Have a look at the crawler programs.
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 394
diff changeset
    24
      Can you find a usage for them in your daily programming
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 394
diff changeset
    25
      life? Can you improve them? (For example in cases there
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 394
diff changeset
    26
      are links that appear on different recursion levels, the
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 394
diff changeset
    27
      crawlers visit such web-pages several times. Can this be
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 394
diff changeset
    28
      avoided?)
104
ffde837b1db1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 102
diff changeset
    29
401
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 394
diff changeset
    30
\item Read the handout of the first lecture and the handout
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 394
diff changeset
    31
      about notation. Make sure you understand the concepts of
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 394
diff changeset
    32
      strings and languages. In the context of the AFL-course,
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 394
diff changeset
    33
      what is meant by the term \emph{language}?
9
Christian Urban <urbanc@in.tum.de>
parents: 0
diff changeset
    34
355
a259eec25156 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 331
diff changeset
    35
\item Give the definition for regular expressions. What is the
a259eec25156 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 331
diff changeset
    36
      meaning of a regular expression? (Hint: The meaning is
a259eec25156 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 331
diff changeset
    37
      defined recursively.)
0
3a5e09a2ae54 initial comit
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    38
355
a259eec25156 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 331
diff changeset
    39
\item Assume the concatenation operation of two strings is
a259eec25156 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 331
diff changeset
    40
      written as $s_1 @ s_2$. Define the operation of
a259eec25156 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 331
diff changeset
    41
      \emph{concatenating} two sets of strings. This operation
394
2f9fe225ecc8 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 355
diff changeset
    42
      is also written as $\_ \,@\, \_$. According to 
2f9fe225ecc8 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 355
diff changeset
    43
      this definition, what is $A \,@\, \{\}$ equal to?
0
3a5e09a2ae54 initial comit
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    44
355
a259eec25156 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 331
diff changeset
    45
\item Assume a set $A$ contains 4 strings and a set $B$
a259eec25156 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 331
diff changeset
    46
      contains 7 strings. None of the strings is the empty
a259eec25156 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 331
diff changeset
    47
      string. How many strings are in $A \,@\, B$?
249
377c59df7297 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 227
diff changeset
    48
267
a1544b804d1e updated homeworks
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 258
diff changeset
    49
\item How is the power of a language defined? (Hint: There are two
a1544b804d1e updated homeworks
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 258
diff changeset
    50
  rules, one for $\_^0$ and one for $\_^{n+1}$.)
109
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 104
diff changeset
    51
355
a259eec25156 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 331
diff changeset
    52
\item Let $A = \{[a], [b], [c], [d]\}$. (1) How many strings
a259eec25156 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 331
diff changeset
    53
      are in $A^4$? (2) Consider the case of $A^4$ where one of
a259eec25156 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 331
diff changeset
    54
      the strings in $A$ is the empty string, for example $A =
a259eec25156 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 331
diff changeset
    55
      \{[a], [b], [c], []\}$.
293
ca349cfe3474 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 267
diff changeset
    56
355
a259eec25156 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 331
diff changeset
    57
\item How many basic regular expressions are there to match
a259eec25156 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 331
diff changeset
    58
      the string $abcd$? (ii) How many if they cannot include
401
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 394
diff changeset
    59
      $\ONE$ and $\ZERO$? (iii) How many if they are also not
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 394
diff changeset
    60
      allowed to contain stars? (iv) How many if they are also
5d85dc9779b1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 394
diff changeset
    61
      not allowed to contain $\_ + \_$?
0
3a5e09a2ae54 initial comit
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    62
355
a259eec25156 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 331
diff changeset
    63
\item When are two regular expressions equivalent? Can you
a259eec25156 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 331
diff changeset
    64
      think of instances where two regular expressions match
a259eec25156 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 331
diff changeset
    65
      the same strings, but it is not so obvious that they do?
a259eec25156 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 331
diff changeset
    66
      For example $a + b$ and $b + a$ do not count\ldots they
a259eec25156 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 331
diff changeset
    67
      obviously match the same strings, namely $[a]$ and
a259eec25156 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 331
diff changeset
    68
      $[b]$.
403
564f7584eff1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 401
diff changeset
    69
416
357c395ae838 updated
Christian Urban <urbanc@in.tum.de>
parents: 403
diff changeset
    70
\item What is meant by the notions \emph{evil regular expressions}
357c395ae838 updated
Christian Urban <urbanc@in.tum.de>
parents: 403
diff changeset
    71
      and \emph{catastrophic backtracking}? 
403
564f7584eff1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 401
diff changeset
    72
564f7584eff1 updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents: 401
diff changeset
    73
\item \POSTSCRIPT  
0
3a5e09a2ae54 initial comit
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    74
\end{enumerate}
3a5e09a2ae54 initial comit
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    75
3a5e09a2ae54 initial comit
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    76
\end{document}
3a5e09a2ae54 initial comit
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    77
3a5e09a2ae54 initial comit
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    78
%%% Local Variables: 
3a5e09a2ae54 initial comit
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    79
%%% mode: latex
3a5e09a2ae54 initial comit
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    80
%%% TeX-master: t
3a5e09a2ae54 initial comit
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    81
%%% End: