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.

Aristote. Vous ne pouvez accomplir de grandes choses avec des idées courtes.

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.