limbo

http://doc.cat-v.org/inferno/4th_edition/limbo_language/

the limbo programming language, dennis m. ritchie

language notes

# hello_world.m
implement Command;
include "sys.m";
include "draw.m";
sys:    Sys;
Command: module
{
	init: fn (ctxt: ref Draw->Context, argv: list of string);
}
# The canonical "Hello world" program, enhanced
init(ctxt: ref Draw->Context, argv: list of string)
{
	sys = load Sys Sys->PATH;
	sys->print("hello world\n");
	for (; argv!=nil; argv = tl argv)
		sys->print("%s ", hd argv);
	sys->print("\n");
}

keywords

    adt alt array   big
    break   byte    case    chan
    con continue    cyclic  do
    else    exit    fn  for
    hd  if  implement   import
    include int len list
    load    module  nil of
    or  pick    real    ref
    return  self    spawn   string
    tagof   tl  to  type
    while

development / debugging

http://doc.cat-v.org/inferno/4th_edition/development

gui programming

http://doc.cat-v.org/inferno/4th_edition/limbotk/

implementation details

dis vm spec