git @ Cat's Eye Technologies Strelnokoff / master

Tree @master (Download .tar.gz) @masterview markup · raw · history · blame


Version 1.1 | Try it online @ | Wiki entry @

This is the reference distribution for Strelnokoff, an esoteric programming language which is both imperative and non-deterministic. That is to say, the order in which instructions are executed is not defined. It could even be random. Despite this situation, it is possible to write reasonable programs in Strelnokoff.

Historical Version

The original (v1.0) release of this distribution consisted of a Strelnokoff interpreter incompletely implemented in Perl 5 (with features like array access and input being parsed, but not implemented during execution) and with essentially no documentation.

The Perl implementation is still included in this distribution, in the impl/ subdirectory, but it is no longer considered the reference implementation.

Current Version

The current version of the Strelnokoff language, v1.1, is a conservative update and largely backwards-compatible with v1.0, but in clarifying some behaviour, it might result in breakage of existing Strelnokoff programs, depending on what assumptions they might be making, given they have been relying on an incomplete Perl implementation for their behaviour.

There is now an implementation of Strelnokoff in Lua 5.3. This implementation, along with the language documentation that has now been written for v1.1:

...should be considered the canonical reference for the Strelnokoff language.

This distribution also contains some example Strelnokoff programs in the eg directory.


This distribution is distributed under a constellation of permissive licenses. Following the REUSE convention (version 3.0), the licenses themselves are kept in the LICENSES directory, and each file is linked to the license that applies to it, either by comments in the file itself, or in .reuse/dep5.