Limbajul ALLO este construit pe baza unui set de caractere numit si alfabetul limbajului. Pe baza alfabetului se construiesc( conform unor reguli lexicale ) tokenii sau cuvintele limbajului care sunt in fapt elemente ale multimii numite vocabular al limbajului. Unele cuvinte ale vocabularului sunt deja cunoscute si vor fi utilizate frecvent de catre orice utilizator al limbajului in procesul de scriere modele. Acestea formeaza setul de cuvinte rezervate sau setul de cuvinte cheie cu un rol deosebit in constructia sintactica si semantica a ceea ce numim program sursa sau model sursa. Celelate cuvinte nu sunt cunoscute, ci sunt construite (si utilizate local si temporar) de catre cei ce utilizeaza acest limbaj. Vocabularul, ar fi o multime infinita daca nu s-ar fi impus restrictii de limitare lungime cuvint. Dispunind de alfabet, si eventual de un subset al vocabularului se trece atit la crearea unor noi cuvinte cit si a unor asamblaje complexe din componenta instructiunilor care in final vor putea concura la asamblajul cu cea mai ridicata incarcatura semantica numit program daca apartine unui limbaj de programare sau a unui limbaj specializat pe problema cum este cazul de fata. Construirea programului presupune existenta regulilor sintactice si semantice si respectarea acestora pentru ca programul sa fie in cele din urma un program validat de catre un asamblor,translator,interpretor sau compilator.
Am vazut mai sus o structura globala
a unui program ALLO. Privit numai prin prisma alfabetului un program este
un sir finit de caractere recunoscut astfel de catre translator. Acest
sir poate fi rezultatul unui mixaj a unor fisiere de caractere, mixaj decis
de un fisier principal care face referire la celelalte fisiere sursa secundare
in diverse puncte din secventa principala. Atit punctele cit si cerintele
de mixare sunt recunoscute de catre translatorul ALLO. Dam mai jos alfabetul
sau setul de caractere recunoscut de catre limbajul ALLO:
Clasa | ASCII | Simbol | Descriere | |||
Litere | 065-090
097-122
|
A
- Z
a - z
|
Litere Mari
Litere Mici
|
|||
Cifre | 048-057 | 0 - 9 | Cifre zecimale | |||
Caractere
de control
|
013
010 013,010 |
<CR>
figurativ
<LF> <CR><LF> |
Carriage
Return
Line Feed Sfirsit linie text sursa
|
|||
Caractere
pentru spatiere |
009
032 |
<TAB>
<SP> |
Caracter
de tabulare orizontala echivalat vizual cu unul sau mai multe spatii
Caracterul spatiu
|
|||
Comentarii | 047,042
042,047 |
/*
*/ |
Inceput comentariu
Sfirsit comentariu
|
|||
Caracter
de
legatura in nume |
095 | _ | Caracter
de legatura in nume
formate din entitati separate |
|||
Delimitatori
|
046
034
044 059
|
.
"
, ; |
Punct zecimal
Ghilimele duble utilizate ca
Virgula utilizata ca separator de elemente intr-o lista Sfirsit de instructiune sau de
|
|||
Paranteze
|
040
041
091
093
123
125 |
(
)
[
]
{
} |
Inceput expresie
parantezata sau inceput lista de argumente din apel functie
Inceput expresie parantezata sau inceput lista de argumente din apel functie Semnaleaza inceput : constanta domeniu, lista dimensiuni, specificatie de ciclare FOR/SUM Semnifica sfirsitul celor mentionate deasupra Deschide o secventa de instructiuni sau o lista de valori initiale Inchide elementele mentionate. |
|||
Operatori
Aritmetici
|
043
045 042 047
|
+
- * / |
Plus / Adunare
Minus unar / Scadere Inmultire Impartire |
|||
Operatori Relationali
|
060
061 062 060,061 062,061 060,062 073,078
|
<
= > <= >= <> IN
|
Mai mic strict
Egal cu Mai mare strict Mai mic sau egal Mai mare sau egal Diferit Trebuie sa fie in domeniul de valori mentionat dupa operator |
|||
Operatori
de
definire, conditionare, atribuire valori |
061
058,061 073,083
|
=
:= IS
|
Atribuie
valoare/lista valori
Este prin definitie Are valorile date de; Trebuie sa respecte conditia
|
Observatie.
1. Operatorul IN poate fi scris in orice combinatie de litere Mari/Mici dupa cum doreste modelatorul. Aceasta este valabila si pentru operatorul IS dar si pentru orice cuvint rezervat din a caror multime fac parte si acesti operatori.
2. Diferenta dintre operatorul := si operatorul IS consta in aceea ca primul se refera la definitia unei celule componenta a unui masiv (cu rol de nume functie obiectiv, nume restrictie) pe cind IS anunta inceputul definitiei unei variabile auxiliare de tip masiv sau a conditiei de validare a unei variabile auxiliare( scalara sau de tip masiv), anunta conditia de bounds a unei variabile model( scalara sau de tip masiv), si in cele din urma anunta inceputul corpului de definire a unei functii obiectiv sau restrictii( scalara sau de tip masiv.
3. Multimea formata
din caracterele <CR> <SP> <TAB> , : ; { } [ ] ( ) + - * / <
= > este o multime speciala ale carei elemente semnaleaza inceputul sau
sfirsitul unor cuvinte/tokeni recunoscuti de analizorul lexical al translatorului
ALLO. Tokenii respectivi fac parte din vocabularul limbajului numai daca
respecta regulile de constructie impuse de limbaj.