vishia

ZBNF
Semantic Backus Naur Format
Conversion textfiles to XML

XML

Java and Embedded Systems

Softwaretechnology

vishia-Java

Download Page

features_Java2C | http://sourceforge.net/projects/java2c | vishia-downlaodPage | editthis.info/Java4C-WikiPage

Bazaar source-repositories on Launchpad (Canonical): Java2C | CRuntimeJavalike | ZBNF | srcJava_vishiaRun

javadoc:Docu | Javadoc:Test & Examples

Ein Beispiel | Java2C-Translator | Javadoc: org.vishia.java2C | Nebenthemen


Java2C bei http://sourceforge.net/projects/java2c habe ich selbst dort ins Netz gestellt.

Java2C wurde getestet und verbreitet auch unter: http://download.famouswhy.com/java2c/

und unter http://mac.softpedia.com/get/Developer-Tools/Java2C.shtml und zertifiziert: 100% FREE award granted by Softpedia. Beides gilt derzeit für die Version 0.91.


C oder C++ sind als Implementierungssprachen in der Embedded Welt weit verbreitet oder genauer gesagt die Favoriten. C++ hat sich dabei in den letzten Jahren auch bei seltenen Prozessoren durchaus etabliert. Allerdings sprechen einige Gründe dafür, weiterhin auf C zu setzen.

Doch es gibt eine Nach-C-Ära. Diese ist spätestens mit Java eingeleitet. Java ist nicht nur der Favorit in Internet- verteilten Anwendungen- und PC-Programming, sondern ist auch in vielen Geräten als embedded Software präsent. Java ist konsequent objektorientiert und damit softwaretechnologisch besser. Ein Hauptpunkt ist die Sicherheit der Software. Sicherheit hat dabei zwei Aspekte:

  • Sicherheit bezüglich der Programmierung, Fehleranfälligkeit, TimeToMarket fehlerarm

  • Sicherheitsrelevante Software.

Java hat nur den Makel der Nicht-Echzeitfähigkeit. Dabei geht es nicht um Schnelligkeit (typisches Argument von Java-Kritikern: Die VirtualMachine wäre ein Interpreter daher langsam, stimmt nicht, JIT (Just In Time)-Compiler heben diesen Nachteil auf. Und etwas längere Startup/Ladezeiten sind woanders auch akzeptiert). Der Schwachpunkt ist das Prinzip der Garbage Collection, wasfür bestimmte Zeiten über -zig Millisekunden die Bearbeitung auch mal blockiert.

Nun gibt es in der JTRES (Java Technologies for Real-time and Embedded Systems) darauf Antworten:


Die Entscheidung für Java ist eine weitgehende Systementscheidung, die nicht überall gegangen werden kann. Eine Möglichkeit für den Einsatz von Java ist:

  • Entwickeln und Testen mit Java

  • Implementieren in C

Dann hat man in der Embedded Sphäre die gegebene Systemumgebung. Und kann dennoch von der Java-Softwaretechnologie profitieren. Entwickelt wird in Java am PC, meist unter Eclipse. Damit sind die Algorithmen getestet. Implementiert und maschinengetestet wird in C

Es gibt mehrere Ansätze für die Konvertierung von Java nach C oder C++. Hier wird ein eigener Ansatz vorgestellt. Dabei geht es nicht darum, beliebige Java-Programme nach C(++) zu konvertieren. Das wäre Eulen nach Athen zu tragen, denn Java sollte man dann original verwenden. Es geht darum, für typische Embedded-Software Java verwenden zu können, und dann nach C zu konvertieren. Dazu ist ein abgestimmter Leistungsumfang ausreichend. Dieser umfasst aber auch das Interfacekonzept und die wichtigsten Klassen aus java.lang und java.util.

Zwischenstände sind downloadbar, siehe vishia-downlaodPage

Stand des Projektes: