Here you find a list of projects as follow-up to the VSIS class. Some of these projects are funded.

Clinit Order (Tools1)

edit

Analyze the application and produce a correct order of class initialization methods. Report an error when this order cannot be determined.

Classfile optimization (Tools1)

edit

For embedded systems the memory footprint is of primary importance. However, the standard library contains many methods or fields that are probably never used by the application. JOPizer already analyzes the application and removes unused classes. The project here is to extend this optimization to remove unused methods and fields.

Java TCP/IP (CLDC2)

edit

A TCP/IP stack written completely in Java based on ejip. API for the TCP/IP stack as in javax.microedition.io, part of CLDC. The TCP/IP stack has to be implemented for real-time applications (time predictable code and memory usage).

Java bytecode optimizer

edit

The standard Java compiler (javac) performs no optimization at all. Optimization is postboned to the JIT compiler. For a Java processor (or an interpreting JVM) this is not an optimal solution. The idea is to implement standard compiler optimizations and processor specific optimizations at the bytecode level. See: JVM Specification, Byte Code Engineering Library and ASM

JOP Debugger (Tools2)

edit

A debugger inteface, the JavaTM Debug Wire Protocol or a different solution with Eclipse , for JOP.

Real-time Library (CLDC1)

edit

Implementation of the standard library (JDK CLDC subset) for real-time systems on JOP based on GNU Classpath (Java).

JVM Test Framework (CLDC3)

edit

There is no free test suite available to verify the correctness of the JVM. Implementation of test cases to verify that an implementation of a JVM (Java Virtal Machine) confirms to the JVM specification. Test of JOP and other JVMs.

Library Test Cases (CLDC3)

edit

Adaption of available JDK test cases for the embedded domain (JDK subset) and implementation of missing test cases. Test of JOP and other JVM implementations.

Documentation of Sample Applications (DOC1)

edit

HOW TO documents with sample applications for an easy start with JOP. Shall be a beginning of a user manual.

WCET Analysis of Java Applications

edit

Worst-case execution time (WCET) estimates are essential for real-time systems. The theory for static WCET analysis is mature. However, the tools are still missing. The tool shall provide WCET estimates for Java real-time applications running on a Java processor (JOP) that is designed to be an easy target (thesis) for WCET analysis.

SoftFloat

edit

Porting a software implementation of floating-point operations (SoftFloat) from C to Java. Extensive tests of the implementation. Part of the implementation is done, you are not starting from scratch.