Zadatak nam je bio osmisliti programski jezik koji zadovoljava neke operacije i karakteristike koje inače očekujemo da jezik podržava. Tako naš NL jezik podržava 2 tipa podataka, broj (BROJ) i string (STRING), pri tome se strigovi zadaju unutar dvostrukih navodnika (" "), dok je broj samo niz znamenki bez razmaka. Nazivi varijabli (IME) su također strigovi, ali ne pisani unutar " ", nego u smislu da nazivi varijabli ne smiju početi brojem, već mora početi slovom. Također želimo da NL prepoznaje i obavlja i neke naredbe, pa kako bi NL neki izraz prepoznao kao naredbu on mora završiti sa ; (TOČKAZAREZ).
Primjer. x = 1, y = "1"; x i y su varijable s time da je varijabli x pridružena vrijednost 1 tipa broj, a y vrijednsot1 tipa string.
U jeziku je još definirana i klasa BREAK koja služi za izlazak iz petlje.
- = (
PRIDRUŽIVANJE) - kako bismo svaku varijablu mogli inicijalizirati nekom vrijednošću ili joj kasnije pridružiti neku drugu vrijednost - +=, -= (
PJEDNKO,MIJEDNAKO) - kako bismo mogli povećavati/smanjiti vrijednost nekog ranije inicijaliziranog izraza za određenu vrijednost - ++ , - - (
PPLUS,MMINUS) - služi nam za (post/pred)inkrement/dekrement, tj. povećava/smanjuje vrijednost varijable za 1
Kako bismo išta mogli raditi s varijablama i vrijednostima koje unesemo, trebaju nam neke specifične operacije za svaki od podržanih tipova podataka.
- + (
PLUS) - - (
MINUS) - * (
PUTA) - / (
KROZ)
- < (
MANJE), <= (MJEDNAKO) - > (
VEĆE), => (VJEDNAKO) - == (
JEDNAKO), != (NJEDNAKO)
- pretvaranje broja u string (
TOSTRING)
toInt(varijabla, broj);
ime = broj;
toInt(varijabla, ime);Kako su podržani i negativni brojevi, treba naglasiti da ako je negativan broj prvi u izrazu onda nisu nužne zagrade, ali ako je ispred njega znak operacije, potrebne su zagrade.
Primjer. x = -2 * (-3);
- + (
PLUS) - kod stringa ova operacija predstavlja konkatenaciju
- == (
JEDNAKO)
- pretvaranje stringa u broj (
TOINT)
toString(varijabla, broj);
ime = broj;
toString(varijabla, ime);Osnovne operacije ne prihvaćaju mješovite tipove, npr. BROJ+STRING, ali ako želimo takve izraze prvo operandi moraju pretvoriti u isti tip, a pri tome nam pomažu funkcije TOSTRING i TOINT.
Operacije usporedbe vraćaju 1 (ako je izraz istinit) i 0 (ako je izraz lažan).
- if (
IF)
if(uvjet)
kod- if-else (
IF,ELSE)
if(uvjet)
kod
else
kod- for (
FOR)
for(i=broj1;i<broj2;i++)
kodPri tome gornja ograda može biti:
- i<broj2
- i<=broj2
- i>broj2
- i>=broj2 Pri tome je broj2 broj koji je veći ili jednak 0.
Dok vrijednost varijable i možemo mijenjati sa ++ (i++,++i), --(i--,--i), +=, -=.
- while (
WHILE)
while(uvjet)
kod- do-while (
DO,WHILE)
do
kod
while;Primjetimo, kod može biti jedna naredba ili više njih, a u slučaju da ih je više sve naredbe se nalaze u vitičastim zagradama, (VOTV,VZATV). Također, uvjet, se odnosi isključivo na jedan uvjet, ne na više njih.
- unos (
CIN) - omogućava korisniku unos brojeva i stringova s tipkovnice - ispis (
COUT) - NL ima mogućnost ispisa broja, stringa, te vrijednosti varijabli
NL prepoznaje 2 vrste komentara:
- linijski (
//) - višelinijski (
/**/)
Matea Čotić, Manuela Pleša, Katarina Šupe