World Library  
Flag as Inappropriate
Email this Article

Alef (programming language)

 

Alef (programming language)

Alef
Paradigm compiled, concurrent, structured
Designed by Phil Winterbottom
First appeared 1992
Typing discipline Static, strong
OS Plan 9 from Bell Labs
Influenced by
C, Newsqueak
Influenced
Limbo, Rust, Go

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 1
  • Example 2
  • See also 3
  • References 4

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

References

  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. Retrieved 2012-10-29. 
  3. ^ Pike, Rob (2010). Origins of Go concurrency style. OSCON Emerging Languages Camp. 
  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. 
  • Flandrena, Bob (1995). "Alef Users' Guide". Plan 9 Programmer's Manual: Volume Two. Murray Hill: Bell Labs. 
  •  
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and USA.gov, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for USA.gov and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
 
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
 
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.
 


Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.