Limbo語言
Limbo,一種用於分散式系統的程式語言,在Inferno作業系統中,用它來寫作應用程式。它起源於貝爾實驗室,由西恩·都華(Sean Dorward),菲爾·溫特伯(Phil Winterbottom)與羅勃·派克(Rob Pike)設計研發。
編程範型 | 並行 |
---|---|
設計者 | 西恩·都華, 菲爾·溫特伯, 羅勃·派克 |
實作者 | 貝爾實驗室 / Vita Nuova Holdings |
面市時間 | 1995年 |
型態系統 | 強型別 |
作業系統 | Inferno |
許可證 | Open source |
網站 | http://www.vitanuova.com/inferno/limbo.html |
主要實作產品 | |
Dis虛擬機器 | |
啟發語言 | |
C, Pascal, CSP, Alef, Newsqueak | |
影響語言 | |
Stackless Python, Go, Rust |
語言特徵
編輯Limbo支援如下特徵:
虛擬機器
編輯執行Limbo代碼的Dis虛擬機器是CISC類的VM,具有的指令包括:算數、控制流、資料移動、行程建立、同步和行程間通訊、裝載代碼模組的指令,並支援進階資料類型:字串、陣列、列表和通訊通道[1]。它為了迴圈資料而使用了混合的參照計數和即時垃圾收集[2]。
Dis的各方面設計受到用於最初的BeBox的AT&T Hobbit微處理器的啟發。
例子
編輯Limbo使用Ada風格定義如下:
name := type value;
name0,name1 : type = value;
name2,name3 : type;
name2 = value;
implement Command;
include "sys.m";
sys: Sys;
include "draw.m";
include "sh.m";
init(nil: ref Draw->Context, nil: list of string)
{
sys = load Sys Sys->PATH;
sys->print("Hello World!\n");
}
書籍
編輯第三版的Inferno作業系統和Limbo程式語言描述於教科書「Inferno Programming with Limbo」ISBN 0-470-84352-7(Chichester: John Wiley & Sons, 2003),Phillip Stanley-Marbell。
參見
編輯參照
編輯- ^ Dis Virtual Machine Specification. Vita Nuova. 2000 [2 February 2015]. (原始內容存檔於2016-11-13).
- ^ Lorenz Huelsbergen and Phil Winterbottom. Very Concurrent Mark and Sweep Garbage Collection without Fine-Grain Synchronization (PDF). [2020-05-05]. (原始內容存檔 (PDF)於2019-03-03).
外部連結
編輯- Vita Nuova page on Limbo (頁面存檔備份,存於網際網路檔案館)
- A Descent into Limbo (頁面存檔備份,存於網際網路檔案館) by Brian Kernighan
- The Limbo Programming Language by Dennis M. Ritchie and Addendum (頁面存檔備份,存於網際網路檔案館) by Vita Nuova.
- Inferno Programming with Limbo by Phillip Stanley-Marbell
- Threaded programming in the Bell Labs CSP style (頁面存檔備份,存於網際網路檔案館)
- Dis source code, [2020-05-05], (原始內容存檔於2017-09-21)
- The design of the Inferno virtual machine, Vita nuova, [2020-05-05], (原始內容存檔於2021-01-26).
- Dis VM design, Inferno 4th, Cat V, [2020-05-05], (原始內容存檔於2020-06-24).
- Dis VM specification, Inferno 4th, Cat V, [2020-05-05], (原始內容存檔於2020-11-27).