The GRASP Project has created an algorithmic-level graphical representation for software called the Control Structure Diagram (CSD). The CSD was created to improve the comprehension efficiency of Ada source code and, as a result, improve software reliability and reduce software costs. Since its creation, the CSD has been expanded and adapted to include other languages. GRASP provides the capability to generate CSD's from Ada 95, C, C++, Java, and VHDL source code in both a reverse and forward engineering mode with a level of flexibility suitable for professional application. GRASP has been integrated with the GNU family of compilers for Ada (GNAT) and C (gcc), and Sun's javac compiler for Java. Use of GRASP is not restricted to these compilers, however. This has resulted in a comprehensive graphically-based development environment for these languages. The user may view, edit, print, and compile source code as CSDs with no discernible addition to storage or computational overhead.
WLA DX is yet another macro assembler that can program the GB-Z80, Z80, 6502, 65c02, 6510, 65816, HuC6280, and SPC-700 CPUs. Included in the package there is a GB-Z80 disassembler and few converters. WLA DX was initially programmed to compile ROM images for Gameboy, but nowadays it can also patch existing ROM images with code, and even compile program files and ROM files for other CPUs like the NES-6502, C64-6510, and SNES's SPC-700.
GNU Lightning is a library that generates assembly language code at run time. It is very fast, making it ideal for Just-In-Time compilers, and it abstracts over the target CPU, as it exposes to the clients a standardized RISC instruction set (inspired by the MIPS and SPARC chips).
An almost ISO C compatible C compiler that produces binaries for 6502-based computers. Targets that are supported out of the box are: Apple ][, Atari 8-bit machines, Commodore C64/C128/C16/C116, Commodore Plus/4, Commodore 600/700, GEOS for C64, and Lynx. The package includes a complete suite of assembler development tools (assembler, linker, archiver) which allows mixing of C and assembler code.
joeq is a Java 2 (JDK 1.3 and 1.4) compatible virtual machine. It is unique in that it is entirely implemented in Java, leading to greater reliability, portability, maintainability, and efficiency. It is also language-independent, so code from any supported language can be seamlessly compiled, linked, and executed dynamically.