Limbo (język programowania)

Otchłań
Paradygmat Równoległy
Zaprojektowany przez Sean Dorward, Phil Winterbottom, Rob Pike
Deweloper Bell Labs / Vita Nuova Holdings
Po raz pierwszy pojawiły się 1995 ; 28 lat temu ( 1995 )
Dyscyplina pisania Mocny
system operacyjny Piekło
Licencja GNU GPL v2, zobacz NOTATKA w podfolderze limbo archiwum tar
Strona internetowa www.vitanuova.com/inferno/limbo.html _ _ _ _ _
Główne wdrożenia
Dis maszyna wirtualna
Pod wpływem
C , Pascal , CSP , Alef , Newsqueak
Pod wpływem
Stackless Python , Go , Rust

Limbo jest językiem programowania do pisania systemów rozproszonych i jest językiem używanym do pisania aplikacji dla systemu operacyjnego Inferno . Został zaprojektowany w Bell Labs przez Seana Dorwarda, Phila Winterbottoma i Roba Pike'a .

Kompilator Limbo generuje niezależny od architektury kod obiektowy , który jest następnie interpretowany przez maszynę wirtualną Dis lub kompilowany tuż przed uruchomieniem w celu poprawy wydajności. Dlatego wszystkie aplikacje Limbo są całkowicie przenośne na wszystkich platformach Inferno.

Podejście Limbo do współbieżności zostało zainspirowane komunikującymi się procesami sekwencyjnymi (CSP) Hoare'a , zaimplementowanymi i poprawionymi we wcześniejszym języku Newsqueak Pike'a i Alef Winterbottoma .

Funkcje językowe

Limbo obsługuje następujące funkcje:

Maszyna wirtualna

Maszyna wirtualna Dis, która wykonuje kod Limbo, jest maszyną wirtualną podobną do CISC, z instrukcjami arytmetycznymi, przepływem sterowania , ruchem danych, tworzeniem procesów , synchronizacją i komunikacją między procesami, ładowaniem modułów kodu i obsługą typów danych wyższego poziomu: łańcuchy znaków, tablice, listy i kanały komunikacyjne. Wykorzystuje hybrydę liczenia referencji i modułu zbierania elementów bezużytecznych w czasie rzeczywistym dla danych cyklicznych.

Aspekty projektu Dis zostały zainspirowane mikroprocesorem AT&T Hobbit , używanym w oryginalnym BeBox .

Przykłady

Limbo używa definicji w stylu Ady , jak w:

    
     
   
    nazwa  :=  wpisz  wartość  ;  nazwa0  ,  nazwa1  :  typ  =  wartość  ;  nazwa2  ,  nazwa3  :  typ  ;  nazwa2  =  wartość  ; 

Witaj świecie

  
 
  
      
 
  

  
 
       
 
         
      wdrożyć  polecenie  ;  dołącz  "sys.m"  ;  sys  :  sys  ;  dołącz  "rysuj.m"  ;  dołącz  "sh.m"  ;  init  (  nil  :  ref  Rysuj  ->  Kontekst  ,  nil  :  lista  łańcuchów  )  {  sys  =  ładuj  Sys  Sys  -  >  ŚCIEŻKA  ;  sys  ->  drukuj 
  (  "Witaj świecie!  \n  "  );  } 

Książki

  Trzecia edycja systemu operacyjnego Inferno i języka programowania Limbo została opisana w podręczniku Inferno Programming with Limbo ISBN 0-470-84352-7 (Chichester: John Wiley & Sons, 2003), autorstwa Phillipa Stanleya-Marbella. Inny podręcznik Inferno Programming Book: An Introduction to Programming for the Inferno Distributed System , autorstwa Martina Atkinsa, Charlesa Forsytha, Roba Pike'a i Howarda Trickeya, został uruchomiony, ale nigdy nie został wydany.

Zobacz też

Linki zewnętrzne