Tree @master (Download .tar.gz)
Strelnokoff
Version 1.1 | Try it online @ catseye.tc | Wiki entry @ esolangs.org
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/strelnokoff.pl 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.
License
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.
Commit History
@master
git clone https://git.catseye.tc/Strelnokoff/
- Merge branch 'master' into merge-reuse-changes-into-1.1 Chris Pressey 2 years ago
- Relicense under 2-clause BSD. Convert to REUSE 3.0 convention. Chris Pressey 2 years ago
- Add examples demonstrating the capabilities of the language. Chris Pressey 2 years ago
- Updates to the documentation. Chris Pressey 2 years ago
- Keep 1.1 closer to 1.0. No indexes, `/` is not short-circuiting. Chris Pressey 2 years ago
- Define division to be short-circuiting. Chris Pressey 2 years ago
- Refactor grammar, introducing Expression3 production. Chris Pressey 2 years ago
- Update documentation to reflect defining v1.1 of the language. Chris Pressey 2 years ago
- It works! And still under 500 lines of code. Chris Pressey 2 years ago
- Checkpoint developing evaluator. Chris Pressey 2 years ago
- Checkpoint rewriting evaluator as AST case handler. Chris Pressey 2 years ago
- Checkpoint converting AST to be composed of variant records. Chris Pressey 2 years ago
- Checkpoint beginnings of evaluator. Chris Pressey 2 years ago
- Add main driver and debug the scanning and parsing code. Chris Pressey 2 years ago
- Another checkpoint where we (almost) complete the parser. Chris Pressey 2 years ago
- Checkpoint scanner and parser in Lua implementation. Chris Pressey 2 years ago
- Added tag rel_1_0_2014_0819 for changeset 162654a7cdae Chris Pressey 11 years ago
- Add README, LICENSE, stub of documentation. catseye 13 years ago
- Added tag rel_1_0_2012_0818 for changeset 62915d033b69 Cat's Eye Technologies 13 years ago
- Fix BSD license verbiage (no "REGENTS".) Cat's Eye Technologies 14 years ago
- Use /usr/bin/env to find the perl executable. Cat's Eye Technologies 14 years ago
- Remove .pl extension from strelnokoff script. Cat's Eye Technologies 14 years ago
- Added tag rel_1_0_2001_0324 for changeset 64f61ae661cb Cat's Eye Technologies 14 years ago
- Initial import of Strelnokoff 1.0 (2001.0324) sources. Cat's Eye Technologies 14 years ago