Langage Orienté Humain |
|
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 Listp (plus de 40 ans!), parceque "nil" est
exactement ce dont j'ai besoin et je ne veux pas créer de nouvelles
choses 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 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.
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..."
Un 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 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.
La structure scan avec [] pour désigner l'élément
courant est aussi une transposition directe de la pensée jamais implémentée
encore.
Point-virgules
Il a été dit qu'un programme doit avoir des points-virgules
parceque 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
d'avant. 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.
