Alef (linguagem de programação)

linguagem de programação

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
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

História

editar

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]

Exemplo

editar

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(); 
}

Ver também

editar

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