\section{Native XDS Modula 2 -- kratko uputstvo}


Ovo uputstvo ukratko pokriva kako se može nabaviti XDS Modula 2 za Windows
sistem, njenu instalaciju, te kako napraviti i pokretnuti jednostavan program.

\subsection*{Dobavljanje instalacije}


Native XDS Modula 2 se može besplatno skinuti sa sajta proizvođača,
tačnije na adresi:\\
\url{http://www.excelsior-usa.com/xdsdl.html}

Prvo se prikazuje ugovor o korišćenju koji na dnu treba potvrditi da ste
razumeli i da ćete ga se pridržavati.

Na stranici koja se potom otvara je potrebno odabrati ``XDS 2.6 beta 2
for Windows'' i snimiti je na računar.

\subsection*{Instalacija okruženja}

Osnovno okruženje (xds-x86...) se instalira pokretanjem prethodno pomenute
 instalacione arhive. 

\emph{Korisnicima Windows-a 7 preporučujemo da pokrenu instalacione
  pakete pomoću opcije ``Run as administrator'' do koje se stiže desnim
  klikom miša.}

Pretpostavićemo u daljem tekstu da je program instaliran u
\kod{C:/XDS/}

\subsection*{Pokretanje okruženja}

Po uspešnoj instalaciji bi trebalo da postoji ikonica na desktopu, kao
i grupa sa programom u start meniju.

Ukoliko iz bilo kakvog razloga ne postoje odgovarajuće prečice,
okruženje se može pokrenuti uz pomoć izvršnog fajla
\kod{C:/XDS/BIN/xds.exe} (ako je instalirano na podrazumevanoj
lokaciji).

\subsection*{Prvi projekat}

Da bismo mogli da pišemo i pokrećemo svoj program, potrebno je prvo
napraviti projekat za njega, što se radi na sledeći način:

\begin{itemize}

\item 
 Iz menija se odabere Project->New.
\item U dijalogu se klikne na gornje dugme ``Browse'', odabere se putanja gde
  će se kreirati projekat i ukuca se ime novog projekta.

\item U drugom polju ``Template'' ne treba da piše ništa. Ukoliko
  postoji neki tekst, obrisati ga.

\item Kliknuti na ``OK''

\item Iskočiće dijalog na kome piše da ne postoji fajl za editovanje,
  kliknuti na ``OK'' da se on napravi.

\item Pojavljuje se forma za kucanje programa, ukucati (na primer):

\begin{minipage}{\columnwidth}
\begin{lstlisting}[style=codeblock]
  MODULE Hello;
  FROM InOut IMPORT WriteString,WriteLn;
  BEGIN
    WriteString("Hello World");
    WriteLn;
  END Hello.
\end{lstlisting} 
\end{minipage}

\item Program se može pokrenuti na različite načine, pri čemu se
  automatski prevodi:

  \begin{itemize}

  \item Klik na ``Run'' ikonicu u toolbaru (plavi čovečuljak koji trči)

  \item Meni Debug->Run

  \item Prečica Ctrl+F9 na tastaturi

  \end{itemize}

\item Ako je sve u redu sa programom, treba da se pojavi novi terminal
  u kome se ispisuje rezultat izvršavanja programa, u našem slučaju
  jednostavna pozdravna poruka.
\end{itemize}  

Naravno moguće je i samo prevesti (kompajlirati) program, tako da se
samo prikažu greške (ako ih ima) i bez pokretanja programa:
\begin{itemize}
\item Klik na ``Compile'' ikonicu u toolbaru
\item Meni Tools->Compile
\item Prečica F9 na tastaturi
\end{itemize}

Ukoliko u programu postoje greške, on neće biti pokrenut, već će se
dobiti lista grešaka u donjem delu prozora. Na primer ako obrišemo ``S''
u četvrtom redu i probamo da pokrenemo program, taj red će biti
označen svetlo plavom bojom i dobićemo poruku:
 
\kod{- Error in pro1.mod [4:5]: Undeclared identifier "Writeting"}

Što znači da u četvrtom redu, kod petog karatkera postoji problem, da
identifikator nije deklarisan, što najčešće znači da ga nismo uvezli,
ili, kao u našem slučaju, da smo napravili grešku u kucanju.

Stvar na koju isto treba obratiti pažnju je da se nekad greška
prijavljue nešto kasnije u tekstu nego što je napravljena. Na primer,
ako obrišemo ``;'' na kraju četvrtog reda i probamo da pokrenemo
program, peti red će biti označen svetlo plavom bojom i dobićemo
poruku:

\kod{- Error in pro1.mod [5:5]: Expected symbol ";" }

Ovo se desilo jer nedostaje tačka zarez na kraju četvrtog reda, ali će
kompajler probati da je traži i dalje, pa će tek na početku petog reda
prijaviti grešku.

U spisku se takođe pojavljuje i upozorenje (Warning) o tome da se
uvezena komanda WriteString ne koristi nigde u programu. Često se
upozorenja mogu ignorisati, a pažnju uglavnom treba obraćati na
greške, odnosno poruke koje počinju sa ``Error''.

Takođe se često dešava da su druge prijavljene greške posledica prve,
te je poželjno ponovo kompajlirati (ili pokretati) program posle svake
ispravljene greške.

\paragraph{Napomena o template-ovima pri kreiranju projekta:} 
Moguće je namestiti da u dijalogu za novi projekat drugo polje ``Template''
 uvek bude prazno. Potrebno je u tom istom dijalogu kliknuti na
 ``Configure'', a potom isprazniti polje ``default template''.

\subsection{Mogući problemi}

\subsubsection*{Nedostajući sistemski moduli}

Verzije pre 2.6 nisu imale uključene u glavni paket sve module koji se
koriste u okviru kursa, i bilo je neophodno da se dodatno instalira i
``Top Speed Compatibility Pack'' (tscp-x86...). Bez njega je kompajler
prijavljivao da ne postoje neki moduli - najčešće je problem bio da
nedostaje \kod{FIO} modul.

\subsubsection*{Problemi u pokretanju - nemoguće naći exe}

Ako pri pokušaju kompajliranja/pokretanja programa kompajler prijavi
da ne može da nađe exe i pri tome prijavljuje kraću putanju od one
koja je stvarno u pitanju, obično se radi o tome da je postojao razmak
u okviru putanje do modula. Npr ``C:\textbackslash Moj prvi program''
će prouzrokovati probleme, a kompajler će prijaviti da ne može da nađe
``C:\textbackslash Moj''. 

Ovo je nažalost problem okruženja i dok se ne ispravi u nekoj budućoj
verziji ne može se zaobići, tako da je jedino rešenje premestiti
fajlove, odnosno ako je moguće preimenovati problematične foldere.
