High-level scripting language with capabilities built for Linguistics

Sono serves to fill a niche I found lacking in the growing world of Computational Linguistics - that is, a language built by linguists for linguists. The scripting language is capable of all general functions expected of a modern programming language, including object-oriented, procedural, and functional manners of execution.

The language likewise allows the programmer to use that functionality to directly interface with phonological segments, rules, and distinctive features as base data types.

The language also sports interfacing with Java libraries for functionality that may be necessary to conduct at a lower level.

For a more in-depth overview, I urge you to look at the GitHub: https://github.com/Nallantli/Sono

# Classic Game of HiLo

var MAX = 100;
println("██╗  ██╗██╗██╗      ██████╗ ");
println("██║  ██║██║██║     ██╔═══██╗");
println("███████║██║██║     ██║   ██║");
println("██╔══██║██║██║     ██║   ██║");
println("██║  ██║██║███████╗╚██████╔╝");
println("╚═╝  ╚═╝╚═╝╚══════╝ ╚═════╝ ");

var correct = Random.int(0, MAX);
var c = 0;

true do {
	c += 1;
	print("Enter a guess (0 - " + str MAX + "): ");
	var input = Input.number();
	input < correct then {
		println("Higher!");
	} else input > correct then {
		println("Lower!");
	} else {
		break;
	}
}

println("Correct! The answer was " + str correct);
println("You took " + str c + " guesses");

# Program that takes an input of phonological segments and finds their corresponding natural set:

load "ling/phonology.so";

var phones = {'m', 'n', 'g'};

var naturalset = Phonology.getNaturalSet(_base, phones);

var matrix = Phonology.naturalize(_base, naturalset);

println("Input Phones:");
println(phones);
println("");
println("Closest Natural Set of Phones:");
println(naturalset);
println("");
println("Simplest Description:");
println(matrix);
Information updated 09/30/20
View Comments