MIX is Donald Knuth's mythical computer as described in his monumental work
The Art Of Computer Programming. As any of its real counterparts, the MIX
features registers, memory cells, an overflow toggle, comparison flags,
input-output devices, and a set of binary instructions executable by its
virtual CPU. You can programme the MIX using an assembly language called
MIXAL, the MIX Assembly Language.
The MIX Development Kit offers an emulation of MIX and MIXAL. The current
version of MDK includes the following applications:
- mixasm A MIXAL compiler, which translates your source files into binary
ones, executable by the MIX virtual machine.
- mixvm A MIX virtual machine which is able to run and debug compiled MIXAL
programs, using a command line interface with readline's line editting
capabilities.
- gmixvm A MIX virtual machine with a GTK+ GUI which allows you running and
debugging your MIXAL programs through a nice graphical interface.
- mixvm.el An elisp program which allows you to run mixvm within an Emacs
GUD window, simultaneously viewing your MIXAL source file in another
buffer.
Nickle is a programming language based prototyping environment with powerful
programming and scripting capabilities. Nickle supports a variety of
datatypes, especially arbitrary precision numbers. The programming language
vaguely resembles C. Some things in C which do not translate easily are
different, some design choices have been made differently, and a very few
features are simply missing.
Nickle provides the functionality of Unix bc, dc, and expr in much-improved
form. It is also an ideal environment for prototyping complex algorithms.
Nickle's scripting capabilities make it a nice replacement for spreadsheets
in some applications, and its numeric features nicely complement the limited
numeric functionality of text-oriented languages such as AWK and Perl.
Mixal is a version the assembler and interpreter for Donald Knuth's
mythical MIX computer, defined in:
Donald E. Knuth, _The Art of Computer Programming, Vol. 1: Fundamental
Algorithms_. Addison-Wesley, 1973 (2nd ed.)
This preliminary release doesn't do floating point and has little
documentation as yet, but it works well enough to be used in conjunction
with the book.
This port contains standard, useful autoconf macros for detecting
OCaml, findlib, OCaml packages, etc.
Nim (formerly known as "Nimrod") is a statically typed, imperative
programming language that tries to give the programmer ultimate power
without compromises on runtime efficiency. This means it focuses on
compile-time mechanisms in all their various forms.
Beneath a nice infix/indentation based syntax with a powerful (AST
based, hygienic) macro system lies a semantic model that supports a soft
realtime GC on thread local heaps. Asynchronous message passing is used
between threads, so no "stop the world" mechanism is necessary. An unsafe
shared memory heap is also provided for the increased efficiency that
results from that model.
- nML is a dialect/harmony of Standard ML of New Jersey and Objective Caml.
- nML is a higher-order and typed programming language.
- nML does not stand against the C programming convention.
- nML compiler is a compiler of the nML language
using the Objective Caml compiler:
nML parser + nML type-checker +
nML-to-OCaml translator + the OCaml compiler.
A compiler for a simple language for programming the LEGO RCX or CyberMaster
controllers. The language itself is "Not Quite C" and includes preprocessor
and control structures very similar to the C language, but with restrictions
imposed by the limitations of the RCX hardware/firmware itself.
Besides compiling, nqc also provides functions for downloading the RCX
firmware as well as uploading programs to and downloading from the RCX.
The NQC home page includes documentation for the language itself including
examples.
P2c is a tool for translating Pascal programs into C. The input consists
of a set of source files in any of the following Pascal dialects: HP
Pascal, Turbo/UCSD Pascal, DEC VAX Pascal, Oregon Software Pascal/2,
Macintosh Programmer's Workshop Pascal, Sun/Berkeley Pascal, Texas
Instruments Pascal, Apollo Domain Pascal. Modula-2 syntax is also
supported. Output is a set of .c and .h files that comprise an
equivalent program in any of several dialects of C. Output code may be
kept machine- and dialect independent, or it may be targeted to a
specific machine and compiler. Most reasonable Pascal programs are
converted into fully functional C which will compile and run with no
further modifications, although p2c sometimes chooses to generate
readable code at the expense of absolute generality. P2c endeavors to
insert notes and warning messages into the output code to point out
areas which may require human intervention. Output code is arranged to
be readable and efficient, and to make use of C idioms wherever
possible. The main goal of the translation is to produce C files which
are pleasant and "natural" enough to be acceptable as the new source
files for a program. In a pinch, p2c will also serve as an ad hoc Pascal
compiler. The p2cc script makes it easy to use p2c as a compiler.
Emacs lisp modules for the Python language.
A Python extension embedding SWI-Prolog
PyProlog is a Python extension that permits direct access to an
embedded PROLOG. The extension lends Python the efficient unification
and backtracking of PROLOG, and allows a programmer to instrument
Python classes with PROLOG code. Callbacks from PROLOG to Python are
also supported.