FPKPascal Benutzerhandbuch

Florian Klämpfl 4. Mai 1995

Die momentane Version des Paketes ist eine Entwicklungsversion, d.h. der Compiler und die RTL sind noch nicht vollständig implementiert.

Alle in diesem Dokument genannten Warenzeichen werden anerkannt.

Turbo Pascal ist ein Warenzeichen von Borland International Inc. OS/2 ist ein Warenzeichen der International Bussiness Machines Corp. Windows NT ist ein Warenzeichen der Microsoft Corp. 386MAX ist ein Warenzeichen der Qualitas Inc.

Für Schäden die durch Programme des Pakets FPKPascal direkt oder indirekt entstanden sind wird keine Haftung übernommen.

Copyright (c) 1994,95 Florian Klämpfl

Inhaltsverzeichnis

1 Einleitung 4 1.1 Neuerungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2 Geschichte des Compilers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3 Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 Installation 6 2.1 Systemanforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Installationsprobleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3 Copyright . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3 Erste Schritte 8 3.1 Übersetzen eines Programms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2 Starten eines Programms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.3 Erstellen einer EXE-Datei (DOS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.4 Entfernen der Symbolinformationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

4 OS/2 Programme 10 4.1 Textmodusprogramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.2 PM-Programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.3 Unter DOS übersetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

5 Programmieren 12 5.1 Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 5.2 Graphikprogrammierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

5.2.1 Installation des Treibers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 5.2.2 Vektorfonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

5.3 Portierung von Turbo Pascal-Quelltexten . . . . . . . . . . . . . . . . . . . . . . . . . . 13

6 Programme debuggen 15

7 Units 16

8 Zeiger 17

9 Erweiterungen 18 9.1 Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 9.2 Überladene Bezeichner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 9.3 Funktionsresultate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 9.4 Aufzähltypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 9.5 Objektorientierte Programmierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

9.5.1 kindof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 9.6 Ausnahmebehandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

10 Problembehebung 21 10.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Kapitel 1

Einleitung

Das Benutzerhandbuch führt in die einzelnen Bereiche des Compilers ein, beschreibt die Installation etc. Weiterführende Informationen sind im Programmierhandbuch und Referenzhandbuch zu finden.

FPKPascal ist ein 32 Bit Pascalcompiler für DOS und OS/2. Die implementierte Sprache lehnt sich an Turbo Pascal 7.0 ist aber in verschiedenen Punkten erweitert (siehe 9).

1.1 Neuerungen

• neuer DOS-Extender (1.12)

• neuer Debugger (Full Screen)

• Entwicklungsumgebung für DOS

• erweiterte und überarbeitet Dokumentation

• PPU-Anzeiger DUMPPPU

• Bugfixes im Compiler vorgenommen

• Erzeugung von Debuggerinformationen

• verbesserte EMS-Nutzung des Compilers und Speicherdarf des Compilers gesenkt

• überladenen Methoden von Oberklassen können nun wie üblich unter Angabe des Namens der Oberklasse aufgerufen werden

• die Schlüsselwörter INHERITED und EXTERNAL sind verfügbar

• der erweiterte Syntax von new und dispose wird unterstützt

• erweiterte Laufzeitbibliothek

    – dos.dosexitcode(...)
    – dos.exec(...)
    – dos.findnext(...)
    – graph.bar(...)
    – graph.graphdefaults(...)
    – graph.rectangle(...)

– graph.setgraphbufsize(...)
– graph.settextstyle(...)
– graph.textheight(...)
– graph.textwidth(...)
– system.eof(...)
– system.erase(...)
– system.heaperror
– system.ioresult
– system.rename(...)

außerdem wurden Bugfixes vorgenommen

1.2 Geschichte des Compilers

Version 0.1 erste Testprogramme können übersetzt werden 2.6.1993 Projektbeginn 28.10.1993 ”Hello world“-Programm läuft 29.12.1993 erstes OS/2-Programm läuft (PMDEMO1.PP) (Version 0.1pl.26)

Version 0.2 erste kleine Anwendungen sollen übersetzt werden können demonstriert der damals beigefügte Editor (heute IDE) 21.4.1994 erfolgreiche Übersetzung der ersten Version des Editors

Version 0.5 8.8.1994 erstes offizielles Release

1.3 Updates

Die jeweils neueste Version dieses Pakets ist gegen Einsendung von 15 DM (10 DM und 5 DM Schein) incl. Porto und Verpackung erhältlich bei

Florian Klämpfl Feldstr. 4 91096 Möhrendorf Deutschland

Installation

Die Installation erfolgt durch Aufruf des Programms SETUP.EXE (auf Diskette 1) und dürfte, wenn genügend Festplattenplatz (4 MB) vorhanden ist, problemlos verlaufen.

2.1 Systemanforderungen

DOS

1. 80386 Prozessor

2. 4 MB Hauptspeicher (bzw beim Einsatz vom DPMI 8 MB)

3. Festplatte

OS/2

OS/2 2.x oder höher.

2.2 Installationsprobleme

• Problem Nach Start von SET PP.BAT erscheint die Meldung Kein Speicherplatz mehr im Umgebungsbereich

• Ursache Die Datei SET PP.BAT setzt einige Umgebungsvariablen die für den Betrieb des Compilers notwendig sind, der Speicher für Umgebungs- variablen ist jedoch erschöpft.

• Abhilfe In der Datei CONFIG.SYS steht eine Anweisung in der Form

SHELL=C:\DOS\COMMAND.COM

oder ähnlich. Mit dem Paramter /E:XXXX kann nun die Größe des Umgebungsspeichers in Bytes eingestellt werden. Geben Sie hier einen Wert von z.B. 1024 an

SHELL=C:\DOS\COMMAND.COM /E:1024

• Problem Nach dem Starten eines Programms, welches den DOS-Extender benutzt, erscheint die Meldung Not enough memory, obwohl der Rechner mit 4 MB ausgestattet ist.

• Urasche Der DOS-Extender erwartet bei der Arbeit mit dem DPMI 8 MB Hauptspeicher.

• Abhilfen

– Verwenden Sie unter DOS einen Speichermanager der VPCI nicht aber DPMI unterstützt, z.B. EMM386

– Soll das Programm in einer DOS-Box von Windows oder OS/2 laufen, so stellen Sie genügend virtuellen Speicher bereit

Das folgende Problem dürfte mit dem neuen DOS-Extender nicht mehr auftreten:

• Problem Nach dem Aufruf des Programms mit GO32 XXXX erscheint die Meldung

CPU must be in REAL-Mode and not in V86-Mode

• Ursache Der Prozessor wurde schon vom Betriebssystem oder einem Speichermanager in den Protected-Mode geschaltet und der DOS-Extender kann nun natürlich nicht in den Protected-Mode schalten.

• Problem Der DOS-Extender darf nicht in einer DOS-Box unter OS/2, Windows etc gestartet werden bzw unter DOS sollten EMM386 oder 386MAX als Speichermanager (VPCI-Unterstützung!) verwendet werden.

2.3 Copyright

Bei dem vorliegenden Softwarepaket FPKPascal handelt es sich grundsätzlich um Freeware, dabei sind aber einige Einschränkungen zu machen.

Das folgende Bedingungen gelten für die Teile von FPKPascal, bei denen das Copyright bei Florian Klämpfl oder Michael Spiegel liegt.

• Die Dateien dürfen weitergegeben werden, solange dies unentgeltlich oder gegen eine angemessene Kopiergebühr geschieht (max. 15 DM bzw 10 US-Dollar pro Diskette). Außerdem darf der Copyrightvermerk nicht entfernt sein und dem Empfänger sind die mit diesem Copyright verbundenen Bedingungen bekannt.

• Es ist nicht erlaubt Teile oder den ganzen Quelltext in kommerziell vertriebenen Produkten zu verwenden. Ausnahmen davon sind die Laufzeitbibliothek, die in kommerzielle eingebunden werden darf und mit dem Compiler erzeugte Programme.

Für den DOS-Extender und zugehöriger Dateien sind die speziellen Lizenzbedingungen in COPYING.DJ zu beachten.

Der Assembler und Linker sowie einige Hilfsprogramme unterliegen der GNU-Lizenz (siehe COPYING).

Erste Schritte

Die folgende Beschreibung setzt voraus, daß der Compiler erfolgreich installiert ist, d.h. alle Anweisungen des Installationsprogramms befolgt wurden. Die benötigten Komponenten sind die DOS-Unterstützung und die Beispielprogramme.

3.1 Übersetzen eines Programms

Die Datei PP.EXE ist der Compiler, der die Quelldatei in Assembler übersetzt. Um jedoch Eingabearbeit zu sparen, kann die Batchdatei PPC.BAT eingesetzt werden, die Compiler, Assembler und bei Bedarf den Linker aufruft. Allerdings können dieser Batchdatei nur 9 Parameter übergeben werden, ansonsten muß dem Compiler eine Responsedatei (s.u.) übergeben werden, die die Paramter enthält.

Sollte die Übersetzung an Speichermangel scheitern (Runtime error 203), so kann die 32-Version PPC386 des Compiler verwendet werden.

3.2 Starten eines Programms

Unter OS/2 erzeugt der Linker eine EXE-Datei, die OS/2 direkt ausführen kann. Unter DOS jedoch muß der DOS-Extender GO32 eingesetzt werden:

GO32 Dateiname

siehe auch 3.3

3.3 Erstellen einer EXE-Datei (DOS)

Der Linker erzeugt eine Binärdatei im Unixformat. Um eine unter DOS lauffähige EXE-Datei zu erzeugen, gibt es zwei Möglichkeiten:

1. Mit dem Hilfsprogramm AOUT2EXE: Mit

AOUT2EXE Dateiname

wird eine EXE-Datei erzeugt, die allerdings nur lauffähig ist, wenn GO32.EXE über PATH gefunden wird.

2. Durch Kopieren der Datei GO32.EXE vor die entsprechende Datei:

COPY /B GO32.EXE+Dateiname Dateiname.EXE. Diese EXE-Datei ist nun ohne GO32 ausführbar, sie ist allerdings um rund 60kB aufgebläht.

Diese EXE-Dateien dürfen allerdings nicht mit PKLite oder einem sonstigen EXE-Komprimierer behandelt werden!

3.4 Entfernen der Symbolinformationen

Der Linker schreibt auch in die ausführbare Datei noch Symbolinformationen die meistens unerwünscht sind wegen der größeren Dateien. Diese Symbolinformationen können mit dem Hilfsprogramm STRIP.EXE entfernt werden:

STRIP Dateiname,

was oft die Dateigröße um 30% verringert.

OS/2 Programme

Der Compiler unterstützt sowohl die Erzeugung von PM-Programmen als auch von Textmodusprogrammen. Der Compiler läßt sich unter OS/2 durch den Aufruf des Compilertreibers PPC.CMD wie unter DOS starten. Dazu sind allerdings einige Umgebungsvariablen zu setzen etc.

Zunächst muß bei der Installation die OS/2-Unterstützung ausgewählt worden sein. Weiterhin muß die Pfad-Anweisung von OS/2 um Einträge, die auf die Verzeichnisse OS2BIN und BIN weisen, ergänzt werden, und zwar in dieser Reihenfolge, da sonst der Assembler und Linker für DOS unter OS/2 gestartet werden. Außerdem muß die Datei SET PP.CMD unter OS/2 aufgerufen werden, damit die Umgebungsvariablen richtig gesetzt werden. Da der Compiler unter DOS läuft, müssen auch noch in der DOS-Box bzw in deren AUTOEXEC.BAT Änderungen ausgeführt werden: es ist die Datei SET PP.BAT aufzurufen, damit die Umgebungsvariablen unter DOS für den Compiler richtig gesetzt werden.

4.1 Textmodusprogramme

Bei der Erzeugung von Textmodusprogrammen besteht kein Unterschied zu DOS, nur das der Linker gleich eine EXE-Datei, die unter OS/2 gestartet werden kann, erzeugt.

4.2 PM-Programme

Auch die Erzeugung von Programmen für den Presentations-Manager ist kein Problem. Das Programm wird durch den Aufruf von PPC.CMD übersetzt. Nun müssen durch den Resource-Compiler (liegt OS/2 als RC.EXE bei) noch die Resourcen hinzugelinkt durch:

RC program.RES

Mit den Schaltern -Do,-Dw und -Dd kann die Erzeugung der nötigen Definitionsdatei gesteuert werden. Durch -Do wird diese Erzeugung erst einmal veranlaßt. -Dw gibt an das eine PM-Applikation erzeugt werden soll (Schalter WINDOWAPI in der DEF-Datei). Schließlich kann durch -Ddxxxx xx als Beschreibung eingestellt werden. In der DEF-Datei werden automatisch die exportierten Routinen eingetragen. Gegebenenfalls ist nur noch über -Cs und -Ch die nötige Größe des Stack und des Heap einzustellen (wird in die DEF-Datei eingetragen).

4.3 Unter DOS übersetzen

Auch unter DOS ist das Übersetzen von OS/2-Programme z.B. zur Syntaxkontrolle möglich. Es reicht ein Aufruf des Compilers mit dem Kommandozeilenparamter -TOS2. Es darf allerdings nur der Compiler (PP.EXE) aufgerufen werden und nicht der Compilertreiber (PPC.BAT), da der Linker sonst versucht, das Programm als DOS-Programm zu linken, was aufgrund passender Bibliotheken mit einer Fehlermeldung endet.

Programmieren

5.1 Ausdrücke

Über die Auswertungsreihenfolge von Ausdrücken darf nichts angenommen werden. Ausnahmen:

• Die boolschen Operatoren OR und AND werden immer von links nach rechts ausgewertet

• der Compiler entfernt intern keine Klammern, z.B. bei (a+b)+c wird immer die Summe von a+b zu c gezählt

Eine Funktion, die in einem Ausdruck mehrfach verwendet wird, kann durchaus nur einmal aufgerufen werden wenn sie der Zusammenfassung von gemeinsamen Teilausdrücken zum Opfer fällt, dazu muß sie natürlich jeweils dieselben Paramter haben.

Boolsche Ausdrücke werden im Kurzschlußverfahren ausgewertet, d.h. sobald das Ergebnis feststeht, wird abgebrochen.

5.2 Graphikprogrammierung

Unter FPKPascal ist zur Unterstützung der Graphikausgabe die Unit GRAPH zuständig ^{1}. Es werden allerdings nur Graphikmodi mit 256 Farben unterstützt.

5.2.1 Installation des Treibers

Um den Graphiktreiber korrekt zu laden, muß die Umgebungsvariable GO32, die von SET PP.BAT gesetzt wird, erweitert werden.

5.2.2 Vektorfonts

Die Graphikbibliothek unterstützt die Benutzung von Vektorschriften. Diese müssen im selben Format wie die Vektorschriften von Turbo Pascal vorliegen. Bei der Benutzung der Vektorschriften von Turbo Pascal darf jedoch keinesfalls das Copyright von Borland an diesen Schriften verletzt werden, dieses Schriften sind keinesfalls Public Domain wie oft angenommen, sondern dürfen nur mit Programmen weitergegeben werden, die mit Compilern von Borland erzeugt wurden.

1kompatibel zur Turbo Pascal-Unit GRAPH

Installation der Fonts

Die Fontdateien (.CHR) müssen in des Unterverzeichnis FONTS kopiert werden.

Bevor ein Font nun zur Textausgabe via SetTextStyle ausgewählt werdern kann, muß er bei der Unit GRAPH mit einem Aufruf von InstallUserFont registriert werden.

{...}
var
myfont : integer;
begin
{...}
myfont:=InstallUserFont('MYFONT.CHR');
SetTextStyle(myfont,HorizDir,4);
OutText('Hier wird nun MYFONT verwendet...');
{...}
end.

Die Standardfonts von Borland werden automatisch registriert.

5.3 Portierung von Turbo Pascal-Quelltexten

Die Portierung von Quelltexten, die für Turbo Pascal geschrieben wurden ist meist mit nur kleinen Änderungen verbunden. Die wesentlichen Punkte die geändert werden müssen, sind in der folgenden Liste aufgeführt:

• die Parameterliste von Unterprogrammen, die schon deklariert wurden, und nun definiert werden, muß vollständig der der Vorwärtsdeklaration entsprechen, da der Compiler sonst einen überladenen Unterprogrammbezeichner annimmt

• MEM, MEMW, MEML und PORT werden nicht unterstützt

• (* ... *) als Kommentar wird nicht unterstützt; stattdessen kann {...} beliebig geschachtelt werden

• PRIVATE und PUBLIC sind im ganzen Programm reservierte Bezeichner

• Turbo Vision ist nicht vorhanden

• Kommandozeilenaufruf und Pragmas” sind verschieden

• ASSEMBLER, INLINE, PACKED und ABSOLUTE sind Schlüsselworte, werden im Programm aber nicht akzeptiert

• PROTECTED, PUBLIC, TRY, THROW, EXCEPTION, OTHERWISE und CATCH sind Schlüsselwörter

• INTERRUPT, FAR und NEAR werden logischerweise ignoriert

• PRIVATE hat eine semantische strengere Bedeutung. Der Zugriff auf damit deklarierte Bezeichner ist nur in Methoden möglich • als virtuell deklarierte private Methoden sind nicht möglich

• Units sind nicht binär kompatibel

• immer Kurzschlußauswertung bei Bool’schen Ausdrücken

• beliebig tief verschachtelte Kommentare werden unterstützt

• der Syntax des Assemblers ist nicht kompatibel

• GOTO wird nicht unterstützt

• die USES-Anweisung im Implementationsteil einer Unit wird nicht unterstützt • verständlicherweise wird die Unit OVERLAY nicht unterstützt

Programme debuggen

Um ein Programm zu debuggen, muß der Compiler mit dem Parameter -g aufgerufen werden. Der Start eines Programms unter Aufsicht des Debuggers geschieht durch Aufruf des DOS-Extenders mit den Parametern -d edebug32.

Unter OS/2 ist momentan kein Debugger verfügbar.

Kapitel 7 Units

16

Kapitel 8 Zeiger

17

Erweiterungen

Das folgende Kapitel enthält Beschreibungen der Spracherweiterungen gegenüber Turbo Pascal und anderen Pascaldialekten.

9.1 Ausdrücke

Es können Ketten von Zuweisungen geschrieben werden:

{...}
var
   a,b,h : longint;
begin
   a:=b:=0;  { sowohl a als auch b erhalten den Wert 0 }
   write(a:=0); { es wird 0 geschrieben und a erhaelt den Wert 0 }
                { wobei allerdings nicht angenommen werden darf, da\ss{} }
                { dies vor Aufruf des Unterprogrammes geschieht }
   { und nun ein swap mit nur zwei Anweisungen: }
   (h:=a):=b; { (das Resulttat der Klammer ist der lvalue von a) }
              { (Klammer werden immer von innen nach au\ss{}en ausgewertet) }
   b:=h;
   { sinnvoll ist dies vor allem, wenn a und b indizerte Arrayzugriffe }
   { oder aehnliches sind }
end;

Der Kommaoperator kann zum Trennen von Anweisungen deren Auswertungsreihenfolge egal ist und in denen gemeinsame Teilausdrücke zusammengefaßt werden dürfen, verwendet werden. Das Resultat des Kommaoperators entspricht dem des linken Ausdrucks.

{...}
var
   a,b,c,d : longint;
begin
   {...}
   a:=(b:=1,c:=5+6,d:=67);

   { entspricht z.B.: }
   b:=1;
   c:=5+6;
   d:=67;
   a:=67;
end;

9.2 Überladene Bezeichner

Unter bestimmten Bedingungen läßt sich in einem Gültigkeitsbereich ein Bezeichner für mehrere Unterprogramme verwenden, diese Unterprogramme müssen sich allerdings in der Art und Reihenfolge der Parameter unterscheiden. Die Standartprozeduren DEC und INC verwenden auch in TP dieses Konzept, es können einer oder zwei Parameter übergeben werden. Dieses Konzept wurde nun auch für selbstdefinierte Unterprogramme eingeführt, dabei ist allerdings folgendes zu beachten:

• die Unterprogramme dürfen sich nicht nur im Rückgabetyp unterscheiden

• der Compiler muß beim Aufruf eines überladenen Unterprogramms eindeutig entscheiden können, welches Unterprogramm er aufrufen soll, Probleme bereitet z.B. folgendes:

         {...}
         procedure a(l : longint);
           begin
              {...}
           end;
         procedure a(l : integer);
           begin
              {...}
           end;
         begin
            a(123);
         end;

Hier kann der Compiler nicht eindeutig entscheiden, welches Unterprogramm er nun aufrufen soll und er gibt eine Fehlermeldung aus.

• Außerdem ist bei folgendem Vorsicht geboten:

– Oft kann ein Aufruf für ein Unterprogramm generiert werden, bei welchem man nicht denkt, daß dieses nun afugerufen wird

– nur logisch gleiche Unterprogramme sollten auch den gleichen Namen bekommen

9.3 Funktionsresultate

Der Rückgabewert einer Funktion wird immer an eine Variable zugewiesen, die den gleichen Namen hat, wie die Funktion (auch in ANSI-Pascal). In FPKPascal darf diese Variable aber auch gelesen werden.

Der Nachteil ist bei diesem Konzept allerdings, daß rekursive Funktionen immer einen Paramter haben müssen, da sonst der Compiler die Mehrdeutigkeit eines Ausdruckes nicht auflösen kann. Beispiel:

{...}
function a : integer;
  begin
     {...}
     a:=a*2;
     {...}
  end;

Der Compiler kann nun nicht bestimmen, ob er das Funktionsresultat auslesen oder einen rekursiven Aufruf der Funktion generieren soll.

Als weitere Erweiterung können auch Records, Objekte (Vorsicht!), und Arrays der Rückgabetyp einer Funktion sein. Auch hier ist Auslesen, elementweises Schreiben etc erlaubt.

9.4 Aufzähltypen

Die Aufzähltypen sollten wie unter anderen Pascaldialekten auch arbeiten. Allerdings wurde folgende Erweiterung vorgenommen: wie unter C++ lassen sich auch in FPKPascal Werte bei der Deklaration überspringen:

{...}
type
   aufzaehltyp = (a,b,c=12,d,e,f,g);

A hat nun den ordinalen Wert 0, B 1 und nun werden alle Werte bis 12 übersprungen und ord(c)=12,ord(d)=13 etc. Der Nachteil dabei ist, daß kein korrektes Rangechecking stattfinden kann, d.h. an eine Variable vom Typ Aufzaehltyp kann sehr wohl der ordinale Wert 6 zugewiesen werden.

9.5 Objektorientierte Programmierung

9.5.1 kindof

Über die Funktion kindof kann ein Zeiger auf die VMT des Elternobjekts erhalten werden.

9.6 Ausnahmebehandlung

FPKPascal unterstützt eine Ausnahmebehandlung in der Art wie sie in neueren Sprachdefinitionen von C++ festgelegt ist. (momentan nicht vollständig implementiert)

Problembehebung

Lesen Sie zuerst die betreffenden Stellen der Dokumentation und versuchen Sie damit Ihr Problem zu lösen. Ansonsten sind in den folgenden Abschnitten oft auftretende Probleme angesprochen.

Im schlimmsten Fall können Sie sich an folgende Adresse wenden:

Florian Klämpfl Feldstr. 4 91096 Möhrendorf Deutschland EMail: fnklaemp@cip.ft.uni-erlangen.de

Legen Sie auf jeden Fall Rückporto bei, sonst kann keine Antwort gegeben werden.

10.1 Installation

siehe 2.2