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.
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.
Bugloo is a source level debugger for the Scheme compiler Bigloo. It aims at helping to debug Bigloo programs compiled into JVM bytecode. It is implemented by means of the JVM Debugging Architecture, a set of standard APIs provided by Sun to make debuggers and profilers. Currently, Bugloo can debug Bigloo programs, Java programs, or a mix of both. It is based on the debugging model used in GDB and provides additional features like debug sessions, traces, memory debugging, programmable breakpoints and embeddable interpreters. It is a command-line debugger. For the sake of simplicity, it includes a graphical user environment for GNU Emacs or XEmacs.
Chicken is a Scheme compiler that translates most of R5RS Scheme into relatively portable C. It supports fully general tail-call recursion, first-class continuations, and has a very flexible and efficient interface to C and C++. Chicken implements several extensions to the Scheme language: lightweight threads, pattern matching macros, dynamic loading of compiled code, and various object-oriented paradigms, such as TinyCLOS, and others. The library system includes hundreds of convenient modules for practical use.
ECB is a source code browser for (x)emacs. It displays a couple of windows that can be used to browse directories, files, and file contents like methods and variables. It supports source code parsing for languages like Java, C, C++, Elisp, Scheme, Perl, TeX, LaTeX, etc. In addition, it offers an (optional) permanent "compile window" at the bottom of the emacs frame, which is used to display all help and compile output. The rest of the frame is called the "edit area", which can be divided into several edit windows that are used for editing the sources. Deleting some of the edit windows neither destroys the compile window nor the browsing windows. It requires the CEDET suite.
Eleven is a programming language for creating robust, scalable Web applications quickly and easily. It offers a 20x programmer productivity increase over traditional server programming languages like ASP, PHP, and JSP by automating state management and taking control of the application's look and feel. From high-level source code with a simple, C-like syntax, the compiler generates complete, ready-to-run implementations in PHP or mod_perl. Applications maintain their state in a relational database and are inherently fault-tolerant, secure, and scalable.
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.
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.