Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba KABA Sicheres JavaEinleitungTypensystemE-JAVAFazit Stefan Gehrmann Frank Schubert Denis Gotthans.

Ähnliche Präsentationen


Präsentation zum Thema: "Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba KABA Sicheres JavaEinleitungTypensystemE-JAVAFazit Stefan Gehrmann Frank Schubert Denis Gotthans."—  Präsentation transkript:

1 Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba KABA Sicheres JavaEinleitungTypensystemE-JAVAFazit Stefan Gehrmann Frank Schubert Denis Gotthans Matthias Rieke Matthias Brzesowsky Andreas Gohr Experimentelle Weiterentwicklung der Programmiersprache Java zu Kaba Ein Projekt unter Leitung von Prof. Dr. Horst Hansen

2 Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba Gliederung Einleitung –Vorgeschlagene Themen –Entwicklungsumgebung Vorstellung der behandelten Themen –Sicheres Java –Typensystem –Europäisches JAVA Fazit Sicheres JavaEinleitungTypensystemE-JAVAFazit

3 Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba Vorgeschlagene Themen Sicheres Rechnen in Java Get/Set Methoden durch Schlüsselworte Trennung von Schnittstelle und Implementierung Neue Threads Rechnen mit physikalischen Einheiten Unveränderbare Objekte Methodenredefinition in Objekten Sicheres JavaEinleitungTypensystemE-JAVAFazit

4 Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba Entwicklungsumgebung Projektserver Standort FHTW Projektlabor VG 220 Debian GNU/Linux SSH Zugang für Projektteilnehmer Sourcen von Kaffe und Jikes RVM Sicheres JavaEinleitungTypensystemE-JAVAFazit

5 Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba Entwicklungsumgebung BerliOS Service von Fraunhofer Fokus (GMD) –http://developer.berlios.de Webbasierte Umgebung –Mailingliste –CVS Server –Dokumentationsverwaltung –Aufgabenverwaltung –Downloads Sicheres JavaEinleitungTypensystemE-JAVAFazit

6 Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba Sicheres Java Problem: Fehlerhafte Addition: MAX_INTEGER + 1 = MIN_INTEGER Ziel: MAX_INTEGER + 1 OverflowException Sicheres JavaEinleitungTypensystemE-JAVAFazit

7 Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba Sicheres Java Lösungsansatz I Datentyp ohne Wertebereichseinschränkung z.B. BigInteger, BigDecimal Vorteil: schnell implementiert Nachteil: sehr langsam Sicheres JavaEinleitungTypensystemE-JAVAFazit

8 Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba Sicheres Java Lösungsansatz IIa Auslesen des Overflow Flags der CPU Vorrausetzung: Rechenoperation in Assembler Notwendig: JNI – Java Native Interface Vorteil: schnell Nachteil: plattformabhängig Sicheres JavaEinleitungTypensystemE-JAVAFazit

9 Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba Sicheres Java Lösungsansatz IIb Implementieren der Lösung IIa direkt in VM An KaffeVM versucht Trotz Teilerfolgen an Komplexität der VM gescheitert Sicheres JavaEinleitungTypensystemE-JAVAFazit

10 Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba Sicheres Java Lösungsansatz III Rechenoperation atomisieren +1; prüfen ob MAX_INTEGER erreicht: Ja Exception; Nein weiter addieren Vorteil: komplett in JAVA implementierbar Nachteil: langsam Sicheres JavaEinleitungTypensystemE-JAVAFazit

11 Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba Sicheres Java EinleitungTypensystemE-JAVAFazit

12 Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba Rechnen mit phys. Einheiten Konzept: Abbildung im Rechner mit dualem Typsystem möglich, mit implementierungsspezifischem und semantischem Anteil, Notation von Berechnungen als Ausdrücke Implementierungsmöglichkeiten: –Erweiterung der Sprache, Änderung VM –Klassenbibliothek –Inline-Skriptsprache Sicheres JavaEinleitungTypensystemE-JAVAFazit v= 36km/2h = 5 m/s

13 Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba Klassenbibliothek J.A.D.E. Java Addition to Default Environment –http://jade.dautelle.com Freie (LGPL) Java Bibliothek Physikalisches Einheitensystem Bekannte Einheiten bereits implementiert Automatische Umrechnung zwischen verschiedenen Einheiten Sicheres JavaEinleitungTypensystemE-JAVAFazit

