Setul de caractere ALLO

    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 
delimitator de sir

Virgula utilizata ca separator de elemente intr-o lista

Sfirsit de instructiune sau de
declaratie
 


 
 
 
 
 
 
 

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.