Universitaet Koblenz-Landau
Institut für Informatik
Impressum

Arbeitsgruppe Compilerbau und CAD

Manfred Rosendahl



Prof.Dr. Manfred Rosendahl

E-mail: r o s at u n i-k o b l e n z. de
FB-Informatik                     | Tel : +49-261-287-2725
Universitaet Koblenz           | Fax : +49-261-287-100-2725
Postfach 201602 D56016 Koblenz | http://www.uni-koblenz.de/~ros

Pas2Java


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


Bedienung

Kurzbeschreibung

Forschungsgebiete

Compilerbau und Computer Aided Design (CAD)

Ein besonderer Schwerpunkt in den letzten Jahren war die Entwicklung des Systems KOGGE.
Kogge ist ein Constraint basiertes 2D CAD System, das als VarioCAD Zusatzprogramm realisiert ist. Das System hat 2 besondere Fähigkeiten. Zu einem dient es als Constraint basiertes 2D CAD System. Ähnlich wie bei den Sketch Editoren können dabei geometrische Elemente mit Beziehungen definiert werden. Ändert man einzelne Elemente in Position oder Wert so verändert sich die Zeichnung bzw. das Modell nur so, dass diese Beziehungen erhalten bleiben. Ist das nicht möglich wird die Operation nicht ausgeführt und ein Fehler gemeldet.
Der zweite Schwerpunkt ist die Erstellung von Diagrammen. Diese Diagramme bestehen aus Knoten und Kanten. Die Kanten stellen jeweils eine Verbindung zwischen 2 Knoten dar. Für die Knoten gibt es verschiedene vordefinierte Formen, u.a. Punkte, Kreise, Ovale, Rechtecke. Man kann auch eigene Formen definieren. Diese Formen können mit editierbaren Texten, auch mehrzeilig, gefüllt werden. Für die Kanten gibt es ebenfalls vordefinierte Typen, wie einfache Linien, Pfeile, Doppelpfeile, Ovale als auch selbst definierte Kantenarten. Für den Anschluss der Kanten an die Knoten gibt es auch mehrere vordefinierte Arten. Die Kanten können auf die Mitten der Knoten zulaufen und werden dabei jeweils am Knotenrand abgeschnitten. Sie können aber auch als Manhattan Kanten ausgebildet werden. Dabei läuft ein Teil waagrecht und der andere Teil senkrecht. Die dritte Form sind orthogonale Kanten. Dabei werden 2 senkrechte Teile durch einen waagrechten Teil verbunden, wenn der senkrechte Abstand der Knoten größer als der waagrechte Abstand ist oder umgekehrt, wenn der waagrechte Abstand größer ist. Die Position der orthogonal einlaufenden Kanten am Knoten wird dabei so platziert, dass es keine Überschneidungen gibt. Werden Knoten verschoben, so wird diese Platzierung automatisch angepasst.
Für die Positionierung der Knoten kann wiederum auch auf das Constraint System zurück gegriffen werden. So können z.B. Knoten senkrecht, waagrecht oder mit gleichem Abstand ausgerichtet werden. Diese Kombination von Diagramm Erstellung und Constraint System erlaubt es Diagramme nicht nur einfach zu erstellen sondern sie auch einfach und konsistent zu modifizieren.

Beschreibung(PDF)

Überblicks Artikel: Parametrische Modellierung als PDF


Download des Systems
VarioCAD, Download bei heise
oder
Download von Uni-Koblenz.de VarioCAD

Projekte

Veröffentlichungen

Informationen zu Vorlesungen

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 CAD SS98 ZIP-datei

Vorlesung: Moderne Programmiersysteme(SS 2000)

Fragenkatalog Praktische Informatik CV


Sonstige Informationen

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)  )  

Constraint representation of 2-dimensional models with respect to avoiding cyles

COMPUTER-AIDED DESIGN & APPLICATIONS, 2017VOL. 14, NO. 1, 117–126

Artikel: Parametrische Modellierung als PDF


FcopyW.exe 


Partner:

WILOFA DIAMANT Willi Lohmann GmbH & Co. KG

NuNale Nagelfeilen


RSV

Letzte Änderung: 22.10.2013