Limbo (język programowania)
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 |
Dyscyplina pisania | Mocny |
system operacyjny | Piekło |
Licencja | GNU GPL v2, zobacz NOTATKA w podfolderze limbo archiwum tar |
Strona internetowa | |
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:
- programowanie modułowe
- programowanie współbieżne
- silne sprawdzanie typów w czasie kompilacji i wykonywania
- komunikacja międzyprocesowa za pośrednictwem typowanych kanałów
- automatyczne zbieranie śmieci
- proste abstrakcyjne typy danych
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ż
- System operacyjny Inferno
- Alef , poprzednik Limbo
- Plan 9 z Bell Labs
- Go (język programowania) , podobny język od Google
- AT&T Hobbit , architektura procesora, która zainspirowała Dis VM
Linki zewnętrzne
- Strona Vita Nuova na Limbo
- Zejście do otchłani autorstwa Briana Kernighana
- The Limbo Programming Language autorstwa Dennisa M. Ritchiego i Addendum autorstwa Vita Nuova.
- Inferno Programming with Limbo autorstwa Phillipa Stanleya-Marbella
- Programowanie wątkowe w stylu Bell Labs CSP
- Kod źródłowy Dis
- Projekt maszyny wirtualnej Inferno , Vita nuova .
- „Projekt Dis VM”, Inferno (wyd. 4), kat . V.
- „Specyfikacja Dis VM”, Inferno (wyd. 4), kat. V.