The Simple components for Ada library provides implementations of smart pointers for automatically collected objects (using reference counting), object persistence, unbounded and bounded arrays of smart pointers, generic unbounded arrays of private objects and plain pointers, generic sets, maps, directed graphs, directed weighted graphs, stacks, and storage pools. It also includes table management, string editing, IEEE 754 support, and infix expression parsing tools. Implementations of some lock-free shared data structures are provided.
Styx is a scanner/parser generator designed to address some shortcomings of the traditional lex/yacc combination. It has unique features like automatic derivation of depth grammar, production of the derivation tree, including it's C interface, preservation of full source information, pretty printing to faciliate source-source translation, and persistence to aid rapid interpreter writing. It also supports reentrancy. Styx works well under several different OSes, including serveral Unixes, DOS, and Windows.
The libjit library implements just-in-time compilation functionality. Unlike other JITs, this one is designed to be independent of any particular virtual machine bytecode format or language. Currently, libjit is used as the JIT backend for the DotGNU Portable.NET project (in addition to its default CVM backend). However, the hope is that other Free Software projects can use this library rather than spending large amounts of time writing their own JIT from scratch.
MDK (MIX Development Kit) provides tools for developing and executing, in a MIX virtual machine, MIXAL programs. The MIX is Donald Knuth's mythical computer, described in the first volume of The Art of Computer Programming, which is programmed using MIXAL, the MIX assembly language. MDK includes a MIXAL assembler (mixasm), a MIX virtual machine (mixvm) with a command line interface, a Guile-based virtual machine (mixguile), a GTK+ based GUI (gmixvm), and a mixvm-Emacs interface (mixvm.el). MDK utilities are extensible using Scheme.
Jikes RVM (Research Virtual Machine) provides a flexible open testbed to prototype virtual machine technologies and experiment with a large variety of design alternatives. Jikes RVM runs on many platforms and advances the state-of-the-art of virtual machine technologies for dynamic compilation, adaptive optimization, garbage collection, thread scheduling, and synchronization. It is self-hosted, i.e. its Java code runs on itself without requiring a second virtual machine. Most other virtual machines for the Java platform are written in native code (typically C or C++). A Java implementation provides ease of portability and a seamless integration of virtual machine and application resources such as objects, threads, and operating-system interfaces.
ANTLR (ANother Tool for Language Recognition) is a language tool that provides a framework for constructing recognizers, compilers, and translators from grammatical descriptions containing C++, Java, or Sather actions. It is similar to the popular compiler generator YACC, however ANTLR is much more powerful and easy to use. ANTLR-produced parsers are not only highly efficient, but are both human-readable and human-debuggable (especially with the interactive ParseView debugging tool). ANTLR can generate parsers, lexers, and tree-parsers in either C++, Java, or Sather. ANTLR is currently written in Java.
EiffelStudio is an IDE for the Eiffel language (ECMA-367, ISO/IEC 25436, and ACM Software System Award 2006). It includes: Eiffel compiler, Eiffel editor, Eiffel code browsing tool, Eiffel testing tool, graphical design tool, refactoring tool, debugger, profiler, and Eiffel analysis tools (Metrics, Dependencies, etc.). Eiffel generates C or CLI for .NET or Mono. Eiffel applies O-O principles and Design by Contract for high-quality software. Many Eiffel libraries are included: ADT, network, GUI, database, parsing (including an Eiffel parser), XML, Web, COM, and more.