Strelnokoff is a non-deterministic imperative programming language. Despite this apparent handicap, it appears to be Turing-complete (thanks to a short-circuiting multiplication operator,) but a critical feature (arrays) has never yet been implemented. The name "Strelnokoff" was taken from a fictional brand of vodka featured in a mock advertisement on the television show SCTV.
Sample Program
REM HELLO WORLD IN STRELNOKOFF
REM CHRIS PRESSEY MARCH 24 2001
X = (X / X) * X + (X = 0) * (T = 0) * (PRINT CHAR 'H' - 'H' + 1)
X = (X / X) * X + (X = 0) * (T = 1) * (PRINT CHAR 'e' - 'e' + 2)
X = (X / X) * X + (X = 0) * (T = 2) * (PRINT CHAR 'l' - 'l' + 3)
X = (X / X) * X + (X = 0) * (T = 3) * (PRINT CHAR 'l' - 'l' + 4)
X = (X / X) * X + (X = 0) * (T = 4) * (PRINT CHAR 'o' - 'o' + 5)
X = (X / X) * X + (X = 0) * (T = 5) * (PRINT CHAR ',' - ',' + 6)
X = (X / X) * X + (X = 0) * (T = 6) * (PRINT CHAR ' ' - ' ' + 7)
X = (X / X) * X + (X = 0) * (T = 7) * (PRINT CHAR 'w' - 'w' + 8)
X = (X / X) * X + (X = 0) * (T = 8) * (PRINT CHAR 'o' - 'o' + 9)
X = (X / X) * X + (X = 0) * (T = 9) * (PRINT CHAR 'r' - 'r' + 10)
X = (X / X) * X + (X = 0) * (T = 10) * (PRINT CHAR 'l' - 'l' + 11)
X = (X / X) * X + (X = 0) * (T = 11) * (PRINT CHAR 'd' - 'd' + 12)
X = (X / X) * X + (X = 0) * (T = 12) * (PRINT CHAR '!' - '!' + 13)
X = (T = X) * 0 + (X > T) * X REM RESET FLAG
T = (X / X) * X + (X = 0) * T REM INCREMENT TICK
Computational Class
Programming Paradigms
Documentation
Implementations
-
strelnokoff.pl, an interpreter in Perl
To run this implementation, you need:
- an implementation of Perl (we suggest perl 5.8.8)
Download
Development
Github: catseye/Strelnokoff
Bitbucket: catseye/strelnokoff
Issue tracker: on github