Conformité aux normes ISO
Le OS-9 Pascal Version 2.0 présente quelques différences par rapport à la spécification du langage de programmation ISO7185.1 Niveau 0. Beaucoup d'entre eux sont le résultat des améliorations apportées à cette version de Pascal pour améliorer ses performances et pour ajouter des commodités pour les programmeurs. Si la portabilité des programmes écrits en OS-9 Pascal vers d'autres systèmes est importante, ces fonctionnalités ne doivent pas être utilisées. Une liste complète des écarts par rapport à la norme est donnée ci-dessous :
- Les instructions CASE peuvent avoir une option OTHERWISE. (Amélioration non standard).
- Les identificateurs et les constantes numériques du programme source peuvent contenir des caractères de soulignement. (Amélioration non standard).
- La directive de procédure EXTERNAL est autorisée. (Amélioration non standard).
- Les chaînes de caractères peuvent comporter jusqu'à 100 caractères (la norme n'est pas spécifique).
- Les instructions source peuvent comporter jusqu'à 110 caractères. (La norme n'est pas spécifique).
- Les PROCEDURE et FUNCTION ne peuvent pas être transmises par nom; FILE ne peut pas être passé par valeur.
- L'attribut PACKED est ignoré en raison de l'adressage mémoire 6809. Les variables sont toujours allouées de manière à être compactées au niveau de l'octet. L'emballage au niveau du bit n'est pas effectué. Les procédures standard PACK et UNPACK ne sont pas mise en oeuvres.
- Les constantes d'ensemble peuvent être construites en utilisant la forme de sous-plage "A..B" où "A" et "B" sont des membres constants de l'ensemble en cours de formation. (Amélioration non standard).
- Une liste de noms de fichiers dans l'instruction PROGRAM n'est pas requise, mais si elle est fournie, son exactitude est vérifiée. (Amélioration non standard).
- DISPOSE (une fonction ISO niveau 1) n'est pas mise en oeuvre.
- Les constantes dans la liste de constantes d'une instruction CASE peuvent avoir la forme "A..B" désignant la liste de valeurs de A à B inclus. (Amélioration non standard).
- Les vecteurs, des tableaux unidimensionnels avec des éléments de caractère, peuvent être indexés en utilisant la forme "expression FOR constant". (Amélioration non standard).
- Les instructions GOTO ne peuvent pas faire référence à une étiquette en dehors de la procédure actuelle.
- Des procédures standard et des options d'exécution sont fournies pour sélectionner les méthodes ISO Standard ou Wirth/Jensen pour la justification des chaînes de caractères et l'algorithme MOD.
- Les opérations d'entrée et de sortie sont exécutées légèrement différemment pour les fichiers interactifs ou d'entreposage de masse. (Amélioration non standard).
- Chaque variable déclarée être un type de fichier est associée à un bloc de contrôle de fichier étant automatiquement initialisé au début de l'exécution du bloc. Le fichier lui-même n'est pas ouvert automatiquement sauf s'il s'agit de l'un des trois fichiers standard: INPUT, OUTPUT ou SYSERR. Lors de la sortie d'un bloc de code, tous les fichiers définis dans ce bloc sont automatiquement fermés.
- Un grand nombre de fonctions et de procédures standard ont été ajoutées à la bibliothèque standard. (Amélioration non standard).
- Les REAL utilisent un format de cinq octets (9 1/2 chiffres décimaux). (Standard définit cela comme dépendant de la mise en oeuvre; certains Pascals ont moins de précision).
- Les opérateurs booléens bit par bit sont inclus dans OS-9 Pascal.
- Les GOTO sont autorisés dans les instructions CASE, REPEAT, WHILE, IF et FOR. (Amélioration non standard).
- Les variables et les champs non définis ou non initialisés peuvent être référencés sans erreur.
- Une variable créée par la forme variante de NEW peut être utilisée comme opérande dans une expression.
- Les déclarations PROCEDURE ou FUNCTION peuvent être imbriquées sur 15 niveaux.
- Un champ de variante est autorisé à être un paramètre de variable réel.
- Une variable de tampon de fichier peut être transmise en tant que paramètre de variable réel à une procédure qui modifie la position actuelle du fichier.
- La fonction standard EOLN peut être appelée pour un fichier dont EOF est défini sur true sans erreur.
- Les structures d'enregistrements et les tableaux ne peuvent pas contenir de fichiers.
- Le compilateur n'émet pas d'avertissement pour les tests conditionnels de sous-intervalle hors limites. Cela peut générer des zones de code qui ne seront jamais exécutées.
Dernière mise à jour : Samedi, le 11 juillet 2020