Les scripts Qubes pour ceux qui connaissent C, C# ou Java
Comparativement aux langages issus du C, le Pascal utilise une syntaxe basée sur des termes, plutôt que des caractères, par exemple "or" plutôt que "||".
La page suivante, "Pascal for Java users" est globalement applicable aux scripts Qubes.
Syntaxe
- L'opérateur d'assignement est ":=", l'opérateur de comparaison est "=", le langage n'autorise aucun cas d'utilisation ambigüe.
- L'opérateur de différence est "<>" (et non pas "!=").
- Les variables et paramètres ont un ordre de déclaration inversé. "int myInt" en C deviendra "var myInt : Integer" en Pascal.
- case of vs switch: les branchements d'un case of sont disjoints, et non cascadés, il n'y a donc pas d'effet de bord en cas d'oubli d'un "break".
- for to do: la boucle for est une structure à part entière, opérant sur un ordinal et orienté, il ne s'agit pas d'un raccourci pour une boucle while comme en C/Java/C#, notamment la variable d'itération de boucle est contrôlée.
- Les exceptions sont déclenchées par le biais de raise, et gérables via try except et try finally.
- L'évaluation retardée est supportée par le biais de la qualification "lazy" d'un paramètre.
Objets
- Méta-classes: le Pascal supporte une notion de méta-classe, et de méthodes de classes pouvant être éventuellement virtuelles.
- Constructeurs multiples: le Pascal supporte de multiples constructeurs nommés.
- Propriétés: le Pascal supporte de multiples propriétés explicites, et de multiples propriétés paramétrées, il ne s'agit pas de propriétés implicites (comme en Java), et il n'y a pas de limitations sur leur type et leur nombre (comme en C#).
- Gestion de mémoire: la gestion de la mémoire est automatique par comptage de référence. Un objet non-référencé sera libéré immédiatement, les cycles d'objets seront eux libérés avec retard (au plus tard à la fin du script) par un ramasse-miette.