Jump to content
Wikipedia The Free Encyclopedia

Alef (programming language)

From Wikipedia, the free encyclopedia
Concurrent programming language
Alef
Paradigm compiled, concurrent, structured
Designed by Phil Winterbottom
First appeared1992; 33 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.

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 the tuple data type.

(int,byte*,byte)
func()
{
return(10,"hello",'c');
}
void
main()
{
inta;
byte*str;
bytec;
(a,str,c)=func();
}

See also

[edit ]

References

[edit ]
  1. ^ a b Winterbottom, Phil (1995). "Alef Language Reference Manual". Plan 9 Programmer's Manual: Volume Two. Murray Hill: AT&T.
  2. ^ "Preface to the Third (2000) Edition". Plan 9 Manual. Murray Hill: Bell Labs. June 2000. Archived from the original on 2015年02月05日. Retrieved 2012年10月29日.
  3. ^ Pike, Rob (2010). Origins of Go concurrency style. OSCON Emerging Languages Camp. Archived from the original on 2021年12月13日.
  4. ^ Pike, Rob. "Rio: Design of a Concurrent Window System" (PDF). Retrieved 8 March 2013.
  5. ^ "thread(2)". Plan 9 Manual. Retrieved 2012年10月29日.


Stub icon

This programming-language-related article is a stub. You can help Wikipedia by expanding it.

AltStyle によって変換されたページ (->オリジナル) /