Pascal for Java users/de
Deutsch · English
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.
Talk about this page
Nobody has opened a bench for this page yet. Sign in to open one.
