Principales différences entre Turbo-Pascal et Pascal standard
Ce document décrit les principales différences entre le Turbo-PASCAL (version 5.0) et le
Pascal Standard.
En-tête de programme
En Turbo-PASCAL, l'en-tête du programme est purement décoratif. Le compilateur ne tient
pas compte des informations qui s'y trouvent. Le programmeur peut y
faire figurer les noms de fichiers utilisés dans son programme.
Un en-tête de programme en Pascal Standard est donc également correct en Turbo-PASCAL, mais
l'inverse n'est pas nécessairement vrai.
Identificateurs
Contrairement a Pascal Standard, Turbo-PASCAL ne fait de différence, dans le texte du programme,
entre majuscules et minuscules. Par exemple, NbreMax, NBREMAX et
nbremax seront considérés comme trois identificateurs identiques.
De même, en Turbo-PASCAL, les constantes TRUE, True et true sont
identiques.
En ce qui concerne l'utilisation des identificateurs, un programme correct en
Pascal Standard est donc également correct en Turbo-PASCAL. L'inverse n'est pas nécessairement
vrai.
Fichiers
Initialisation
En Turbo-PASCAL, avant l'initialisation d'un fichier (par l'instruction reset
ou rewrite), il est nécessaire d'effectuer l'instruction
assign (f,s)
où f est le nom de la variable de type file of,
s est une chaîne de caractères donnant le nom du fichier
externe concerné.
Exemple: assign(data,'etudiant.dat')
eof
En Turbo-PASCAL si eof(f) est vrai, alors eoln(f) est également
vrai. Par contre en Pascal Standard si eof(f) est vrai, alors eoln(f)
est indéfini.
En Turbo-PASCAL, si f est de type text et que eof(f) est vrai avant
l'exécution d'une instruction de la forme read(f,x), où x est de type
entier ou réel, aucun message d'erreur ne sera généré (au contraire du Pascal Standard),
l'exécution du programme ne sera pas interrompue, et $x$ recevra la valeur
zéro.
Autres différences
- L'usage de tableaux homologues n'est pas autorisé en Turbo-PASCAL.
- En Turbo-PASCAL, une instruction de branchement ne permet pas de sortir du bloc
dans lequel elle se trouve. En particulier, on ne peut utiliser un
goto pour passer d'un sous-programme au programme appelant.
- En Turbo-PASCAL, dans une instruction read(f,x), la variable x peut être
de type string.
- Le Turbo-PASCAL permet l'écriture de valeurs de type booléen. Les suites de
caractères représentant les valeurs booléennes sont True et false.
- Différence de syntaxe entre ls Pascal Standard et Turbo-PASCAL pour le passage de
sous-programme en paramètre.
- Lorsque la valeur calculée á partir des opérateurs et des
fonctions prédéfinies n'est pas comprise dans l'ensemble des
valeurs permises, la définition du Pascal Standard impose qu'une erreur soit
signalée. En Turbo-PASCAL, de telle erreurs sont signalées pour certains
types real, par exemple), mais pas pour tous (pas d'erreur
signalée pour les entiers, par exemple).
- Le Turbo-PASCAL offre en plus du type packed array[1..N] of char
pour la manipulation des chaînes de caractères, un autre type :
string pour lequel il existe des fonctions et des procédures
prédéfinies (cfr manuel Pascal).