Alef (programming language)

Short description: Concurrent programming language

AlefParadigm| compiled, concurrent, structured

|

Designed by| Phil Winterbottom
First appeared| 1992; 32 years ago (1992)
Typing discipline| Static, strong
OS| Plan 9 from Bell Labs
Influenced by
C, Newsqueak
Influenced
Limbo, Rust, Go

Alef is a discontinued 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

* 1 History
* 2 Example
* 3 See also
* 4 References

## History

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

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

* Communicating sequential processes
* Plan 9 from Bell Labs
* Go (programming language)

## References

1. ↑ 1.0 1.1 Winterbottom, Phil (1995). "Alef Language Reference Manual". Plan 9 Programmer's Manual: Volume Two. Murray Hill: AT&T. http://doc.cat-v.org/plan_9/2nd_edition/papers/alef/ref.
2. ↑ Plan 9 Manual. Murray Hill: Bell Labs. June 2000.
3. ↑ Pike, Rob (2010). "Origins of Go concurrency style". OSCON Emerging Languages Camp. https://www.youtube.com/watch?v=3DtUzH3zoFo.
4. ↑ Pike, Rob. "Rio: Design of a Concurrent Window System". http://doc.cat-v.org/plan_9/3rd_edition/rio/rio_slides.pdf.
5. ↑ Plan 9 Manual.

* Flandrena, Bob (1995). "Alef Users' Guide". Plan 9 Programmer's Manual: Volume Two. Murray Hill: Bell Labs. http://doc.cat-v.org/plan_9/2nd_edition/papers/alef/ug.
* Phil Winterbottom (1992-10-20). "Plan9 VM". Newsgroup: comp.os.research. Usenet: 1c1denINN441@darkstar.UCSC.EDU.

* v
* t
* e

Types of programming languages

* Actor-based
* Array
* Aspect-oriented
* Class-based
* Concatenative
* Concurrent
* Dataflow
* Declarative
* Domain-specific
* Dynamic
* Esoteric
* Event-driven
* Extensible
* Functional
* Imperative
* Logic
* Macro
* Metaprogramming
* Multi-paradigm
* Object-based
* Object-oriented
* Pipeline
* Procedural
* Prototype-based
* Reflective
* Rule-based
* Scripting
* Stack based
* Synchronous
* Tactile
* Templating

* Assembly
* Compiled
* Interpreted
* Machine

* Low-level
* High-level
* Very high-level

* First generation
* Second generation
* Third generation
* Fourth generation
* Fifth generation

* Non-English-based
* Visual

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Alef (programming language). Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Alef_(programming_language)&oldid=3015252"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template