Articulo de referencia

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

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 Limbo genera código objeto independiente de la arquitectura , que luego es interpretado por la máquina virtual Dis o compilado justo antes de la ejecución para mejorar el rendimiento. Por lo tanto, todas las aplicaciones Limbo son completamente portátiles en todas las plataformas Inferno.

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

Características del idioma

Limbo admite las siguientes funciones:

Máquina virtual

La máquina virtual Dis que ejecuta el código Limbo es una VM de tipo 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 sistema híbrido de conteo de referencias y un recolector de basura en tiempo real para datos cíclicos. [ 3 ]

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

Ejemplos

Limbo utiliza definiciones al estilo Ada , como en:

nombre := tipo valor ; nombre0 , nombre1 : tipo = valor ; nombre2 , nombre3 : tipo ; nombre2 = valor ;

Hola Mundo

Implementar comando ;incluir "sys.m" ; sys : Sys ;incluir "draw.m" ;incluir "sh.m" ;init ( nil : ref Draw- > Context , nil : lista de cadenas ) { sys = load Sys Sys- > PATH ; sys- > print ( "¡Hola Mundo! \n " ); }

Libros

La tercera edición del sistema operativo Inferno y del 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 empezó a escribir, pero nunca se publicó.

Véase también

Referencias

  1. "Inferno Application Programming" . vitanuova . vitanuova. Archivado del original el 7 de febrero de 2025. Recuperado el 26 de enero de 2021 .
  2. "Especificación de la máquina virtual Dis" . Vita Nuova. 2000. Archivado del original el 20 de febrero de 2025. Recuperado el 2 de febrero de 2015 .
  3. Lorenz Huelsbergen y Phil Winterbottom (1998). "Recolección de basura de marcado y barrido muy concurrente sin sincronización de grano fino" (PDF) . Simposio internacional de 1998 sobre gestión de memoria .
  • Página de Vita Nuova en Limbo
  • Un descenso al limbo, por Brian Kernighan
  • El lenguaje de programación Limbo, de Dennis M. Ritchie, y un apéndice de Vita Nuova.
  • Programación infernal con Limbo por Phillip Stanley-Marbell
  • Programación multihilo al estilo CSP de Bell Labs
  • Código fuente de Dis , archivado del original el 21/09/2017 , recuperado el 20/09/2017.
  • El diseño de la máquina virtual Inferno , Vita nuova, archivado del original el 11 de febrero de 2025 , recuperado el 28 de abril de 2025..
  • "Diseño de Dis VM", Inferno (4.ª  ed.), Cat V.
  • "Especificación de Dis VM", Inferno (4.ª  ed.), Cat V.