A Java-to-C Translator

Toba is no longer maintained or supported, and these web pages are no longer being updated. You can still download Toba, but note that it is tied to the obsolete JDK version 1.1.

Giant Rat in Lake Toba

Toba translates Java class files into C source code. This allows the construction of directly executable programs that avoid the overhead of interpretation. Toba deals with stand-alone applications, not applets.

Toba is named after Lake Toba, a prominent feature of Sumatra (the island just west of Java).

About Toba

The Toba documentation is on-line; start with this overview. More information, including examples of generated code, is available in a technical report about Toba. The report is available in PostScript and PDF formats.

Frequently Asked Questions

The Toba FAQ file is expected to grow over time.


We have some (out-of-date) benchmark results comparing Toba with other implementations.

Download Toba

The current version of Toba is version 1.1c, released April 13, 1999. The Release Notes highlight what's new in version 1.1. Changes relative to the original 1.1 release are documented on the patches page. This version supports JDK 1.1.

Toba runs under Irix 6.2, Linux 2.0, and Solaris 2.5. The Linux implementation supports dynamic loading with a Just-In-Time compiler.

Toba may now be used freely under a relaxed license. The Toba package also includes, in accordance with their respective license agreements, the following separate packages:

all of which are covered by separate copyrights.

Toba is distributed in source code form.

(by FTP; by HTTP) 3.0 MB compressed tar file
(by FTP; by HTTP) 2.0 MB gzipped tar file

There may be patches to the base distribution that you should download to fix various bugs.

You will also need version 1.1 of the Java Developers Kit. See the installation notes for other requirements.

Sumatra Project
Department of Computer Science