\documentclass[a4paper]{article}
\textwidth 18cm \textheight 26cm \topmargin -3cm
\parindent 0.46in
\headsep 0.2in \oddsidemargin -2cm \evensidemargin 0cm
\hoffset0.8cm \voffset 1.8cm \pagestyle{empty}
\begin{document}

\begin{center}
\textbf{Prevodioci i interpretatori - Januar 2004.}\\
Teorijski deo ispita
\end{center}
\begin{enumerate}
\item
\begin{enumerate}
\item Data je azbuka $\Sigma=\{a_1,\ldots,a_n\}$. Da li je jezik
$\Sigma^*$ kontekst slobodan?

\item Da li je jezik $L=\{a^nb^nc^m, n\geq 1, m\geq 1\}$ kontekst
slobodan?
\end{enumerate}

\item Prevesti gramatiku
\begin{eqnarray*}
A&\rightarrow&AaB|B\\
B&\rightarrow&BbC|C\\
C&\rightarrow&dAd|c
\end{eqnarray*}
u Greibach normalnu formu.


\item \begin{enumerate} \item Konstruisati kona\v cni automat koji
prepoznaje sve one re\v ci nad azbukom $\Sigma=\{0,1\}$ koje
sadr\v ze bar tri pojavljivanja simbola $0$.

\item Konstruisati kona\v cni automat koji prepoznaje sve one re\v
ci nad azbukom $\Sigma=\{0,1\}$ koje sadr\v zi bar tri uzastopna
pojavljivanja simbola $0$

\item Koriste\' ci neki od algoritama za konstrukciju
\textit{razlike} automata i algoritme \textit{minimizacije} i
\textit{determinizacije} ukoliko je potrebno, konstruisati
minimalni deterministi\v cki kona\v cni automat koji prepoznaje
sve one re\v ci nad azbukom $\Sigma=\{0,1\}$ koje sadr\v ze bar 3
pojavljivanja simbola $0$, ali ne sadr\v ze 3 uzastopna
pojavljivanja simbola $0$.

\end{enumerate}

\end{enumerate}



\begin{center}
\textbf{Prevodioci i interpretatori - Januar 2004.}\\
prakti\v cni deo ispita
\end{center}
\begin{enumerate}
\item Fiktivni programski jezik poznaje dva osnovna tipa podataka:
\begin{enumerate}
\item \verb"REAL" - realni brojevi \item \verb"COMPLEX" -
kompleksni brojevi
\end{enumerate}

Nad ovakvim podacima su definisane uobi\v cajene aritmeti\v cke
operacije sabiranja, oduzimanja, mno\v zenja i delje--nja. Nad
kompleksnim brojevima su definisane funkcije \verb"real" i
\verb"imag" koje se koriste za pronala\v zenje relanog tj.
imaginarnog dela datog kompleksnog broja. Kompleksne konstante se
zapisuju na uobi\v cajeni na\v cin tj. u obliku \verb"a+bi" uz
mogu\' cnost skra\' cenja zapisa izostavljanjem nepotrebnih
elemenata (npr. \verb"2.1i", \verb"1.1-2i"). Realni broj \verb"r"
se mo\v ze implicitno konvertovati u kompleksni broj \verb"r+0i".

Datoteka \v cije se ime navodi kao prvi argument komandne linije
sadr\v zi niz deklaracija promenjivih kojima se prilikom
deklaracije mo\v ze odmah i dodeliti vrednost, kao i niz dodela
oblika \verb"promenjiva=izraz;".
\begin{verbatim}
            REAL broj=3.25, rl;
            COMPLEX cmplx=3+2.2i;
            rl=5*broj+imag(2i);
            COMPLEX rez=0;
            rez=(2+i)*real(cmplx)+cmplx/(2-i);
\end{verbatim}
Napisati program koji na standardni izlaz ispisuje kona\v cne
vrednosti svih promenjivih iz date datoteke. Takodje, prijaviti i
sve gre\v ske koje datoteka sadr\v zi tj. sve nedeklarisane ili
vi\v sestruko deklarisane promenjive ili poku\v saje dodele
kompleksnih vrednosti promenjivama realnog tipa.
\end{enumerate}
\end{document}
