Limbo (lenguaje de programación)


Limbo es un lenguaje de programación para escribir sistemas distribuidos y es el lenguaje utilizado para escribir aplicaciones para el sistema operativo Inferno . Fue diseñado en Bell Labs por Sean Dorward , Phil Winterbottom y Rob Pike . [1]

El compilador de Limbo genera código de objeto independiente de la arquitectura que luego es interpretado por la máquina virtual Dis o compilado justo antes del tiempo de ejecución para mejorar el rendimiento. Por lo tanto, todas las aplicaciones de Limbo son completamente portátiles en todas las plataformas de Inferno.

El enfoque de Limbo a la concurrencia se inspiró en los procesos secuenciales de comunicación (CSP) de Hoare , tal como se implementaron y modificaron en el lenguaje Newsqueak anterior de Pike y Alef de Winterbottom .

La máquina virtual Dis que ejecuta código Limbo es una máquina virtual similar a CISC, con instrucciones para aritmética, flujo de control , movimiento de datos , creación de procesos , sincronización y comunicación entre procesos, carga de módulos de código y soporte para tipos de datos de nivel superior: cadenas, matrices, listas y canales de comunicación. [2] Utiliza un híbrido de recuento de referencias y un recolector de basura en tiempo real para datos cíclicos. [3]

Los aspectos del diseño de Dis se inspiraron en el microprocesador AT&T Hobbit , como se usa en el BeBox original .

La tercera edición del sistema operativo Inferno y el lenguaje de programación Limbo se describen en el libro de texto Inferno Programming with Limbo ISBN  0-470-84352-7 (Chichester: John Wiley & Sons, 2003), de Phillip Stanley-Marbell . Otro libro de texto The Inferno Programming Book: An Introduction to Programming for the Inferno Distributed System , de Martin Atkins, Charles Forsyth, Rob Pike y Howard Trickey, se inició, pero nunca se publicó.