Alef es un lenguaje de programación concurrente discontinuado , diseñado como parte del sistema operativo Plan 9 por Phil Winterbottom de Bell Labs . Implementó el modelo de concurrencia basado en canales de Newsqueak en un lenguaje compilado similar a C.
Alef apareció en la primera y segunda edición de Plan 9, pero fue abandonado durante el desarrollo de la tercera edición. [1] [2] Rob Pike explicó más tarde la desaparición de Alef señalando su falta de gestión automática de memoria , a pesar de que Pike y otras personas insistieron a Winterbottom para que añadiera recolección de basura al lenguaje; [3] además, en una presentación de diapositivas de febrero de 2000, Pike señaló: "... aunque Alef era un lenguaje fructífero, resultó demasiado difícil mantener un lenguaje variante en múltiples arquitecturas, así que tomamos lo que aprendimos de él y construimos la biblioteca de subprocesos para C". [4]
Alef fue reemplazado por dos entornos de programación. El lenguaje de programación Limbo puede considerarse un sucesor directo de Alef y es el lenguaje más utilizado en el sistema operativo Inferno . El modelo de concurrencia de Alef se replicó en la tercera edición de Plan 9 en forma de la biblioteca libthread , que pone algunas de las funcionalidades de Alef a disposición de los programas en C y permite traducir programas Alef existentes (como Acme ). [5]
Este ejemplo fue tomado del manual de referencia de Alef. [1] La pieza ilustra el uso del tipo de datos tupla .
( int , byte * , byte ) func () { return ( 10 , "hola" , 'c' ); } vacío principal () { int a ; byte * str ; byte c ; ( a , str , c ) = func (); }