Revision 2 of 2, by WikiArchive on 11-4-2026. The page as it is now.
Pascal for Java users/de
Zurück zu den Zusätzlichen Informationen.\
=Übersetzen von gemeinsamen Programm-Teilen= Die verlinkte englischsprachige Seite zeigt, wie gemeinsame Probleme in verschiedenen Programmiersprachen, einschließlich Java und FreePascal / Object Pascal gelöst werden können.
Rosetta Code
Übersetzen von Java-Operatoren
Arithmetische Operatoren
| Java | Pascal | Kommentare |
|---|---|---|
| + | + | Addition |
| - | - | Subtraktion |
| * | * | Multiplikation |
| / | / | Gleitkommadivision |
| % | Mod | Modulo (Division ohne Rest) |
| ++ | Inc | inkrementieren (Hochzählen) |
| -- | Dec | dekrementieren (Herunterzählen) |
Relationale Operatoren
| Java | Pascal | Kommentare |
|---|---|---|
| == | = | gleich |
| != | <> | ungleich |
| < | < | kleiner |
| <= | <= | kleiner gleich |
| > | > | grösser |
| >= | >= | grösser gleich |
Logische Operatoren
<thead>
</thead> <tbody>
In Free Pascal ist dies die Standard-Compilereinstellung</td>
In Free Pascal ist dies die Compilerdirektive {$B ON}</td>
</tbody>
Bit Operatoren
| Java | Pascal | Kommentare |
|---|---|---|
| ~ | Not | Einerkomplement |
| & | And | bitweises UND |
| | | Or | bitweises inclusives ODER |
| ^ | Xor | bitweises exclusives ODER |
| >> | Shr | bitweises Rechtsschieben mit Vorzeichen |
| >>> | ist in Free Pascal nicht vorhanden | bitweises Rechtsschieben ohne Vorzeichen |
| << | Shl | bitweises Linksschieben |
Zuweisungs Operatoren
Hinweis: C-artige Operatoren werden in Free Pascal über die Kommandozeilenoption -Sc ermöglicht. C-artige Operatoren werden in Lazarus über die Projekteinstellungen ermöglicht.
{| class="wikitable" ! Java !! Pascal !! Kommentare |- | = | := | Einfache Zuweisung |- | += | += | Additionszuweisung |- | -= | -= | Subtraktionszuweisung |- | *= | *= | Multiplikationszuweisung |- | /= | /= | Divisionszuweisung |- | %= | ist in Free Pascal nicht vorhanden | Modulo Zuweisung |- | &= | ist in Free Pascal nicht vorhanden | UND Zuweisung |- | |= | ist in Free Pascal nicht vorhanden | ODER Zuweisung |- | ^= | ist in Free Pascal nicht vorhanden | Exclusive ODER Zuweisung |- | >>= | ist in Free Pascal nicht vorhanden | Rechtsschiebe Zuweisung |- | >>>= | ist in Free Pascal nicht vorhanden | Rechtsschiebe Zuweisung mit Nullexpansion |- | <<= | ist in Free Pascal nicht vorhanden | Linksschiebe Zuweisung |}
Sonstige Operatoren
| Java | Pascal | |
|---|---|---|
| & | @ | Adresse von ... |
| * | ^ | Zeiger / Pointer |
Ternärer Operator
{| class="wikitable" ! Java !! Pascal !! Kommentare |- | ? | ist in Free Pascal nicht vorhanden | Erlaubt die verkürzte Schreibweise von If-Else Verzweigungen und gibt einen Wert zurück
Verwendung:
Ergebnisfeld = Bedingung ? Wahrfall : Falschfall
Beispiel:
Für ein Maximum in Java:
max = ( a > b ) ? a : b;
Dies entspricht in Pascal folgendem if-else-Konstrukt:
if a > b Then
max := a
else
max := b;
|}
Übersetzen von Java Kommentarzeichen
| Java | Pascal | Kommentare |
|---|---|---|
| /* | { | Anfang eines Kommentars |
| /* | (* | Anfang eines Kommentars |
| */ | } | Ende eines Kommentars |
| */ | *) | Ende eines Kommentars |
| // | // | Kommentarzeile |
Übersetzen von Java Anweisungsblöcken
| Java | Pascal | Kommentare |
|---|---|---|
| { | Begin | Anfang eines Anweisungsblocks |
| } | End | Ende / Abschluss eines Anweisungsblocks |
Übersetzen von Java Schleifentypen
| Java | Pascal | Kommentare |
|---|---|---|
| for( ...; ...; ...++) | For ... To ... Do | Kopfgesteuerte Schleife, die hochgezählt wird |
| for(...; ...; ...--) | For ... Downto ... Do | Kopfgesteuerte Schleife, die heruntergezählt wird |
| for (Datentyp ...: Array) // For Each Schleife | For ... in | Kopfgesteuerte Schleife, für das Durchsuchen von Mengen |
| while (...) | While ... Do | Kopfgesteuerte Schleife |
| do ... while(...) | Repeat ... Until | Fussgesteuerte Schleife |
| do ... while!(...) | Repeat ... Until ... Not | Fussgesteuerte Schleife mit Nichtung des Ergebnisses des Ausdrucks |
Übersetzen von Java Verzweigungen / Bedingungen
| Java | Pascal | Kommentare |
|---|---|---|
| if(...) | If ... Then | If-Bedingung |
| if(...) ... else | If ... Then ... Else | If-Bedingung mit Sonstzweig |
| switch(...) case ...: ...break; | Case ... Of ...: ... End; | Case-Bedingung |
| switch(...) case ...: ... break; default ...; | Case ... Of ...: ... Else ... End; | Case-Bedingung mit Sonst-Zweig |
Übersetzen von Java Verzweigungen- / Schleifenabbrüchen
| Java | Pascal | Kommentare |
|---|---|---|
| break | Break | Die break-Anweisung ermöglicht es, vorzeitig eine Schleife (oder ein switch-case-Konstrukt) zu verlassen |
| continue | Continue | Die continue-Anweisung ermöglicht es, den aktuellen Schleifendurchlauf zu beenden |
Übersetzen von Java Prozeduren und Funktionen
| Java | Pascal | Kommentare |
|---|---|---|
| void Prozedurname(...) | Procedure Prozedurname(...) | Unterprogramm (Prozedur) ohne Rückgabewert |
| datentyp Funktionsname(...) | Function Funktionsname(...): Datentyp | Unterprogramm (Funktion) mit Rückgabewert |
| return | FunctionName := ... | Diese Pascal-Schreibweise ist überholt (deprecated) |
| return | Result := ... | Einer Funktion Ihren Rückgabewert zuweisen |
Übersetzen von Java Dateiheadern
| Java | Pascal | Kommentare |
|---|---|---|
| package ...; | Unit ...; | Einbinden der Pascal Unit bzw. des Java Packages |
| import ...; | Uses ...; | Bindet Bibliotheken und Klassen ein |
| public static void main(String[...] args) {...} | Program ProgramName; Begin ... End. | Hauptprogramm |
Übersetzen von Java Datentypen
| Java Datentyp | Pascal Datentyp | Speichergrösse in Bits | Range |
|---|---|---|---|
| byte | Shortint | 8-Bit | -128 .. 127 |
| short | SmallInt | 16-Bit | -32768 .. 32767 |
| int | LongInt | 32-Bit | -2147483648..2147483647 |
| long | Int64 | 64-Bit | -9 223 372 036 854 775 808 .. 9 223 372 036 854 775 807 |
| float | Single | 32-Bit | 1.5E-45 .. 3.4E+38 |
| double | Double | 64-Bit | 5.0E-324 .. 1.7E+308 |
| boolean | Boolean | 8-Bit | False bzw. True |
| char | WideChar | 16-Bit | 2 Bytes codieren ein sichtbares Zeichen |
| String | WideString | 0-Bit bis ∞ | Zeichenkette |
Übersetzen von Java Aufzählungen (Enumerationen)
<thead>
</thead> <tbody>
Die Konstante MAXVALUE enthält den Wert 1</td>
</tbody>
Übersetzen von Java Arrays
| Java | Pascal | Kommentare |
|---|---|---|
| Datentyp[] arrayName = new Datentyp[...]; | Datentyp: Array[...] Of Datentyp; | |
| Datentyp arrayVar[...] = new Datentyp[...]; | Datentyp: Array[...] Of Datentyp; |
Übersetzen der Java Objektorientierung
<thead>
</thead> <tbody>
In Free Pascal ist der Name des Konstruktors Create</td>
</tbody>
Freigabe eines Objektes
<thead>
</thead> <tbody>
In Pascal führt der Aufruf FreeAndNil(...) zum selben Ergebnis.</td>
</tbody>
Klassenbestimmung
| Java | Pascal | Kommentare |
|---|---|---|
| instanceof | Is | Bestimmt die Klassenzugehörigkeit eines Objektes |
Werfen von Exceptions
| Java | Pascal | Kommentare |
|---|---|---|
| throw | Raise | Wirft eine Exception |
| throws | ist in Free Pascal nicht vorhanden | Gibt im Methodenkopf einer Klasse oder Methode an, welche Ausnahme(n) von der Klasse bzw. Methode ausgelöst werden kann. |
Fangen von Exceptions
| Java | Pascal | Kommentare |
|---|---|---|
| try { ... } catch { ... } | Try Begin ... End Except Begin ... End | Fehlerbehandlung mit einem Try-Block |
| try { ... } catch { ... } finally { ... } | begin ... try try ... except ... end; finally ... end; ... end; | Fehlerbehandlung mit einem Block für Abschlussarbeiten |
Threadprogrammierung
<thead>
</thead> <tbody>
In Free Pascal sind alle global definierten Variablen volatile.</td>
</tbody>
Aufruf von Fremdfunktionen (z. B. aus Dll's)
| Java | Pascal | Kommentare |
|---|---|---|
| native | StdCall | Pascal / FPC Standardaufrufkonvention |
| native | CDecl | C Standardaufrufkonvention |
--Olaf 14:28, 24 March 2013 (UTC)
From the Free Pascal wiki, page "Pascal for Java users/de", as it stood on 2014-01-12 after a change by Olaf, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.
