Aleph Language

This is now called AfnixLanguage?, and it can be found here: http://www.afnix.org/


FunctionalProgramming language with good support for ObjectOriented programming. See the website http://www.aleph-lang.org/ (''That site has been sold off to the ubiquitous SearchEngine of the BrokenLink...the VultureSearchEngine). From the website:

"Aleph is a multi-threaded functional programming language with dynamic symbol bindings that support the object oriented paradigm. Aleph features a state of the art runtime engine that supports both 32 and 64 bits platforms. Aleph comes with a rich set of libraries that are designed to be platform independent"

The latest available release is 0.8.1, from mid-2001, but the project is still being developed, and the author, AmauryDarsch, has assured me he's about to release version 0.9.0, so stay tuned. AlephLanguage is FreeSoftware.

AlephLanguage release 0.8.1 is a fantastic bundle of programming power. The interpreter/compiler and accompanying libraries compile flawlessly with gcc 2.96, and with just an easy to fix define-collision with gcc-3.2. Performance is very good, and the accompanying tests and examples are well documented. It also bundles (and makes available as a separate package, in PS and PDF) the complete Aleph documentation (in LaTeX, in three volumes (0: installation guide, 1: Programmer's Guide and 3:Library Reference)), of well over 250 pages of documentation, clear and easy to grasp. The 'standard library', so to call it, provides I/O, access to the system, networking abilities (Sockets, UDP, TCP, Mail) plus a Web/CGI library.

AlephLanguage provides FunctionalProgramming capabilities by implementing first class functions: lambdas (closures), and gammas (symbol scope limitation); ObjectOriented abilities and a rich set of prefactored classes (list, vector, graph, etc...) in a pretty LispLanguage syntax, although with a more flexible setup; multithreading with automatic object protection and a whole new RegularExpression system; the Libraries provide additional power through different objects in clear and well structured namespaces. --DavidDeLis


HelloWorld in AlephLanguage

println "Hello World!"

Factorial:

trans fact (n) {
(if (< n 1) 1
(* n (fact (- n 1))) }
const fact (n) { fact-helper n 1 }
const fact-helper (n m) {
(if (< n 1)
m
(fact-helper (- n 1) (* n m))) }

A more meaningful example (0109.als in the distribution):

# compute the scalar product of two vectors
const scalar-product (u v) {
trans result 0
for (x y) (u v) (result:+= (* x y))
eval result
}
# define 2 vector
const v1 (Vector 1 2 3)
const v2 (Vector 2 4 6)
println "scale product [1 2 3][2 4 6] = " (scalar-product v1 v2)


CategoryProgrammingLanguage


EditText of this page (last edited June 16, 2010) or FindPage with title or text search