Langage de programmation orienté humain
La syntaxe du langage Scriptol a été choisie pour être proche du langage humain et donc facile à lire et comprendre.
L'orientation-homme de Scriptol et les anciens langages de programmation
Le langage a été conçu principalement dans le
but d'être proche de la pensée humaine. J'ai appliqué
la méthode de Descartes de recherche de la vérité,
pour trouver la raison de chaque caractéristique des langages
classiques. Si un élément à été repris
pour une raison qui n'existe plus (la lenteur des processeurs par exemple),
alors cette caractéristique est éliminée du langage.
Par contre, je ne veux pas utiliser une nouvelle syntaxe uniquement
pour changer de langage, je préfére conserver ce dont
les programmeurs ont l'habitude si cela fonctionne bien. Par exemple,
j'ai exhumé le mot-clé nil du très
ancien langage Lisp (plus de 40 ans!), parce que nil est
exactement ce dont j'ai besoin et je ne veux pas utiliser des mots nouveaux uniquement pour être différent.
Number et text (nombre et texte)
Les langages précédents utilisent des variables ayant pour type: float, string, char, short, etc...(flottant, chaîne, caractère, court). Cela correspond à des zone de mémoire et vient de l'époque où les ordinateurs avaient une mémoire de 48 k octets. Scriptol utilise plus simplement number et text, et aussi real ou integer (réel ou entier) pour distinguer les nombres.
Type suivi du nom
Déclarer une variable en Scriptol est aussi simple qu'en C:
int i
Soit "un entier nommé i". De nouveaux langages de programmation trouvent qu'il est plus sophistiqué d'écrire:
var i : int
"Je crée une variable i de type entier". Si on s'exprimait ainsi dans la vie courante cela donne: "J'ai un logis de type appartement." Dans un programme, cela n'apporte vraiment rien de plus.
Instructions pure: pas d'assignement à l'intérieur d'une expression
L'instruction if(x = y) en C++ assigne x à y et teste si x vaut
0. En Scriptol, cela teste si x est égal à y. Le double opérateur
== n'est pas utilisé en Scriptol.
C, puis Java, PHP et C# permettent de mêler conditions et actions. Exemple:
if(A = B + 1) then... En langage humain: "Si ne vaut pas zéro
la variable A assignée de B plus 1, alors..."
Une telle complication d'idées n'est pas permise en Scriptol.
Les instructions sont des expressions en C et successeurs, pas en Scriptol.
Assignement augmenté
L'instruction x = x + 2, s'écrit x + 2 en Scriptol. Cela est conforme à la pensée. (Exemple: "ma voiture a été déplacée d'un km", plutôt que "ma voiture a été déplacée de sa place vers sa place plus un km".)
Opérateurs et symboles
Les symboles ont un seul sens en Scriptol et ne sont pas réutilisés pour des opérations différentes comme dans d'autres langages.
Choix multiple
Grâce à des structures de contrôle spéciales, if composite et do case - jamais implémentées auparavant - Scriptol permet de structurer le code d'une façon qui correspond directement à la pensée.
Point-virgules
Il a été dit qu'un programme doit avoir des points-virgules
parce que l'on utilise cette ponctuation quand on écrit. Mais on n'en
mets pas dans les partitions musicales pour autant.
La vraie raison des point-virgules dans les programmes, je crois, est
de permettre de couper les lignes sans désarçonner les compilateurs
rustiques. Mais un compilateur moderne comme celui de Scriptol est capable de
reconnaître les lignes coupées et donc, il n'est pas besoin d'une
terminaison autre que la fin de ligne. Scriptol a besoin des point-virgules
uniquement pour séparer des instructions sur une même ligne.
Retours multiples
Pour certaines fonctions, il est évident qu'elles doivent retourner plusieurs valeurs à la fois. Par exemple, les composantes Rouge, Vert, Bleu d'une couleur, ou les coordonnées x et y d'un point... Donc pour appliquer la pensée humaine, il doit être possible d'assigner plusieurs variables à un appel de fonction:
x, y = prendreCoordonnees() rouge, vert, bleu = prendreRGB()
Scriptol comme d'autres langages modernes permet cela.