![]() |
|
![]() |
|
Impressum |
Pascal nach Java Konverter pas2java
Die Konvertierung eines Pascal Programms in ein Java Programm erfordert nicht nur eine syntaktische Umsetzung sondern die semantischen Unterschiede zwischen Pascal (Delphi, Freepascal) und Java müssen berücksichtigt werden.
Der Konverter beachtet diese Unterschiede und erzeugt ein Java Programm, dass sich möglichst eng an die Pascal Vorlage hält. Nicht unterstützt werden geschachtelte Prozeduren, da dies in Java nicht möglich ist.
Es werden die Standard Prozeduren und Funktionen von Pascal unterstützt, von den Systembibliotheken aber nur tlist und tstringlist.
Es wird auch bisher nur eine Datei mit dem Projekt unterstützt, keine mit uses eingebunden Module.
In Pascal stellen mit Ausnahme der Klasseninstanzen (Objekte) alle Variablen einen Speicherbereich dar, nur die Objekte geben die Adresse der Instanz an. In Java repräsentieren nur die Basistypen, wie int, char,double,boolean den Speicherbereich, bei allen anderen wie Arrays,Rekords und Objekte ist der Inhalt der Variablen die Adresse des Datenbereichs auf der Halde.
In Java gibt es keine records. Rekords müssen durch Klassen ersetzt werden. Dabei hat man wieder das Problem dass die Klassenvariablen Zeiger sind während die Rekord Variablen in Pascal den Speicherbereich darstellen. Damit bei einer Zuweisung a=b ein nachträgliche Änderung von a keine Auswirkung auf b hat muss a auf eine Kopie von b zeigen. Für jede Klasse, die einen Rekord darstellt muss eine Funktion für eine deepcopy mycopy definiert werden. Ebenso für die Zuweisung ass eine Funktion zum kopieren des Speicherbereichs.
Für Strings gibt es in Java die String und StringBuffer.
Bei der Übertragung von Strings nach Java wird eine eigene Klasse string benutzt,
Die Klasse string hat als Komponente eine Instanz von StringBuilder. Der Zugriff auf die Zeichen des Strings erfolgt durch die Methoden get und put. Diese werden umgesetzt auf die Methoden charAt und setCharAt von StringBuilder. Dabei wird auch jeweils der Index um 1 erniedrigt, da in Pascal das erste Zeichen den Index 1 hat.
Ein großes Problem besteht auch bei der Umsetzung der Prozeduren bzw. Funktionsaufrufen. In Java sind alle Parameter durch call by value realisiert. D.h. bei den Basis Typen werden wie Werte kopiert und bei den anderen Typen die Zeiger.
In Pascal gibt es ein Aufruf mit call-by-value, dabei wird eine Kopie des Speicherbereichs des aktuellen Parameters als formaler Parameter in der Prozedur benutzt. Steht vor dem formalen Parameter in der Prozedurdefinition ein var so hat man ein call-by-reference. Hier wird die Adresse des aktuellen Parameters übergeben. In der Prozedur wird beim Auftreten des Parameters die Adresse automatisch dereferenziert. Bildet man die Basistypen von Pascal (z.B. integer) einfach auf die entsprechenden Typen in Java ab (z.B. int) hat man keine Möglichkeit einen call-by-refrence zu machen. Um den aktuellen Parameter in der Prozedur verändern zu können muss man eine Adresse übergeben.
Dazu können die Basistypen wie integer auf eine entsprechende Klasse myint umgesetzt werden.
Pas2Java (Beschreibung PDF)
Das Programm kann hier heruntergeladen werden
Überblicks Artikel: Parametrische Modellierung als PDF
Vorlesung:Geometrisches Modellieren und CAD (SS 2011)
Elementare Prozeduren für 2D Geometrie(d2basic.pas)
Vorlesung: Aufbau von 3D CAD Systemen(WS 98/99)
Vorlesung Compilerbau (SS 2010)
Vorlesungen Informatik C und D (SS 2007)
Vorlesung:Rechnerorganisation (Informatik 4) (SS 2004)
Vorlesung Informatik B (SS 2004)
Vorlesung Informatik A (WS 01/02)
Vorlesung: Programmiersysteme (WS01/02)
Vorlesung: Moderne Programmiersysteme(SS 2000)Fragenkatalog Praktische Informatik CV
Vortrag: Geometrische Constraints in der Softwaretechnik 15.2.00 als HTML
Vortrag:Geometrische Constraints in der Softwaretechnik als PDF Dokument (1.05 MB)
Vortrag:Constraint basiertes CAD (2.7.13) als PDF Dokument
Objektorientierte Implementierung
einer Constraint basierten geometrischen Modellierung
Fachberichte Informatik
12--2004 (
Details
BibTeX Download:
[pdf] (257.4kB) )
COMPUTER-AIDED DESIGN & APPLICATIONS, 2017VOL. 14, NO. 1, 117–126
Artikel: Parametrische Modellierung als PDF
Partner:
WILOFA DIAMANT Willi Lohmann GmbH & Co. KG
Letzte Änderung: 22.10.2013