27 projects tagged "OS Independent"
Momoko is a generic, object-oriented, modular, extensible environment for creating multi-user environments. It is suitable for writing MUDs, servers, and community-based Web sites. It is written in pure Java and supports Java and Python as internal scripting languages. Momoko provides facilities for organizing objects into tree-based hierarchies, orthogonal persistence, a transparent distributed objects system, remote access to source code and user files via WebDAV, a telnet-enabled shell for manipulating the object database, and an integrated build process which can be triggered remotely.
Serveez is a server framework which provides routines and help for implementing IP-based servers (TCP, UDP, and ICMP). It is also possible to use named pipes for all connection-oriented protocols. The package includes a number of servers that work already: an HTTP server, an IRC server, a Gnutella spider, and some others. One of the highlights is that you can run all protocols on the same port. The application itself is single-threaded, but it uses helper processes for concurrent name resolution and ident lookups.
SISC is an extensible Java-based interpreter of the algorithmic language Scheme. It uses modern interpretation techniques and handily outperforms all existing Java interpreters (often by more than an order of magnitude). In addition, SISC is a complete implementation of the language. The entire R5RS Scheme standard is supported. This includes a full number tower including complex number support and arbitrary precision integers and floating point numbers, proper tail recursion, hygienic macros, and full support for first-class continuations (not just the escaping continuations found in many other systems).
The Kawa Scheme System is a full Scheme implementation, completely written in Java. Scheme functions and files are automatically compiled into Java byte-codes. Kawa does some optimizations, and the compiled code runs at a reasonable speed. It provides the usual read-eval-print loop, as well as batch modes. The Kawa compilation framework is also useful for implementing other languages on top of JVM. There is active development of XQuery (the XML query language), and less active development of Emacs Lisp, Common Lisp, and EcmaScript.
TinyScheme is a lightweight Scheme interpreter that implements as large a subset of R5RS as possible without getting very large and complicated. It is meant to be used as an embedded scripting interpreter for other programs. As such, it does not offer IDEs or extensive toolkits although it does sport a small top-level loop, included conditionally. A lot of functionality in TinyScheme is included conditionally, and it allows multiple interpreter states to coexist in the same program without any interference between them. Foreign functions in C can also be added and values can be defined in the Scheme environment.
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.
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.