Alef (linguagem de programação)
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.
História
[editar | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]Referências
- ↑ a b Winterbottom, Phil (1995). «Alef Language Reference Manual». Plan 9 Programmer's Manual: Volume Two. Murray Hill: AT&T
- ↑ 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) - ↑ 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
- ↑
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
- 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