Une Syntaxe Claire

Syntaxe de C++

for(int x = 0; x < 10; x++)
{
   printf("%d\n", x);
}

Syntaxe de Scriptol

for int x in 0 .. 9 print x

Scriptol n'a pas besoin de point-virgule à la fin des instructions. La fin de ligne est aussi une fin d'instruction sauf si plusieurs instructions sont sur une même ligne, auquel cas on les sépare par un point-virgule. Si une instruction dépasse la ligne, le compilateur sait le reconnaitre.

Conception objective

Au contraire de C qui fut conçu en fonction des limitations matérielles, de Perl qui s'est ajouté des possibilités jour après jour, et autres langages qui dépendent de la fantaisie de leur auteur, Scriptol applique des règles objectives, et est proche de la syntaxe la plus utilisée au monde, celle de xml. Xml est balisé et comme C à une syntaxe sur une ligne. Scriptol à une syntaxe sur une ligne (voir ci-dessus) et est balisé:

for
  ...
/for

Opérateurs universels

Scriptol n'utilise pas un opérateur pour des usages différents, mais un opérateur peut avoir des usages similaires dans des cas différents.

Pas exemple, l'opérateur d'intervalle " .. " est utilisé:
- comme intervalle dans la boucle for (voir plus haut).
- comme intervalle de tableau ou texte (voir tableau).
- comme intervalle dans une expression:

if x in 0 .. 9
   print
"x dans l'intervalle"
/if

Les types du monde réel

C et Pascal dans les années 70 ont inventés des types correspondant au matériel: char, long, short, char *, float, etc...

Scriptol utilise des types correspondant au monde réel: text, number, integer, natural, real, array, dict, dir, etc...

Lisibilité

Un bloc de code C, compliqué et illisible...

int x[] = { 1, 2, 3, 4 };
int i;
for(i = 0; i < 4; i++)
{
  if(x[i] == i) puts("dedans");
}

peut être remplacé par une seule et claire instruction Scriptol:

if j in { 1, 2, 3, 4 } print "dedans"

Et beaucoup plus...

Cette page et les autres pages sur ce site, ne montrent qu'une petite partie du langage. Le manuel et le livre sur CD décrivent d'autres innovations:
- retours de fonction multiples,
- assignement conditionnel,
- assignement augmenté plus simple,
- autres structures de contrôles et autres types,
etc...