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.