Measures Concepts
GitHub icon

Limbo

Limbo - Programming language

< >

Limbo is an open source programming language created in 1995 by Rob Pike.

#177on PLDB 29Years Old 529Repos

Try now: Riju

Limbo is a programming language for writing distributed systems and is the language used to write applications for the Inferno operating system. It was designed at Bell Labs by Sean Dorward, Phil Winterbottom, and Rob Pike. The Limbo compiler generates architecture-independent object code which is then interpreted by the Dis virtual machine or compiled just before runtime to improve performance. Read more on Wikipedia...


Example from the web:
Lock: module { PATH: con "/dis/lib/lock.dis"; Semaphore: adt { c: chan of int; obtain: fn(nil: self ref Semaphore); release: fn(nil: self ref Semaphore); new: fn(): ref Semaphore; }; init: fn(); };
Example from Riju:
implement Cmd; include "sys.m"; include "draw.m"; Cmd : module { init : fn (ctxt : ref Draw->Context, args : list of string); }; init(nil : ref Draw->Context, nil : list of string) { sys := load Sys Sys->PATH; sys->print("Hello, world!\n"); }
Example from hello-world:
implement Hello; include "sys.m"; sys: Sys; include "draw.m"; Hello: module { init: fn(ctxt: ref Draw->Context, argv: list of string); }; init(ctxt: ref Draw->Context, argv: list of string) { sys = load Sys Sys->PATH; sys->print("Hello World\n"); }
Hello World in Limbo. Limbo is the programming language of the Inferno OS (from Lucent Bell Labs). implement Cmd; include "sys.m"; include "draw.m"; Cmd : module { init : fn (ctxt : ref Draw->Context, args : list of string); }; init(nil : ref Draw->Context, nil : list of string) { sys := load Sys Sys->PATH; sys->print("Hello World\n"); }
Example from Wikipedia:
implement Command; include "sys.m"; sys: Sys; init(Context, nil: list of string) { sys = load Sys Sys->PATH; print("Hello World!\n"); }

Language features

Feature Supported Token Example
Print() Debugging ✓ sys->print
Semantic Indentation X

View source

- Build the next great programming language · Search · Add Language · Features · Creators · Resources · About · Blog · Acknowledgements · Queries · Stats · Sponsor · Day 605 · feedback@pldb.io · Logout