View on GitHub

NianioLang

Procedural programming language without pointers

NianioLang version 2 roadmap

Things not clear in the current version

simple type

Currently sim is a byte array. sim is used to represent numbers as well. There is no clear distinction when conversion between numbers and strings should be performed. Also it is not clear whether we should treat all numbers as double. Native implementations have their own problems. In particular C implementation implements sim as variant - either string, double or int. Our initial goal was to implement Perl semantics to sim.

In version 2 we consider creating distinct variants for numbers, eg. :INT(sim) and :DOUBLE(sim) and possibly :DECIMAL(sim,precition:sim) . The only one required by implementation would be :INT.

Open questions:

JS im construction and string handling

string vs. byte array

match variant elements with and without value

match (v) case :X {
} case :X(var param) {
}

How should this match be treated. Should we treat variant elements with and without value as separate entities inside match?

function return type

def f(b) {
	if (b) {
		return;
	} else {
		return 5;
	}
}

def g() {
	var x = f(true);
}

string literals

new im format

new pretty printer

remove short if and for

new operators