Změny
Program je tvořen posloupností příkazů oddělených středníkem. Příkazy jsou zapsány ve volném formátu, poznámky, mezery, tabulátory a konce řádků slouží pouze jako oddělovače a na význam programu nemají vliv. Poznámky jsou omezeny znakem apostrof a koncem řádku. V argumentech výrazů se jako operandy mohou vyskytovat celočíselné desítkové literály, reálné literály ve formátu podle jazyka C a řetězcové literály v uvozovkách (bez escape sekvencí). Klíčová slova jsou rezervovaná. V identifikátorech a klíčových slovech se nerozlišují velká a malá písmena, překladač musí brát v úvahu alespoň prvních 64 znaků identifikátoru.
Názvy proměnných jsou tvořeny identifikátorem. Každá proměnná musí být před použitím deklarovaná. Po deklaraci má proměnná podle svého typu hodnotu 0, 0.0, "", resp. FALSE.
Jsou definovány následující příkazy:
Výrazy mohou jako operandy obsahovat celočíselné, reálné a řetězcové literály a proměnné. Proměnné ve výrazu musí mít definovánu hodnotu. Operandy musí být typově kompatibilní, podle potřeby se provádí automatická konverze celočíselných operandů na reálné. Jsou definovány následující operátory (písmena I, R, B, S vyjadřují datové typy INTEGER, REAL, BOOLEAN a STRING):
Popis | Operátor | Signatura |
---|---|---|
unární operátor pro změnu znaménka | '-' | I->I, R->R |
binární aritmetické operátory | '+','-','*' | IxI->I, RxR->R |
'/' | RxR->R | |
DIV, MOD | IxI->I | |
operátor konkatenace | '+' | SxS->S |
relační operátory | '<','<=','>','>=','=','<>' | TxT->B (T = I,R,S,B) |
logické operátory | AND, OR | BxB->B |
NOT | B->B | |
ternární operátor | IF podmínka THEN výraz ELSE výraz | BxTxT->T (T = I,R,S,B) |
Typy T v relačních operátorech a ternárním operátoru IF-THEN-ELSE musí být v rámci jednoho operátoru identické.
Operátory jsou zleva asociativní, priorita operátorů je následující:
Ve výrazech se dále mohou vyskytovat konstanty TRUE a FALSE typu BOOLEAN (pro relační operátory platí FALSE < TRUE) a následující standardní funkce:
Tým 3 studentů
Řešení musí odpovídat úplné specifikaci jazyka.
Tým 2 studentů
Řešení nemusí obsahovat příkazy IF a WHILE (ternární operátor
IF-THEN-ELSE implementován být musí).
Jednotlivci
Řešení nemusí obsahovat příkazy IF a WHILE (ternární operátor
IF-THEN-ELSE implementován být musí) a standardní funkce.