Saltar para o conteúdo

Alef (linguagem de programação)

Origem: Wikipédia, a enciclopédia livre.
Alef
Paradigma compilada, concorrente, estruturada
Surgido em 1992 (31–32 anos)
Criado por Phil Winterbottom
Influenciada por C, Newsqueak
Influenciou Limbo, Rust, Go
Sistema operacional Plan 9 from Bell Labs

Alef é uma linguagem de programação concorrente descontinuada, projetada como pate do sistema operacional Plan 9 from Bell Labs por Phil Winterbottom da Bell Labs. Ela implementa um modelo de concorrência baseado em canais de Newsqueak em uma linguagem compilada tipo C.

Alef apareceu na primeira e segunda edições do Plan 9, mas foi abandonada durante o desenvolvimento da terceira edição.[1][2] Rob Pike mais tarde explicou que o fim de Alef devido a sua falta de gerenciamento automático de memória, apesar de Pike e outros insistindo para que Winterbottom adicionasse um garbage collector a linguagem[3] e também em um slideshow em fevereiro de 2000, Pike notou: "...apesar de Alef ter sido um linguagem frutífera, se demonstrou muito difícil manter uma variedade de linguagens em várias plataformas, então nós pegamos o que aprendemos e construimos uma biblioteca de threads para C".[4]

Alef foi suplantada por dois ambientes de programação. A linguagem Limbo pode ser considerada como uma sucessora direta de Alef and o seu uso mais comum no sistema operacional Inferno. O modelo de concorrência de Alef foi replicado na terceira edição do Plan 9 na forma da biblioteca libthread, que faz com que algumas das funcionalidades de Alef fiquem disponíveis para programas C e permite que programas existentes em Alef (como Acme) sejam traduzidos.[5]

Esse exemplo foi tirado do manual de referencia de Alef.[1] Esse pedaço ilustra o uso de tuplas

(int, byte*, byte) 
func() 
{ 
    return (10, "hello", 'c'); 
}

void 
main() 
{
    int a; 
    byte* str; 
    byte c; 
    (a, str, c) = func(); 
}

Referências

  1. a b Winterbottom, Phil (1995). «Alef Language Reference Manual». Plan 9 Programmer's Manual: Volume Two. Murray Hill: AT&T 
  2. http://plan9.bell-labs.com/sys/man/preface3.html |section-url= missing title (ajuda). Plan 9 Manual. Murray Hill: Bell Labs. June 2000. Consultado em 29 de outubro de 2012. Cópia arquivada em 5 de fevereiro de 2015  Verifique data em: |data= (ajuda)
  3. Pike, Rob (2010). Origins of Go concurrency style. OSCON Emerging Languages Camp. Cópia arquivada em 13 de dezembro de 2021 
  4. Pike, Rob. «Rio: Design of a Concurrent Window System» (PDF). Consultado em 8 de março de 2013 
  5. http://plan9.bell-labs.com/magic/man2html/2/thread |section-url= missing title (ajuda). Plan 9 Manual. [S.l.: s.n.] Consultado em 29 de outubro de 2012