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 >
Text File  |  1995-03-20  |  6KB  |  141 lines

  1. Kompatibilität zu Borland Pascal 7.0                 Pure Software
  2. COMPATIB.DOC                                               15.3.93
  3.  
  4.  
  5.  
  6. Welche Unterschiede gibt es zwischen Pure Pascal 1.1 und
  7. ========================================================
  8.  
  9. Borland Pascal 7.0?
  10. ===================
  11.  
  12.  
  13. Bei aller Kompatibilität gibt es zwischen Pure Pascal und Borland Pascal
  14. doch einige Unterschiede. Zum allergrößten Teil sind sie entweder durch
  15. Rechnerarchitektur und Betriebssystem bedingt, oder sie beziehen sich
  16. auf Sprachkonstrukte, die ohnehin nicht portabel sein können.
  17.  
  18.  
  19.  1. Immer wenn Bibliotheksfunktionen die Größe von Objekten als Para-
  20.     meter erwarten oder als Resultat zurückliefern, verwendet Borland
  21.     Pascal 7.0 den Datentyp Word, Pure Pascal dagegen den Datentyp
  22.     Longint. Dies bezieht sich auf die Funktionen:
  23.  
  24.     System.BlockRead, System.BlockWrite
  25.     System.GetMem, System.FreeMem
  26.     System.SizeOf
  27.     Graph.ImageSize
  28.  
  29.     In allen Fällen ist es möglich, stattdessen Parameter vom Datentyp
  30.     Word zu verwenden, bzw. die Ergebnisse an Variable des Typs Word
  31.     zuzuweisen. Die Größe von Objekten muß dann naturgemäß kleiner als
  32.     64 kB sein.
  33.  
  34.  
  35.  2. Wenn absolute Speicheradressen angegeben werden, erwartet Borland
  36.     Pascal die Angabe der Adresse als Paar Segment:Offset. Pure Pascal
  37.     unterstützt diese Syntax nicht und erwartet stattdessen nur eine
  38.     Zahl, nämlich die absolute Adresse. Dies bezieht sich auf folgende
  39.     Konstrukte:
  40.  
  41.     - Deklaration von absoluten Variablen
  42.     - Die Funktion System.Ptr
  43.  
  44.  
  45.  3. In Pure Pascal ist eine Teilmenge der Funktionen aus der Unit CRT
  46.     auch in der Unit SYSTEM implementiert. Dies dient der Kompatibilität
  47.     mit Maxon-Pascal auf dem Atari. Folgende Funktionen sind betroffen:
  48.  
  49.     ClrEol, ClrEos, ClrScr, Delay, DelLine, GotoXY, InsLine,
  50.     KeyPressed, ReadKey
  51.  
  52.     Programme, die unter Borland Pascal entwickelt wurden und CRT benut-
  53.     zen, können trotzdem ohne Schwierigkeiten unter Pure Pascal über-
  54.     setzt werden - die Unit CRT ist vollständig vorhanden.
  55.  
  56.     In Programme, die unter Pure Pascal entwickelt wurden, ist ggf. die
  57.     Anweisung "Uses Crt" einzufügen, damit sie auch unter Borland
  58.     Pascal übersetzt werden können.
  59.  
  60.  
  61.  4. Pure Pascal überprüft die Kontrollvariablen von FOR-Schleifen
  62.     strenger als Borland Pascal. In Borland Pascal ist es möglich,
  63.     globale Variable und sogar Felder von Records als Kontrollvariable
  64.     zu verwenden. Solche Konstrukte führen unter Pure Pascal zu Warnun-
  65.     gen bzw. Fehlern.
  66.  
  67.  
  68.  5. In Borland Pascal ist es möglich, die Kontrollvariable einer FOR-
  69.     Schleife zu ändern, indem man ihr im Rumpf der Schleife einen Wert
  70.     zuweist oder sie als VAR-Parameter übergibt. Manche Borland Pascal
  71.     Programme verwenden dies, um FOR-Schleifen vorzeitig zu verlassen.
  72.     In Pure Pascal führt dies zu einer Fehlermeldung des Compilers.
  73.  
  74.  
  75.  6. Der Aufbau der virtuellen Methodentabelle unterscheidet sich
  76.     zwischen Pure Pascal und Borland Pascal.
  77.  
  78.  
  79.  7. Pure Pascal unterstützt keine dynamischen Methoden. In Borland
  80.     Pascal dient dieses Konstrukt zur komfortablen Programmierung unter
  81.     Microsoft Windows.
  82.  
  83.  
  84.  8. Die Pseudo-Arrays Mem, MemW, MemL, Port und PortW von Borland Pascal,
  85.     die direkten Speicherzugriff ermöglichen, sind in Pure Pascal nicht
  86.     implementiert.
  87.  
  88.  
  89.  9. Pure Pascal unterstützt weder Inline-Assembler noch Inline-
  90.     Direktiven. Programme, die diese Konstrukte verwenden, wären
  91.     natürlich ohnehin nicht portabel.
  92.  
  93.  
  94. 10. Borland Pascal merkt nicht, wenn in einem CASE-Statement dieselbe
  95.     Konstante mehrmals als CASE-Label verwendet wird. Pure Pascal
  96.     detektiert diesen Fehler.
  97.  
  98.  
  99. 11. In Pure Pascal werden Variable und Recordfelder automatisch auf
  100.     Wortgrenzen ausgerichtet, wenn sie eine Größe von zwei Byte oder
  101.     mehr aufweisen. Diese Ausrichtung ist für den Prozessor 68000
  102.     zwingend erforderlich, auf 68020, 68030 und späteren Prozessoren
  103.     erhöht sie die Effizienz des generierten Maschinencodes.
  104.  
  105.     In Borland Pascal werden Variable nur dann auf Wortgrenzen aus-
  106.     gerichtet, wenn der Schalter $A+ gesetzt ist, Recordfelder
  107.     dagegen nie.
  108.  
  109.     Zu Schwierigkeiten kann diese Unverträglichkeit etwa dann führen,
  110.     wenn Dateien mit Binärdaten zwischen beiden Systemen ausgetauscht
  111.     werden sollen. Dies ist jedoch ohnehin sehr schwierig - siehe
  112.     den nächsten Punkt.
  113.  
  114.  
  115. 12. Bedingt durch den Prozessor 68000 speichert Pure Pascal Daten-
  116.     objekte von zwei Byte oder mehr intern anders ab als Borland
  117.     Pascal. In Pure Pascal wird steht das höchstwertige Byte an
  118.     der niedrigsten Adresse, in Borland Pascal dagegen das nieder-
  119.     wertigste Byte.
  120.  
  121.     Zu Schwierigkeiten kann diese Unverträglichkeit etwa dann führen,
  122.     wenn Dateien mit Binärdaten zwischen beiden Systemen ausgetauscht
  123.     werden sollen.
  124.  
  125.  
  126. 13. Die Datentypen ByteBool, WordBool und LongBool werden in Pure Pascal
  127.     nicht unterstützt. Sie dienen in Borland Pascal lediglich der kom-
  128.     fortablen Programmierung von Programmen für Microsoft Windows.
  129.  
  130.     Solche Programme sind ohnehin nicht auf den Atari portierbar, da
  131.     Microsoft Windows dort nicht verfügbar ist.
  132.  
  133.  
  134. 14. Pure Pascal weist im Unterschied zu Borland Pascal keine Unter-
  135.     stützung für dynamic link libraries (DLLs) auf, da diese auf dem
  136.     Atari nicht verfügbar sind.
  137.  
  138.  
  139. 15. Der Datentyp Comp (64-Bit Integer) ist auf dem Atari nicht verfügbar,
  140.     da der Coprozessor 68881/2 diesen Datentyp nicht unterstützt.
  141.