Alef is a discontinued
concurrent programming language
Concurrent computing is a form of computing in which several computations are executed ''Concurrency (computer science), concurrently''—during overlapping time periods—instead of ''sequentially—''with one completing before the next starts. ...
, designed as part of the
Plan 9 operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
by
Phil Winterbottom of
Bell Labs
Nokia Bell Labs, commonly referred to as ''Bell Labs'', is an American industrial research and development company owned by Finnish technology company Nokia. With headquarters located in Murray Hill, New Jersey, Murray Hill, New Jersey, the compa ...
. It implemented the channel-based
concurrency model of
Newsqueak
Newsqueak is a concurrent programming language for writing application software with interactive graphical user interfaces.
Newsqueak's syntax and semantics are influenced by the C (programming language), C language, but its approach to concurr ...
in a
compiled,
C-like language.
History
Alef appeared in the first and second editions of Plan 9, but was abandoned during development of the third edition.
Rob Pike
Robert Pike (born 1956) is a Canadian programmer and author.
He is best known for his work on the Go programming language while working at Google
and the Plan 9 operating system while working at Bell Labs, where he was a member of the Unix t ...
later explained Alef's demise by pointing to its lack of
automatic memory management
In computer science, garbage collection (GC) is a form of automatic memory management. The ''garbage collector'' attempts to reclaim memory that was allocated by the program, but is no longer referenced; such memory is called ''garbage''. Gar ...
, despite Pike's and other people's urging Winterbottom to add
garbage collection
Waste collection is a part of the process of waste management. It is the transfer of solid waste from the point of use and disposal to the point of treatment or landfill. Waste collection also includes the curbside collection of recyclable ...
to the language;
also, in a February 2000 slideshow, Pike noted: "…although Alef was a fruitful language, it proved too difficult to maintain a variant language across multiple architectures, so we took what we learned from it and built the thread library for C."
Alef was superseded by two programming environments. The
Limbo programming language can be considered a direct successor of Alef and is the most commonly used language in the
Inferno operating system. The Alef concurrency model was replicated in the third edition of Plan 9 in the form of the ''libthread''
library
A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
, which makes some of Alef's functionality available to
C programs and allowed existing Alef programs (such as
Acme
Acme is Ancient Greek (ἀκμή; English transliteration: ''akmē'') for "the peak", "zenith" or "prime". It may refer to:
Arts, entertainment and games
* ''Acme'' (album), an album by the Jon Spencer Blues Explosion
* Acme and Septimius, a fic ...
) to be translated.
Example
This example was taken from the Alef reference manual.
The piece illustrates the use of the
tuple
In mathematics, a tuple is a finite sequence or ''ordered list'' of numbers or, more generally, mathematical objects, which are called the ''elements'' of the tuple. An -tuple is a tuple of elements, where is a non-negative integer. There is o ...
data type.
(int, byte*, byte)
func()
void
main()
See also
*
Communicating sequential processes
In computer science, communicating sequential processes (CSP) is a formal language for describing patterns of interaction in concurrent systems. It is a member of the family of mathematical theories of concurrency known as process algebras, or p ...
*
Plan 9 from Bell Labs
Plan 9 from Bell Labs is a distributed operating system which originated from the Computing Science Research Center (CSRC) at Bell Labs in the mid-1980s and built on UNIX concepts first developed there in the late 1960s. Since 2000, Plan 9 has ...
*
Go (programming language)
Go is a high-level programming language, high-level general purpose programming language that is static typing, statically typed and compiled language, compiled. It is known for the simplicity of its syntax and the efficiency of development th ...
References
*
*
C programming language family
Concurrent programming languages
Plan 9 from Bell Labs
Programming languages created in 1992
{{prog-lang-stub