14 Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba J.A.D.E. Beispiel Geschwindigkeitsberechnung: Quantity weg = Quantity.valueOf(36 km"); Quantity zeit = Quantity.valueOf(2 h"); Quantity erg = weg.divide(zeit); System.out.println(erg); Gibt die Geschwindigkeit mit der Einheit in m/s aus: 5.0 m/s Sicheres JavaEinleitungTypensystemE-JAVAFazit

15 Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba Ursprünglich zum Handling kompl. Konfigurationsdateien Moderne, prozedurale Sprache ähnlich Javascript mit komfortablen Möglichkeit zur Datenbeschreibung In Entwicklung an der PUC Rio de Janeiro seit 1994 für C++ und Java Einbindung des Lua-Interpreter über die Klasse Luajava Zu berechnender Ausdruck kann direkt an Lua-Programm zur Auswertung übergeben werden Sicheres JavaEinleitungTypensystemE-JAVAFazit Skriptsprache Lua

16 Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba try { API.pushString("s=36km"); API.pushString("t=2h"); API.pushString("s/t"); API.doFile("expr.lua"); } catch (LuaException e) { System.out.println(e); } LuaObject result=API.pop(); String result=getResult(1); // => 5.0 m/s Sicheres JavaEinleitungTypensystemE-JAVAFazit Beispiel Lua

17 Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba Resümee Rechnen mit physikalischen Einheiten Klassenbibliothek JADE: –bekannte Maßeinheiten sind schon implementiert –neue (Preußische Meilen) können einfach hinzugefügt werden –Negativ: Parser für Ausdrücke ist nicht enthalten Skriptsprache LUA: –Datenübergabe und Parser für Ausdrücke leicht implementierbar –unabhängig von Programmiersprache –Lua Programme können wiederverwendet werden –Negativ: Sprache noch in der Entwicklungsphase Sicheres JavaEinleitungTypensystemE-JAVAFazit

18 Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba Europäisches Java Trennung von Schnittstelle und Implementierung Java hat zwei Sprachmittel um die Schnittstelle eines Objekts zu definieren –Das Konzept Interface –Zugriffsdeklaration der Methoden (Klasse) Sicheres JavaEinleitungTypensystemE-JAVAFazit

19 Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba Sprachmittel der Schnittstelle public interface DoIt { void doIt(); } public class DoSomething { public void doSomethingElse() {...} } Sicheres JavaEinleitungTypensystemE-JAVAFazit

20 Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba Lösungsansatz Idee: Zwang zum Interface –Jede public Methode muß in einem Interface deklariert sein –public static final Attribute müssen in das Interface Syntax Checker Interface creation tool Sicheres JavaEinleitungTypensystemE-JAVAFazit

21 Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba Syntax Checker Basiert auf XJavadoc (XDoclet - Jakarta) –Nachimplementierung und Erweiterung von SUNs JavaDoc –Attribute-Oriented Programming Probleme –Schlecht dokumentiert –Ungewohntes Verhalten Sicheres JavaEinleitungTypensystemE-JAVAFazit

22 Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba Interface Generator BeautyJ – Konfigurierbares Java Source Code Formatiertool & Source Code API Probleme: –JAR Datei > 1 MByte, da Xerces 2.0 mit eingebunden werden muss –undokumentiert Sicheres JavaEinleitungTypensystemE-JAVAFazit

23 Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba Zukünftige Erweiterungen default Sichtbarkeit (package private) Sprachliche Ausdrucksformen wie Singleton Konstruktoren Sicheres JavaEinleitungTypensystemE-JAVAFazit

24 Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba Fazit Einsatz verschiedenster Technologien: –Assembler –JIT –LUA –Attributorientierte Orientierung –Diverse Bibliotheken Sicheres JavaEinleitungTypensystemE-JAVAFazit

25 Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba Fazit Es ist uns gelungen JAVA in vielfältiger Weise zu erweitern Teile unserer Ideen bereits in.NET realisiert –z.B. checked Schlüsselwort um Überläufe zu erkennen Sicheres JavaEinleitungTypensystemE-JAVAFazit


Herunterladen ppt "Einleitung FHTW-Berlin Diplomandenseminar Projekt: Kaba KABA Sicheres JavaEinleitungTypensystemE-JAVAFazit Stefan Gehrmann Frank Schubert Denis Gotthans."

Ähnliche Präsentationen


Google-Anzeigen