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).