Le compilateur on-calc est en grande partie écrit, et avant d'attaquer le plus important, je voudrais savoir ce que vous pensez de la syntaxe.
Le code qui suit ne fait pas grand chose en pratique, mais permet d'avoir un aperçu de la grammaire et de la façon de penser en Azur.
Notez que les variables (tous les identificateurs en général) peuvent contenir des lettres accentuées, c'est une particularité parmi plein d'autres du langage.
void Ca_sert_à_rien[] : Bon, pas besoin de commentaire... { [ : les déclarations se font entre crochets 64 long+ Cellules; : Cellules est un tableau de 64 cases, de type unsigned long (long+, le '+' signifie non-signé) Long+ Expr, j; : pareil : 32 bits non-signé word- k; : 16 bits signé (le '-' signifie que c'est signé), correspopnd au type int en C ] Cellules[0]= j= Expr= malloc(64*34); : Expr pointe sur un bloc de 64*34 octets. j aussi. La première case de Cellules aussi for k=1 to k==63 step k+=1 do : for(i=1; i!=63; i++) en C / for i,1,63 en Basic Cellules[k]= j+= 34; : Chaque case du tableau Cellules contient l'adresse d'une zone (34 octets) du bloc créé tout à l'heure }La boucle for peut se présenter d'une manière beaucoup plus élégante

for k= 1 to k==63 step k+=1 do { Cellules[k]= j+= 34; }
(après incrémentation de 4) }
Optimisée, la fonction donne :void Ca_sert_à_rien[] { [ 64 long+ Cellules; Long+ CellsP, Expr, ExprP, Fin; ] ExprP= (Expr= malloc(64*34)) - 34; Fin= (CellsP= @Cellules - 4) + 65*4; : @Cellules renvoie l'adresse du tableau Cellules : c'est l'équivalent du '&' en C while CellsP<Fin do (CellsP+= 4)?= ExprP+= 34; : Le point d'interrogation c'est l'équivalent de '*' en C : on veut accéder à l'endroit où pointe CellsP
1) Avez-vous compris facilement ce que réalise ce code ?
2) Si oui, appréciez-vous ce langage ?
3) Pourquoi ? (argumentez un peu, merci)
4) Après avoir répondu aux 3 précédentes, vous pouvez m'interroger aussi

[edit]Edité par Thibaut le 19-09-2001 à 19:36:13[/edit]