AFNIX DESCRIPTION
home | about | contents | download | news | legal

AFNIX programming language

AFNIX is a multi-threaded functional programming language with dynamic symbol bindings that support the object oriented paradigm. The language features a state of the art runtime engine that supports both 32 and 64 bits platforms. The distribution is available with several clients and a rich set of modules that are designed to be platform independent.An introduction is available in the first chapter of the programmer's guide. This powerful engine is built with a modular architecture that makes the installation and maintenance an easy task. The distribution is ready for use on various UNIX platforms and is delivered with a rich documentation.

AFNIX is an interpreted language with a rich syntax that makes the functional programming a pleasant activity. When used interactively, commands are entered on the command line and executed when a complete and valid syntactic object has been constructed. Alternatively, the interpreter can execute a source file. The engine does not have a garbage collector but operates with an immediate, scope based, object destruction mechanism. Each time an object is no longer visible, it is destroyed automatically.


AFNIX features

AFNIX is a comprehensive set of application clients and modules. The original distribution contains the core interpreter with additional clients like the compiler, the librarian and the debugger. The distribution contains also a rich set of modules that are dedicated to a particular domains. The basic modules are the standard i/o module, the system module and the networking module. The engine is written in C++ and provides runtime compatibility with it. Such compatibility includes the ability to instantiate C++ classes, use virtual methods and raise or catch exceptions. A comprehensive programming interface has been designed to ease the integration of foreign libraries.

AFNIX operates with a set of reserved keywords and predicates. Standard objects provide support for integers, real numbers, strings, characters and boolean. Various containers like list, vector, hash table, bitset, and graphs are also available in the core distribution. The language incorporates the concept lambda expression with explicit closure. Symbol scope limitation is an exclusive feature called gamma expression. Form like notation with an easy block declaration is also an extension. The object model provides a single inheritance mechanism with dynamic symbol resolution. Unique features include instance re-parenting, class rebinding and instance inference. Native class derivation and method override is also part of the object model with fixed class objects and forms.

AFNIX implements a true multi-threaded engine with automatic object protection mechanism against concurrent access. Read and write locking system and thread activation via condition objects is also built in the core system. The engine incorporates an original regular expression engine with group matching, exact or partial match and substitution. An advanced exception engine is also provided with native run-time compatibility.

AFNIX provides extensions. An extension is a module or an application which is not installed by default. The user selects during the installation process which extension is needed. For example, the static version of the interpreter is an extension.


AFNIX history

AFNIX original development started in 1998 in Santa Clara, Ca, USA. Originally called the Aleph programming language, the first release was known as the 0.3.0 release and contained only the core language. The 0.3.0 release was soon followed by the 0.4.0 that included the base libraries. At that time, Linux was the only supported platform. Later on came the 0.5.0 quickly followed by the 0.6.0 which saw the addition of the new network and html libraries. At the same time, the FreeBSD operating system was added. The 0.6.0 release also became the release that went part of the Debian distribution. Later on numerous processors were added including 64 bit native processor like the UltraSPARC. After a brief pause, the 0.8.0 release went out with additional features including the base compiler and the librarian. It was not until 2003 that the 0.9.0 release went out. The release included the debugger and the object collection client. The 0.9.0 release was the last Aleph programming language release.


AFNIX support