gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
skripta verzija 14c
[spa1skripta-public.git] / xds-komandna-linija.tex
1 \section{XDS modula 2 - rad iz komandne linije}
3 Ovo uputstvu ukratko pokriva kako se XDS kompajler može podesiti da se
4 koristi iz komandne linije, na Windows, ali i *nix sistemima.
6 Predpostavlja se da je XDS Modula 2 već instalirana (konsultovati
7 odvojeno uputstvo ako nije). Takođe će se predpostavljati da je
8 instalirana na podrazumevanu lokaciju ``c:/xds/''. Ako to nije slučaj,
9 potrebno je zameniti putanje iz upustva sa stvarnom putanjom.
11 \subsection{Prednosti (ili ``Zašto ovo raditi?'')}
13 Skoro svaki jezik se može kompajlirati iz komandne linije, i onda se
14 rad sa različitim jezicima svodi na rad u svom omiljenom editoru
15 teksta (npr Notepad++, jEdit, joe, emacs...), koji je prilagođen
16 sopstvenim zahtevima i pozivanjem odgovarajućeg kompajlera iz komandne
17 linije.
19 U konkretnom slučaju XDS kompajlera, ovim se takođe oslobađa potrebe
20 kreiranja projekata koji su neophodni kad se koristi XDS windows
21 okruženje - bilo koji pojedinačni modul se može direktno kompajlirati,
22 fajlovi se mogu premeštati po folderima, menjati imena foldera i tako
23 dalje.
25 Još jedna prednost za studente PMF-a koji polažu ispite u okruženju
26 Svetovid je što u njemu dobijaju potpuno iste poruke od kompajlera kao
27 što se dobijaju izvršavanjem kompajliranja iz komandne linije.
29 \subsection{Podešavanje sistemske putanje (ili "OK, odakle početi?")}
31 Da bi kompajler mogao da se poziva iz bilo kog foldera na računaru, a
32 ne samo iz ``C:/xds/bin'', potrebno je dodati folder kompajlera u
33 sistemsku putanju (tj spisak foldera koji se pretražuju kada korisnik
34 pokuša da pokrene neku komandu). Na Windows sistemima se ova
35 promenljiva naziva ``PATH'', a trenutnom sadržaju se može pristupiti
36 preko \%PATH\%.
38 Putanja se može dodati privremeno komandom:
40 \begin{codeblock}
41 path = %PATH%;c:/xds/bin
42 \end{codeblock}
45 ovim se proširuje spisak putanja u trenutom komandom prozoru, odnosno
46 važiće samo u trenutno otvorenom cmd promptu i to dok se isti ne
47 zatvori.
49 Putanja se može i trajno dodati na nekoliko načina. Na win xp, Vista i
50 7 sistemima se to može uraditi na sledeći način: otvori se ``computer
51 properties'' (desni klik na "My Computer"), odabere se jezičak
52 "advanced", klikne na dugme "Environment variables", u prozoru koji se
53 otvori odabere se ``PATH'' i klikne na dugme "edit", nakon čega se na
54 postojeću vrednost doda ``c:$\backslash$xds$\backslash$bin''. Bitno je
55 da se ne obriše postojeća vrednost, kao i da se novi dodatak odvoji sa
56 ``;'' od postojećih.
58 \subsection{Kompajliranje programa}
60 Nakon što je podešena sistemska putanja, kompajleru se pristupa komandom "xc". Poziv bez parametara će dati ispis mogućnosti. Tipična upotreba za kreiranje izvršne verzije programa sadržanu u fajlu "ime.MOD":
62 \begin{codeblock}
63 xc =make =all ime
64 \end{codeblock}
67 Ovim pozivom će se rekompajlirati i svi ostali potrebni moduli koji se koriste u okviru programa.
69 Ako postoje greške u programu izvršna verzija neće biti kreirana. Ako već postoji exe napravljen nekim prethodnim kompajliranjem, on NEĆE biti obrisan.
71 Kompajler greške prijavljuje u sledećem formatu:
73 \begin{codeblock}
74 * [zad.mod 125.12 E020] * undeclared identifier "RStr" IO.$RStr(ime);
75 \end{codeblock}
76 % $ nepotrebni komentar zbog sintaksnog bojenja u nekim editorima
79 Odnosno ime fajla, red greške i kolona razdvojeni tačkom i kod greške
80 koji počinje sa ``E''. Sam kod greške nije previše bitan, pošto u
81 sledećem redu sledi objašnjenje. Ono što jeste bitno je da se u istom
82 formatu prikazuju i upozorenja kompajlera čiji kodovi počinu sa ``W'' i
83 po ovome se najlakše razlikuju.
85 Takođe treba obratiti pažnju na to da nakon objašnjenja greške sledi i
86 ispis samog reda u kome je greška u koji je dodatno ubačen karakter
87 ``\textbf{\$}'' koji označava tačno nesto greške. Ako se on nalazi na
88 početku reda često je u pitanju greška iz prethodnog reda (npr
89 nedostaje ``;''). Konkretna prikazana greška je pogrešno napisano
90 ``RdStr''.
92 \subsection{Linux i drugi slobodni sistemi (ili "Who needs windows anyway?")}
94 Korisnici Linux (i srodnih) sistema takođe mogu koristiti XDS Modulu
95 2, i to i okruženje i kompajler iz komandne linije.
97 Prvo rešenje je korišćenje Linux verzije XDS kompajlera. Međutim ona
98 se ponaša malo drugačije, nema vizuelno okruženje i, što je
99 najznačajnije za studente PMFa, nema Top Speed Compatibility Pack koji se
100 koristi na vežbama.
102 Ono što je najbolje rešenje u ovoj situaciji je koriščenje sloja za
103 emuliranje Windowsa - "Wine".
105 Potrebno je pokrenuti instalaciju XDS paketa, isto kao i pod windowsom
106 (ili alternativno preuziti strukturu foldera iz windowsa i prekopirati
107 u Wine-ov ``C'' disk).
109 Ovako instaliran XDS se može koristiti i kao normalno programsko
110 okruženje koje se koristi pod Windowsom.
112 Ono što je inače bila poenta ovog uputsva u celini je bilo korišćenje
113 iz komandne linije.
115 Da bi kompajler radio u bilo kom folderu, potrebno je namestiti PATH
116 pod Wine-om. Treba obratiti pažnju da to NIJE ista PATH variabla kao
117 ona od Linux sistema. Ovo se može uraditi na sledeći
118 način\footnote{Link: uputstvo za sistemske promenljive na
119 zvaničnom sajtu softvera Wine:\\
120 \href{http://www.winehq.org/docs/wineusr-guide/environment-variables}{http://www.winehq.org/docs/wineusr-guide/environment-variables}}:
121 \begin{itemize}
122 \item Otvori se regedit pod wine-om (wine regedit)
123 \item nađe se ključ HKEY\_CURRENT\_USER/Environment
124 \item promeni se polje ``path'' tako da uključuje i xds bin folder. obratiti pažnju da je potrebno ubaciti dodatni "$\backslash$", pa će krajnja vrednost izgledati ovako nekako: \\
125 \textbf{c:$\backslash$$\backslash$windows;c:$\backslash$$\backslash$windows$\backslash$$\backslash$system;c:$\backslash$$\backslash$xds$\backslash$$\backslash$bin}
126 \end{itemize}
129 Nakon ovoga se u bilo kom folderu može vršiti poziv
131 \begin{codeblock}
132 wine xc =make =all zad
133 \end{codeblock}
136 predpostavljajući naravno da u folderu postoji ``zad.mod'' i da je u
137 pitanju ispravan programski modul, biće kreiran ``zad.exe'' koji se
138 onda može pokrenuti sa
140 \begin{codeblock}
141 wine zad
142 \end{codeblock}
145 Jednostavni programi koji rade sa tekstualnim ulazom i izlazom će
146 najčešće raditi bez problema. U zavisnosti od verzija programa nekad
147 se dešava da kada ovako pokrenut program čeka na unos sa tastature
148 pravi veliko zauzeće procesora.
150 Postoji i opcija da se otvori novi terminal prozor koji vrši kompletnu
151 emulaciju komandnog promta operativnog sistema DOS 6. Npr:
153 \begin{codeblock}
154 wineconsole zad
155 \end{codeblock}
158 Ovako pokrenut program će se ponašati identično kao na Windowsu i neće
159 nepotrebno povećavati zauzeće procesora. Međutim odmah nakon završetka
160 rada pokrenute komande (tj programa zad u primeru) novi prozor će se
161 zatvoriti, što je problem ako je trebalo pročitati izlaz
162 programa. Rešenje za ovo je otvaranje terminala u kome se izvrašava
163 cmd, tj klasični dos promt:
165 \begin{codeblock}
166 wineconsole cmd
167 \end{codeblock}
170 U ovako otvorenom promtu se mogu naravno izvršavati sve komande, iako
171 će interakcija biti nešto drugačija od naviknute u modernim konzolama
172 (tipa ispisivanja čudnih kodova umesto kretanja okolo kad se
173 pritiskaju strelice).
175 %%% Local Variables:
176 %%% mode: latex
177 %%% TeX-master: "skripta-spa1-jk"
178 %%% End:
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner