\documentclass[a4paper]{article}
\setlength{\oddsidemargin}{-1cm} \setlength{\topmargin}{-3cm}
\setlength{\textwidth}{18cm} \setlength{\textheight}{26cm}
\pagestyle{empty}

\def\DJ{\leavevmode\setbox0=\hbox{D}\kern0pt
 \rlap{\kern.04em\raise.188\ht0\hbox{-}}D}
\def\dj{\leavevmode\setbox0=\hbox{d}\kern0pt
 \rlap{\kern.215em\raise.46\ht0\hbox{-}}d}

\usepackage{amssymb}
\usepackage{comment}
\usepackage{color}

\begin{document}
\begin{small}

\begin{center}
\textbf{Prevodioci i interpretatori - decembar 2007. - prakti\v
cni deo ispita}
\end{center}
\begin{enumerate}
\item Napisati perl skript koji automatski generi\v se mapu web
sajta. Sve datoteke od kojih se web sajt sastoji su sme\v stene u
direktorijum \v cije se ime navodi kao argument komandne linije
skripta. Polazna stranica sajta je \texttt{index.html}. Mapa se
prikazuje u obliku stabla tako \v sto se svakoj stranici pridru\v ze
oznake linkova koji se u njoj nalaze. Prepostaviti da su svi linkovi
lokalni. Ukoliko neki link vodi ka stranici koja je ve\' c obra\dj ena,
on se navodi u mapi, ali se ta stranica dalje ne obra\dj uje. Npr.

\begin{verbatim}
Home (index.html)
|-- Programiranje (programiranje.html)
  |-- C (c.html)
  |-- Java (java.html)
  |-- Pocetna (index.html)
|-- Zabava
  |-- Muzika (muzika.html)
  |-- Film (film.html)
\end{verbatim}

\item Napisati interpretator za mali jezik koji podse\' ca na programski jezik {\sc python}.
Jezik podr\v zava rad sa celim brojevima. Mogu\' ce je istovremeno dodeliti vrednosti nekolicini
promenljivih u obliku \texttt{x1, x2, ..., xn = e1, e2, ..., en}. Uslovni iskazi se 
zadaju u obliku \texttt{if uslov:} za kojim sledi telo uslova. Telo uslova mora da bude
uvu\v ceno tabulatorom. Istinitosne vrednosti se tuma\v ce na isti na\v cin kao u C-u. Jezik
dopu\v sta i petlju oblika \texttt{while uslov:}, pri \v cemu telo petlje mora da bude
tabulatorom uvu\v ceno. Funkcije se defini\v su sa \texttt{def ime\_fje(arg1, ..., argn):}, 
pri \v cemu telo funkcije mora da bude uvu\v ceno tabulatorom. Komentarom se smatra sve
od karaktera \verb"#" do kraja linije. Naredba \verb"print" vr\v si ispis niske odnosno
broja.

\begin{enumerate}
\item Implementirati izra\v cunavanje izraza i vi\v sestruku dodelu.
\begin{verbatim}
>>> x, y = 1, 2 + 3*5
>>> x
1
>>> y
17
\end{verbatim}

\item Implementirati uslovne iskaze
\begin{verbatim}
>>> the_world_is_flat = 1
>>> if the_world_is_flat:
...     print "Be careful not to fall off!"
...
\end{verbatim}

\item Implementirati iterativne iskaze
\begin{verbatim}
>>> a, b = 0, 1
>>> while b < 1000:
...     print b,
...     a, b = b, a+b
...
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
\end{verbatim}

\item Implementirati definisanje i pozivanje funkcija
\begin{verbatim}
>>> def fib(n):    # Ispisivanje Fibona\v cijevog niza do n
...     a, b = 0, 1
...     while b < n:
...         print b,
...         a, b = b, a+b
...
>>> # Poziv funkcije
... fib(2000)
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
\end{verbatim}
\end{enumerate}
\end{enumerate}
\end{small}
\end{document}
