2023-02-16 21:24:32 +11:00
2022-10-02 06:09:48 +11:00
2022-10-02 11:07:15 +11:00
2022-10-02 05:55:51 +11:00
2023-02-06 01:58:25 +11:00
2022-10-02 04:26:52 +11:00
2022-10-02 04:26:52 +11:00
2023-02-16 21:24:32 +11:00
2022-09-11 04:50:53 +10:00
2023-02-07 00:44:03 +11:00
2023-02-14 19:59:01 +11:00
2023-02-16 21:24:32 +11:00
2022-10-02 04:26:52 +11:00
2022-10-02 04:26:52 +11:00
2022-10-02 04:26:52 +11:00
2023-02-07 00:47:55 +11:00
2022-10-02 04:26:52 +11:00
2023-02-14 19:59:01 +11:00
2023-02-16 21:24:32 +11:00
2023-02-14 19:59:01 +11:00
2023-02-14 19:59:01 +11:00
2022-10-02 04:26:52 +11:00
2022-10-02 04:26:52 +11:00
2023-02-14 19:59:01 +11:00
2023-02-14 19:59:01 +11:00
2023-02-14 20:13:57 +11:00
2022-11-12 22:47:57 +11:00
2022-09-10 19:46:20 +01:00
2023-02-07 00:36:35 +11:00

Running Comprehensive Tests

Preamble

The Toy programming language is a procedural bytecode-intermediate interpreted language. It isn't intended to operate on its own, but rather as part of another program, the "host". This process is intended to allow a decent amount of easy customisation by the host's end user, by exposing logic in script files. Alternatively, binary files in a custom format can be used as well.

The host will provide all of the extensions needed on a case-by-case basis. Script files have the .toy file extension, while binary files have the .tb file extension.

fn makeCounter() { //declare a function like this
	var total: int = 0; //declare a variable with a type like this

	fn counter(): int { //declare a return type like this
		return ++total;
	}

	return counter; //closures are explicitly supported
}

var tally = makeCounter();

print tally(); //1
print tally(); //2
print tally(); //3

Nifty Features

  • Simple C-like syntax
  • Bytecode intermediate compilation
  • Optional, but robust type system (including opaque for arbitrary data)
  • Functions and types are first-class citizens
  • Import external libraries
  • Fancy slice notation for strings, arrays and dictionaries
  • Can re-direct output, error and assertion failure messages
  • Open source under the zlib license

Getting Started

Full C API

  • Coming Soon! (check out the Embedding Toy page for a brief description for now)

Deep Dive

Languages
C 97.7%
Makefile 2.2%