diff --git a/general.ent b/general.ent
index 4286da3aed..5b40120697 100644
--- a/general.ent
+++ b/general.ent
@@ -1,4 +1,4 @@
-
+
diff --git a/general/prog/other-tools.xml b/general/prog/other-tools.xml
index adbae65b1e..483a31d482 100644
--- a/general/prog/other-tools.xml
+++ b/general/prog/other-tools.xml
@@ -57,6 +57,455 @@
-->
+
+ A+
+
+ A+ is a powerful and efficient
+ programming language. It is freely available under the GNU General
+ Public License. It embodies a rich set of functions and operators, a
+ modern graphical user interface with many widgets and automatic
+ synchronization of widgets and variables, asynchronous execution of
+ functions associated with variables and events, dynamic loading of user
+ compiled subroutines, and many other features. Execution is by a rather
+ efficient interpreter. A+ was created at
+ Morgan Stanley. Primarily used in a computationally-intensive business
+ environment, many critical applications written in
+ A+ have withstood the demands of real world
+ developers over many years. Written in an interpreted language,
+ A+ applications tend to be portable.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
+
+ ASM
+
+ ASM is a Java bytecode manipulation
+ framework. It can be used to dynamically generate stub classes or other
+ proxy classes, directly in binary form, or to dynamically modify
+ classes at load time, i.e., just before they are loaded into the Java
+ Virtual Machine. ASM offers similar
+ functionalities as BCEL or SERP, but is much smaller (33KB instead of
+ 350KB for BCEL and 150KB for SERP) and faster than these tools (the
+ overhead of a load time class transformation is of the order of 60% with
+ ASM, 700% or more with BCEL, and 1100% or
+ more with SERP). Indeed ASM was designed to be
+ used in a dynamic way (though it works statically as well) and was
+ therefore designed and implemented to be as small and as fast as
+ possible.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
+
+ <bigwig>
+
+ <bigwig> is a high-level
+ programming language for developing interactive Web services. Programs
+ are compiled into a conglomerate of lower-level technologies such as C
+ code, HTTP, HTML, JavaScript, and SSL, all running on top of a runtime
+ system based on an Apache Web server module. It is a descendant of the
+ Mawl project but is a completely new design and implementation with
+ vastly expanded ambitions. The <bigwig>
+ language is really a collection of tiny domain-specific languages
+ focusing on different aspects of interactive Web services. These
+ contributing languages are held together by a C-like skeleton language.
+ Thus, <bigwig> has the look and feel of
+ C-programs but with special data and control structures.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
+
+ Byte Code Engineering Library (BCEL)
+
+ BECL is intended to give users a
+ convenient possibility to analyze, create, and manipulate (binary) Java
+ class files (those ending with
+ .class). Classes are represented
+ by objects which contain all the symbolic information of the given class:
+ methods, fields and byte code instructions, in particular. Such objects
+ can be read from an existing file, be transformed by a program (e.g., a
+ class loader at run-time) and dumped to a file again. An even more
+ interesting application is the creation of classes from scratch at
+ run-time. The Byte Code Engineering Library may be also useful if you
+ want to learn about the Java Virtual Machine (JVM) and the format of Java
+ .class files.
+ BCEL is already being used successfully in
+ several projects such as compilers, optimizers, obsfuscators, code
+ generators and analysis tools.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
+
+ Bigloo
+
+ Bigloo is a Scheme implementation
+ devoted to one goal: enabling Scheme based programming style where C(++)
+ is usually required. Bigloo attempts to make
+ Scheme practical by offering features usually presented by traditional
+ programming languages but not offered by Scheme and functional
+ programming. Bigloo compiles Scheme modules and delivers small and fast
+ stand-alone binary executables. It enables full connections between
+ Scheme and C programs, between Scheme and Java programs, and between
+ Scheme and C# programs.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
+
+ C--
+
+ C-- is a portable assembly language that
+ can be generated by a front end and implemented by any of several code
+ generators. It serves as an interface between high-level compilers and
+ retargetable, optimizing code generators. Authors of front ends and code
+ generators can cooperate easily.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
+
+ Caml
+
+ Caml is a general-purpose programming
+ language, designed with program safety and reliability in mind. It is
+ very expressive, yet easy to learn and use.
+ Caml supports functional, imperative, and
+ object-oriented programming styles. It has been developed and distributed
+ by INRIA, France's national research institute for computer science,
+ since 1985. The Objective Caml system is the main implementation of the
+ Caml language. It features a powerful module
+ system and a full-fledged object-oriented layer. It comes with a
+ native-code compiler that supports numerous architectures, for high
+ performance; a bytecode compiler, for increased portability; and an
+ interactive loop, for experimentation and rapid development.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
+
+ Cayenne
+
+ Cayenne is a simple(?) functional
+ language with a powerful type system. The basic types are functions,
+ products, and sums. Functions and products use dependent types to gain
+ additional power. There are very few building blocks in the language, but
+ a lot of syntactic sugar
to make it more readable. There
+ is no separate module language in Cayenne
+ since the dependent types allow the normal expression language to be used
+ at the module level as well. The design of
+ Cayenne has been heavily influenced by
+ Haskell and constructive type theory and with
+ some things borrowed from Java. The drawback of such a powerful type
+ system is that the type checking becomes undecidable.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
+
+ Ch
+
+ Ch is an embeddable C/C++ interpreter
+ for cross-platform scripting, shell programming, 2D/3D plotting,
+ numerical computing, and embedded scripting.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
+
+ Clean
+
+ Clean is a general purpose,
+ state-of-the-art, pure and lazy functional programming language designed
+ for making real-world applications. Clean is
+ the only functional language in the world which offers uniqueness typing.
+ This type system makes it possible in a pure functional language to
+ incorporate destructive updates of arbitrary data structures (including
+ arrays) and to make direct interfaces to the outside imperative world.
+ The type system makes it possible to develop efficient
+ applications.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
+
+ Cyclone
+
+ Cyclone is a programming language based
+ on C that is safe, meaning that it rules out programs that have buffer
+ overflows, dangling pointers, format string attacks, and so on.
+ High-level, type-safe languages, such as Java, Scheme, or ML also provide
+ safety, but they don't give the same control over data representations
+ and memory management that C does (witness the fact that the run-time
+ systems for these languages are usually written in C.) Furthermore,
+ porting legacy C code to these languages or interfacing with legacy C
+ libraries is a difficult and error-prone process. The goal of
+ Cyclone is to give programmers the same
+ low-level control and performance of C without sacrificing safety, and to
+ make it easy to port or interface with legacy C code.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
+
+ D
+
+ D is a general purpose systems and
+ applications programming language. It is a higher level language than
+ C++, but retains the ability to write high performance code and interface
+ directly with the operating system APIs and with hardware.
+ D is well suited to writing medium to large
+ scale million line programs with teams of developers. It is easy to
+ learn, provides many capabilities to aid the programmer, and is well
+ suited to aggressive compiler optimization technology.
+ D is not a scripting language, nor an
+ interpreted language. It doesn't come with a VM, a religion, or an
+ overriding philosophy. It's a practical language for practical
+ programmers who need to get the job done quickly, reliably, and leave
+ behind maintainable, easy to understand code.
+ D is the culmination of decades of experience
+ implementing compilers for many diverse languages, and attempting to
+ construct large projects using those languages. It draws inspiration from
+ those other languages (most especially C++) and tempers it with
+ experience and real world practicality.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
+
+ DMDScript
+
+ DMDScript is Digital Mars'
+ implementation of the ECMA 262 scripting language. Netscape's
+ implementation is called JavaScript, Microsoft's implementation is
+ called JScript. DMDScript is much faster
+ than other implementations, which you can verify with the included
+ benchmark.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
+
+ DotGNU Portable.NET
+
+ DotGNU Portable.NET goal is to build a
+ suite of free software tools to build and execute .NET applications,
+ including a C# compiler, assembler, disassembler, and runtime engine.
+ While the initial target platform was GNU/Linux, it is also known to run
+ under Windows, Solaris, NetBSD, FreeBSD, and MacOS X. The runtime engine
+ has been tested on the x86, PowerPC, ARM, Sparc, PARISC, s390, Alpha, and
+ IA-64 processors. DotGNU Portable.NET is part
+ of the DotGNU project, built in accordance with the requirements of the
+ GNU Project. DotGNU Portable.NET is focused on compatibility with the
+ ECMA specifications for CLI. There are other projects under the DotGNU
+ meta-project to build other necessary pieces of infrastructure, and to
+ explore non-CLI approaches to virtual machine implementation.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
+
+ E
+
+ E is a secure distributed Java-based
+ pure-object platform and p2p scripting language. It has two parts: ELib
+ and the E Language. Elib provides the stuff
+ that goes on between objects. As a pure-Java library, ELib provides for
+ inter-process capability-secure distributed programming. Its
+ cryptographic capability protocol enables mutually suspicious Java
+ processes to cooperate safely, and its event-loop concurrency and promise
+ pipelining enable high performance deadlock free distributed pure-object
+ computing. The E Language can be used to
+ express what happens within an object. It provides a convenient and
+ familiar notation for the ELib computational model, so you can program
+ in one model rather than two. Under the covers, this notation expands
+ into Kernel-E, a minimalist lambda-language much like Scheme or
+ Smalltalk. Objects written in the E language
+ are only able to interact with other objects according to ELib's
+ semantics, enabling object granularity intra-process security, including
+ the ability to safely run untrusted mobile code (such as caplets).
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
+
+ Erlang/OTP
+
+ Erlang/OTP is a development environment
+ based on Erlang. Erlang is a programming language which has many features
+ more commonly associated with an operating system than with a programming
+ language: concurrent processes, scheduling, memory management,
+ distribution, networking, etc. The initial open-source Erlang release
+ contains the implementation of Erlang, as well as a large part of
+ Ericsson's middleware for building distributed high-availability systems.
+ Erlang is characterized by the following features: robustness, soft
+ real-time, hot code upgrades and incremental code loading.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
Euphoria
@@ -84,6 +533,195 @@
+
+ GNU Smalltalk
+
+ GNU Smalltalk is a free implementation
+ of the Smalltalk-80 language which runs on most versions on Unix and, in
+ general, everywhere you can find a POSIX-compliance library. An uncommon
+ feature of it is that it is well-versed to scripting tasks and headless
+ processing. See
+ for a more detailed explanation of
+ GNU Smalltalk.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
+
+ Haskell
+
+ Haskell is a computer programming language. In particular, it is a
+ polymorphicly typed, lazy, purely functional language, quite different
+ from most other programming languages. The language is named for Haskell
+ Brooks Curry, whose work in mathematical logic serves as a foundation for
+ functional languages. Haskell is based on lambda calculus. There are many
+ implementations of Haskell, among them:
+
+
+
+ GHC:
+
+
+ HBC:
+
+
+ Helium:
+
+
+ Hugs:
+
+
+ nhc98:
+
+
+
+
+
+
+ Jamaica
+
+ Jamaica, the JVM Macro Assembler, is an
+ easy-to-learn and easy-to-use assembly language for JVM bytecode
+ programming. It uses Java syntax to define a JVM class except for the
+ method body that takes bytecode instructions, including
+ Jamaica's built-in macros. In
+ Jamaica, bytecode instructions use mnemonics
+ and symbolic names for all variables, parameters, data fields, constants
+ and labels.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
+
+ Judo
+
+ Judo is a practical, functional
+ scripting language. It is designed to cover the use cases of not only
+ algorithmic/object-oriented/multi-threaded programming and Java scripting
+ but also a number of major application domain tasks, such as scripting
+ for JDBC, WSDL, ActiveX, OS, multiple file/data formats, etc. Despite its
+ rich functionality, the base language is extremely simple, and domain
+ support syntax is totally intuitive to domain experts, so that even
+ though you have never programmed in Judo, you
+ would have little trouble figuring out what the code does.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
+
+ JWIG
+
+ JWIG is a Java-based high-level
+ programming language for development of interactive Web services. It
+ contains an advanced session model, a flexible mechanism for dynamic
+ construction of XML documents, in particular XHTML, and a powerful API
+ for simplifying use of the HTTP protocol and many other aspects of Web
+ service programming. To support program development,
+ JWIG provides a unique suite of highly
+ specialized program analyses that at compile time verify for a given
+ program that no runtime errors can occur while building documents or
+ receiving form input, and that all documents being shown are valid
+ according to the document type definition for XHTML 1.0. The main goal of
+ the JWIG project is to simplify development of
+ complex Web services, compared to alternatives, such as, Servlets, JSP,
+ ASP, and PHP. JWIG is a descendant of the
+ <bigwig> research language.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
+
+ Lua
+
+ Lua is a powerful light-weight
+ programming language designed for extending applications. It is also
+ frequently used as a general-purpose, stand-alone language. It is free
+ software. Lua combines simple procedural
+ syntax with powerful data description constructs based on associative
+ arrays and extensible semantics. It is dynamically typed, interpreted
+ from bytecodes, and has automatic memory management with garbage
+ collection, making it ideal for configuration, scripting, and rapid
+ prototyping. A fundamental concept in the design of
+ Lua is to provide meta-mechanisms for
+ implementing features, instead of providing a host of features directly
+ in the language. For example, although Lua is
+ not a pure object-oriented language, it does provide meta-mechanisms for
+ implementing classes and inheritance. Lua's
+ meta-mechanisms bring an economy of concepts and keep the language small,
+ while allowing the semantics to be extended in unconventional ways.
+ Extensible semantics is a distinguishing feature of
+ Lua. Lua is a
+ language engine that you can embed into your application. This means
+ that, besides syntax and semantics, it has an API that allows the
+ application to exchange data with Lua programs
+ and also to extend Lua with C functions. In
+ this sense, it can be regarded as a language framework for building
+ domain-specific languages. Lua is implemented
+ as a small library of C functions, written in ANSI C, and compiles
+ unmodified in all known platforms. The implementation goals are
+ simplicity, efficiency, portability, and low embedding cost. The result
+ is a fast language engine with small footprint, making it ideal in
+ embedded systems too.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
Mono
@@ -127,6 +765,28 @@
+
+ pike
+
+ pike is a dynamic programming language
+ with a syntax similar to Java and C. It is simple to learn, does not
+ require long compilation passes and has powerful built-in data types
+ allowing simple and really fast data manipulation. Pike is released under
+ the GNU GPL, GNU LGPL and MPL.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
R
@@ -159,6 +819,173 @@
+
+ Regina Rexx
+
+ Regina is a Rexx interpreter that has
+ been ported to most Unix platforms (Linux, FreeBSD, Solaris, AIX, HP-UX,
+ etc.) and also to OS/2, eCS, DOS, Win9x/Me/NT/2k/XP, Amiga, AROS, QNX4.x,
+ QNX6.x BeOS, MacOS X, EPOC32, AtheOS, OpenVMS, SkyOS and OpenEdition.
+ Rexx is a programming language that was designed to be easy to use for
+ inexperienced programmers yet powerful enough for experienced users. It
+ is also a language ideally suited as a macro language for other
+ applications.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
+
+ Serp
+
+ Serp is an open source framework for
+ manipulating Java bytecode. The goal of the
+ Serp bytecode framework is to tap the full
+ power of bytecode modification while lowering its associated costs. The
+ framework provides a set of high-level APIs for manipulating all aspects
+ of bytecode, from large-scale structures like class member fields to the
+ individual instructions that comprise the code of methods. While in order
+ to perform any advanced manipulation, some understanding of the class
+ file format and especially of the JVM instruction set is necessary, the
+ framework makes it as easy as possible to enter the world of bytecode
+ development.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
+
+ Small Device C Compiler (SDCC)
+
+ SDCC is a Freeware, retargettable,
+ optimizing ANSI-C compiler that targets the Intel 8051, Maxim 80DS390
+ and the Zilog Z80 based MCUs. Work is in progress on supporting the
+ Motorola 68HC08 as well as Microchip PIC16 and PIC18 series. The entire
+ source code for the compiler is distributed under GPL.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
+
+ Standard ML
+
+ Standard ML is a safe, modular, strict, functional, polymorphic
+ programming language with compile-time type checking and type inference,
+ garbage collection, exception handling, immutable data types and
+ updatable references, abstract data types, and parametric modules. It has
+ efficient implementations and a formal definition with a proof of
+ soundness. There are many implementations of Standard ML, among them:
+
+
+
+ ML Kit:
+
+
+ MLton:
+
+
+ Moscow ML:
+
+
+ Poly/ML:
+
+
+ Standard ML of New Jersey:
+
+
+
+
+
+
+ Steel Bank Common Lisp (SBCL)
+
+ SBCL is an open source (free software)
+ compiler and runtime system for ANSI Common Lisp. It provides an
+ interactive environment including an integrated native compiler, a
+ debugger, and many extensions. SBCL runs on a
+ number of platforms.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
+
+ Tiny C Compiler (TCC)
+
+ Tiny C Compiler is a small C compiler
+ that can be used to compile and execute C code everywhere, for example
+ on rescue disks (about 100KB for x86 TCC executable, including C
+ preprocessor, C compiler, assembler and linker).
+ TCC is fast. It generates optimized x86 code,
+ has no byte code overhead and compiles, assembles and links several times
+ faster than GCC.
+ TCC is versatile, any C dynamic library can be
+ used directly. It is heading torward full ISOC99 compliance and can
+ compile itself. The compiler is safe as it includes an optional memory
+ and bound checker. Bound checked code can be mixed freely with standard
+ code. TCC compiles and executes C source
+ directly. No linking or assembly necessary. A full C preprocessor and
+ GNU-like assembler is included. It is C script supported; just add
+ #!/usr/local/bin/tcc -run
on the first line of your C
+ source, and execute it directly from the command line. With libtcc, you
+ can use TCC as a backend for dynamic code
+ generation.
+
+
+
+ Project Home Page:
+
+
+ Download Location:
+
+
+
+
+
diff --git a/introduction/welcome/changelog.xml b/introduction/welcome/changelog.xml
index 26f6f53255..089b24daf7 100644
--- a/introduction/welcome/changelog.xml
+++ b/introduction/welcome/changelog.xml
@@ -41,6 +41,16 @@
-->
+
+ November 7th, 2005
+
+
+ [randy] - Added several programming languages to the 'Other
+ Programming Tools' section.
+
+
+
+
November 5th, 2005