vishia

ZBNF / XML

- ZBNF syntax descr

JZtxtcmd / Zmake

- main description

- Zmake

Docu Generation

vishia-Java

Text/XML conversion

emC - embedded
multiplatform C/++

Java2C

Softwaretechnology

- -Dependencies

- -QuellcodeGenerierung

Inspector & Reflection

- Test on Runtime

- The inspector tool

- Reflection in C

- Inspector Communication

Graphical Programming

Model based - Modelica

Model based - Simulink

SPE SinglePairEthernet

Fcmd

Download Page

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

javadoc:Docu | Javadoc:Test & Examples

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


Java2C bei http://sourceforge.net/projects/java2c


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: