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.
AutoGen is a tool designed for generating program files that contain repetitive text with varied substitutions. Its goal is to simplify the maintenance of programs that contain large amounts of repetitious text. This is especially valuable if there are several blocks of such text that must be kept synchronized. Output is specified with a Scheme-enhanced output template. Input, if required by your template, may come from AutoGen definitions, CGI data, or XML files.
Ciao is a complete Prolog system subsuming ISO-Prolog with a novel modular design which allows both restricting and extending the language. Ciao extensions currently include feature terms (records), higher-order, functions, constraints, objects, persistent predicates, a good base for distributed execution (agents), and concurrency. Libraries also support WWW programming, sockets, and external interfaces (C, Java, TCL/Tk, relational databases, etc.). An Emacs-based environment, a stand-alone compiler, and a toplevel shell are also provided.
Apache Cocoon is a Web development framework built around the concepts of separation of concerns and component-based Web development. Cocoon implements these concepts around the notion of "component pipelines", each component on the pipeline specializing on a particular operation. This makes it possible to use a Lego(tm)-like approach in building Web solutions, hooking together components into pipelines without any required programming.
Data::Locations is a virtual file manager which allows you to write and read data (text and binary) to and from virtual files (think of bubbles). Moreover, this manager allows you to (recursively) define "magic" insertion points in these virtual files (bubbles inside other bubbles) which can be filled in (inflated) later (through a "straw", i.e., the object's reference), at any convenient time and in any order you like. Since this software acts purely in memory, there is no slowing down through costly file input/output (i.e., no temporary files).