The Functional XML Parsing Framework is a package of low-to-high-level lexing and parsing procedures that can be combined to yield a SAX, DOM, validating parsers, or a parser intended for a particular document type. The procedures in the package can be used separately to tokenize or parse various pieces of XML documents. The package supports XML namespaces, character, internal, and external parsed entities, xml:space, attribute value normalization, processing instructions and CDATA sections. It is intended to be a framework, a set of "Lego blocks" you can use to build a parser that follows DOM, SAX, or another discipline, and performs validation to any degree. As an example of such parser construction, the package includes a semi-validating SXML parser. It converts XML to SXML, an instance of XML Infoset as S-expressions, an abstract syntax tree of an XML document. SXML can be queried (in a XPath style), transformed, and evaluated. The framework parses XML in a pure functional style, as folding over a text XML document considered a spread-out tree. The input port is treated as a linear, read-once parameter. The framework's code does not use assignments at all.
A practical lambda-calculator is a normal-order evaluator for the untyped lambda-calculus, extended with convenient commands and shortcuts to make programming in it more productive. Shortcuts are distinguished constants that represent terms. Commands define new shortcuts, activate tracing of all reductions, compare terms modulo alpha-conversion, print all defined shortcuts and evaluation flags, etc. Terms to evaluate and commands are entered at a read-eval-print-loop (REPL) "prompt" or "included" from a file by a special command. A Haskell branch is an embedding of the lambda calculator (as a domain-specific language) into Haskell. The calculator can be used interactively within Hugs or GHCi.
travtrack is a tool to help a Traveller(tm) referee keep track of essential data for a game. Already implemented are galaxies, sectors, subsectors, systems, stars, planets, belt and moons. Yet to be implemented are trade routes, ships, characters, and all the rest. These will take some time, but should not be too complex. It currently uses the GURPS Traveller:First In rules for system generation, but a subproject is under way to add Classic Traveller generation and output. travlib is a collection of C routines that should make writing a Traveller application easier. A guile interface to the data representation functions is provided.
ILISP is a package that is designed to integrate various Lisp implementations (mostly Common Lisp systems and various Scheme dialects, including Guile) within Emacs (or XEmacs). ILISP runs an inferior Lisp process (in Emacs parlance) and provides a specialized set of commands, key bindings, and menus to ease the interaction with it. ILISP commands access the underlying Lisp process and provide ways to make the editing, compilation, and execution of Lisp programs much easier.
QuantLib is a cross-platform, quantitative finance C++ library for modeling, pricing, trading, and risk management in real-life. It is also wrapped as Python/Ruby/Scheme modules. Extensions for Excel, R, and Mathematica are available. Other such extensions are under consideration. QuantLib offers tools that are useful both for practical implementation and for advanced modeling. It features market conventions, yield curve models, solvers, PDEs, Monte Carlo (low-discrepancy included), exotic options, VAR, and so on.
Kew is a simple, embeddable, container-based, object-oriented programming language. Many of its features are inspired by Smalltalk and Scheme. Its syntax is similar to Smalltalk's, but it has the compact and modular design of Scheme, along with proper closures and continuations. There is also powerful exception handling and write-your-own containers, which allow you to produce sandboxes.
The Yehia Framework provides plugin management for C++ programs. You can conveniently incorporate both compiled and interpreted-language plugins into C++ programs. The use of several scripting languages in a single program is possible, and each scripting language runs either in the main thread of the program or in a separate thread.