Alef (programming language)
| Paradigm(s) | compiled, concurrent, structured |
|---|---|
| Appeared in | 1992 |
| Designed by | Phil Winterbottom |
| Typing discipline | Static, strong |
| Influenced by | C, Newsqueak |
| Influenced | Limbo, Rust, Go |
| OS | Plan 9 from Bell Labs |
Alef was a concurrent programming language, designed as part of the Plan 9 operating system by Phil Winterbottom of Bell Labs. It implemented the channel-based concurrency model of Newsqueak in a compiled, C-like language.
Contents |
History [edit]
Alef appeared in the first and second editions of Plan 9, but was abandoned during development of the third edition.[1][2] Rob Pike later explained Alef's demise by pointing to its lack of automatic memory management, despite Pike's and other people's urging Winterbottom to add garbage collection to the language;[3] 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.”[4]
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, which makes some of Alef's functionality available to C programs and allowed existing Alef programs (such as Acme) to be translated.[5]
Example [edit]
This example was taken from the Alef reference manual.[1] The piece illustrates the use of tuple data type.
(int, byte*, byte) func() { return (10, "hello", ’c’); } void main() { int a; byte* str; byte c; (a, str, c) = func(); }
See also [edit]
References [edit]
- ^ a b Winterbottom, Phil (1995). "Alef Language Reference Manual". Plan 9 Programmer's Manual: Volume Two. Murray Hill: AT&T.
- ^ Plan 9 Manual. Murray Hill: Bell Labs. June 2000. Unknown parameter
|sectionurl=ignored (help); Unknown parameter|section=ignored (help); - ^ Origins of Go concurrency style. Talk by Pike at OSCON's Emerging Languages Camp 2010.
- ^ Pike, Rob. "Rio: Design of a Concurrent Window System". Retrieved 8 March 2013.
- ^ Plan 9 Manual. Unknown parameter
|sectionurl=ignored (help); Unknown parameter|section=ignored (help);
- Flandrena, Bob (1995). "Alef Users' Guide". Plan 9 Programmer's Manual: Volume Two. Murray Hill: Bell Labs.
- Phil Winterbottom (1992-10-20). "Plan9 VM". comp.os.research. Web link.
| This programming language–related article is a stub. You can help Wikipedia by expanding it. |