Article de reference

Limbo (langage de programmation)

Limbo est un langage de programmation pour l'écriture de systèmes distribués et est le langage utilisé pour écrire des applications pour le système d'exploitation Inferno . Il a...

Limbo est un langage de programmation pour l'écriture de systèmes distribués et est le langage utilisé pour écrire des applications pour le système d'exploitation Inferno . Il a été conçu chez Bell Labs par Sean Dorward , Phil Winterbottom et Rob Pike .

Le compilateur Limbo génère du code objet indépendant de l'architecture , qui est ensuite interprété par la machine virtuelle Dis ou compilé juste avant l'exécution pour optimiser les performances. Par conséquent, toutes les applications Limbo sont entièrement portables sur toutes les plateformes Inferno.

L'approche de Limbo en matière de concurrence s'inspire des processus séquentiels communicants (CSP) de Hoare , tels qu'implémentés et modifiés dans le langage Newsqueak antérieur de Pike et dans Alef de Winterbottom .

Fonctionnalités linguistiques

Limbo prend en charge les fonctionnalités suivantes :

machine virtuelle

La machine virtuelle Dis qui exécute le code Limbo est une VM de type CISC, dotée d'instructions pour l'arithmétique, le contrôle de flux , le déplacement de données , la création de processus , la synchronisation et la communication entre processus, le chargement de modules de code et la prise en charge de types de données de haut niveau : chaînes de caractères, tableaux, listes et canaux de communication. Elle utilise un système hybride de comptage de références et un ramasse-miettes en temps réel pour les données cycliques.

Certains aspects de la conception de Dis ont été inspirés par le microprocesseur AT&T Hobbit , tel qu'il était utilisé dans la BeBox originale .

Exemples

Limbo utilise des définitions de style Ada , comme dans :

nom := type valeur ; nom0 , nom1 : type = valeur ; nom2 , nom3 : type ; nom2 = valeur ;

Bonjour le monde

implémenter la commande ;inclure "sys.m" ; sys : Sys ;inclure "draw.m" ;inclure « sh.m » ;init ( nil : ref Draw- > Context , nil : list of string ) { sys = load Sys Sys- > PATH ; sys- > print ( "Hello World! " ); }

Livres

La 3e édition du système d'exploitation Inferno et du langage de programmation Limbo est décrite dans le manuel « Inferno Programming with Limbo » (ISBN). 0-470-84352-7(Chichester : John Wiley & Sons, 2003), par Phillip Stanley-Marbell . Un autre manuel, *The Inferno Programming Book: An Introduction to Programming for the Inferno Distributed System* , par Martin Atkins, Charles Forsyth, Rob Pike et Howard Trickey, a été commencé, mais n’a jamais été publié.