Alef (linguagem de programação)
| Alef | |
|---|---|
| Paradigma | compilada, concorrente, estruturada |
| Surgido em | 1992 (33–34 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.
História
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
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
- Communicating sequential processes
- Plan 9 from Bell Labs
- Go (linguagem de programação)
Referências
- ↑ a b Winterbottom, Phil (1995). «Alef Language Reference Manual». Plan 9 Programmer's Manual: Volume Two. Murray Hill: AT&T
- ↑ «Preface to the Third (2000) Edition». Plan 9 Manual. Murray Hill: Bell Labs. Junho 2000. Consultado em 29 de outubro de 2012. Cópia arquivada em 5 de fevereiro de 2015
- ↑ Pike, Rob (2010). Origins of Go concurrency style. OSCON Emerging Languages Camp. Cópia arquivada em 13 de dezembro de 2021
- ↑ Pike, Rob. «Rio: Design of a Concurrent Window System» (PDF). Consultado em 8 de março de 2013
- ↑ «thread(2)». Plan 9 Manual. [S.l.: s.n.] Consultado em 29 de outubro de 2012
- Flandrena, Bob (1995). «Alef Users' Guide». Plan 9 Programmer's Manual: Volume Two. Murray Hill: Bell Labs
- Phil Winterbottom (20 de outubro de 1992). «Plan9 VM». Grupo de notícias: comp.os.research. Usenet: 1c1denINN441@darkstar.UCSC.EDU