home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Computer Club Elmshorn Atari PD
/
CCE_PD.iso
/
pc
/
0300
/
CCE_0367.ZIP
/
CCE_0367.PD
/
COMPATIB.DOC
next >
Wrap
Text File
|
1995-03-20
|
6KB
|
141 lines
Kompatibilität zu Borland Pascal 7.0 Pure Software
COMPATIB.DOC 15.3.93
Welche Unterschiede gibt es zwischen Pure Pascal 1.1 und
========================================================
Borland Pascal 7.0?
===================
Bei aller Kompatibilität gibt es zwischen Pure Pascal und Borland Pascal
doch einige Unterschiede. Zum allergrößten Teil sind sie entweder durch
Rechnerarchitektur und Betriebssystem bedingt, oder sie beziehen sich
auf Sprachkonstrukte, die ohnehin nicht portabel sein können.
1. Immer wenn Bibliotheksfunktionen die Größe von Objekten als Para-
meter erwarten oder als Resultat zurückliefern, verwendet Borland
Pascal 7.0 den Datentyp Word, Pure Pascal dagegen den Datentyp
Longint. Dies bezieht sich auf die Funktionen:
System.BlockRead, System.BlockWrite
System.GetMem, System.FreeMem
System.SizeOf
Graph.ImageSize
In allen Fällen ist es möglich, stattdessen Parameter vom Datentyp
Word zu verwenden, bzw. die Ergebnisse an Variable des Typs Word
zuzuweisen. Die Größe von Objekten muß dann naturgemäß kleiner als
64 kB sein.
2. Wenn absolute Speicheradressen angegeben werden, erwartet Borland
Pascal die Angabe der Adresse als Paar Segment:Offset. Pure Pascal
unterstützt diese Syntax nicht und erwartet stattdessen nur eine
Zahl, nämlich die absolute Adresse. Dies bezieht sich auf folgende
Konstrukte:
- Deklaration von absoluten Variablen
- Die Funktion System.Ptr
3. In Pure Pascal ist eine Teilmenge der Funktionen aus der Unit CRT
auch in der Unit SYSTEM implementiert. Dies dient der Kompatibilität
mit Maxon-Pascal auf dem Atari. Folgende Funktionen sind betroffen:
ClrEol, ClrEos, ClrScr, Delay, DelLine, GotoXY, InsLine,
KeyPressed, ReadKey
Programme, die unter Borland Pascal entwickelt wurden und CRT benut-
zen, können trotzdem ohne Schwierigkeiten unter Pure Pascal über-
setzt werden - die Unit CRT ist vollständig vorhanden.
In Programme, die unter Pure Pascal entwickelt wurden, ist ggf. die
Anweisung "Uses Crt" einzufügen, damit sie auch unter Borland
Pascal übersetzt werden können.
4. Pure Pascal überprüft die Kontrollvariablen von FOR-Schleifen
strenger als Borland Pascal. In Borland Pascal ist es möglich,
globale Variable und sogar Felder von Records als Kontrollvariable
zu verwenden. Solche Konstrukte führen unter Pure Pascal zu Warnun-
gen bzw. Fehlern.
5. In Borland Pascal ist es möglich, die Kontrollvariable einer FOR-
Schleife zu ändern, indem man ihr im Rumpf der Schleife einen Wert
zuweist oder sie als VAR-Parameter übergibt. Manche Borland Pascal
Programme verwenden dies, um FOR-Schleifen vorzeitig zu verlassen.
In Pure Pascal führt dies zu einer Fehlermeldung des Compilers.
6. Der Aufbau der virtuellen Methodentabelle unterscheidet sich
zwischen Pure Pascal und Borland Pascal.
7. Pure Pascal unterstützt keine dynamischen Methoden. In Borland
Pascal dient dieses Konstrukt zur komfortablen Programmierung unter
Microsoft Windows.
8. Die Pseudo-Arrays Mem, MemW, MemL, Port und PortW von Borland Pascal,
die direkten Speicherzugriff ermöglichen, sind in Pure Pascal nicht
implementiert.
9. Pure Pascal unterstützt weder Inline-Assembler noch Inline-
Direktiven. Programme, die diese Konstrukte verwenden, wären
natürlich ohnehin nicht portabel.
10. Borland Pascal merkt nicht, wenn in einem CASE-Statement dieselbe
Konstante mehrmals als CASE-Label verwendet wird. Pure Pascal
detektiert diesen Fehler.
11. In Pure Pascal werden Variable und Recordfelder automatisch auf
Wortgrenzen ausgerichtet, wenn sie eine Größe von zwei Byte oder
mehr aufweisen. Diese Ausrichtung ist für den Prozessor 68000
zwingend erforderlich, auf 68020, 68030 und späteren Prozessoren
erhöht sie die Effizienz des generierten Maschinencodes.
In Borland Pascal werden Variable nur dann auf Wortgrenzen aus-
gerichtet, wenn der Schalter $A+ gesetzt ist, Recordfelder
dagegen nie.
Zu Schwierigkeiten kann diese Unverträglichkeit etwa dann führen,
wenn Dateien mit Binärdaten zwischen beiden Systemen ausgetauscht
werden sollen. Dies ist jedoch ohnehin sehr schwierig - siehe
den nächsten Punkt.
12. Bedingt durch den Prozessor 68000 speichert Pure Pascal Daten-
objekte von zwei Byte oder mehr intern anders ab als Borland
Pascal. In Pure Pascal wird steht das höchstwertige Byte an
der niedrigsten Adresse, in Borland Pascal dagegen das nieder-
wertigste Byte.
Zu Schwierigkeiten kann diese Unverträglichkeit etwa dann führen,
wenn Dateien mit Binärdaten zwischen beiden Systemen ausgetauscht
werden sollen.
13. Die Datentypen ByteBool, WordBool und LongBool werden in Pure Pascal
nicht unterstützt. Sie dienen in Borland Pascal lediglich der kom-
fortablen Programmierung von Programmen für Microsoft Windows.
Solche Programme sind ohnehin nicht auf den Atari portierbar, da
Microsoft Windows dort nicht verfügbar ist.
14. Pure Pascal weist im Unterschied zu Borland Pascal keine Unter-
stützung für dynamic link libraries (DLLs) auf, da diese auf dem
Atari nicht verfügbar sind.
15. Der Datentyp Comp (64-Bit Integer) ist auf dem Atari nicht verfügbar,
da der Coprozessor 68881/2 diesen Datentyp nicht unterstützt.