Limbo語言

維基百科,自由的百科全書
(重新導向自Limbo
跳至導覽 跳至搜尋
Limbo
編程範型並行
設計者西恩·都華菲爾·溫特伯羅勃·派克
實作者貝爾實驗室 / Vita Nuova Holdings
釋出時間1995年
目前版本
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    型態系統強型別
    作業系統Inferno
    許可證Open source
    網站http://www.vitanuova.com/inferno/limbo.html
    主要實作產品
    Dis虛擬機器
    受影響於
    C, Pascal, CSP, Alef英語Alef (programming language), Newsqueak
    影響語言
    Stackless Python, Go, Rust

    Limbo,一種用於分散式系統程式語言,在Inferno作業系統中,用它來寫作應用程式。它起源於貝爾實驗室,由西恩·都華(Sean Dorward),菲爾·溫特伯(Phil Winterbottom)與羅勃·派克(Rob Pike)設計研發。

    它的並行計算模式,受到東尼·霍爾交談循序程式所啟發。

    語言特徵[編輯]

    Limbo支援如下特徵:

    虛擬機器[編輯]

    執行Limbo代碼的Dis虛擬機器CISC類的VM,具有的指令包括:算數、控制流、數據移動、行程建立、同步和行程間通訊、裝載代碼模組的指令,並支援進階資料類型:字串、陣列、列表和通訊通道[1]。它為了循環數據而使用了混合的參照計數即時垃圾收集[2]

    Dis的各方面設計受到用於最初的BeBox英語BeBoxAT&T Hobbit英語AT&T Hobbit微處理器的啟發。

    例子[編輯]

    Limbo使用Ada風格定義如下:

     name := type value;
     name0,name1 : type = value;
     name2,name3 : type;
     name2 = value;
    

    Hello world[編輯]

     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

    參見[編輯]

    參照[編輯]

    1. ^ Dis Virtual Machine Specification. Vita Nuova. 2000 [2 February 2015]. (原始內容存檔於2016-11-13). 
    2. ^ Lorenz Huelsbergen and Phil Winterbottom. Very Concurrent Mark and Sweep Garbage Collection without Fine-Grain Synchronization (PDF). [2020-05-05]. (原始內容存檔 (PDF)於2019-03-03). 

    外部連結[編輯]