The Thue Programming Language
This is Cat's Eye Technologies' distribution of Thue, an esoteric programming language designed by John Colagioia. Thue is a non-deterministic string-rewriting language, based on a formalism called a semi-Thue system, but also including some programming-oriented features, like input and output.
The specification can be found in the file thue.txt
in the doc
directory.
John's implementation of the language, in C, is in the file thue.c
in the
src
directory, and can, for all intents and purposes, be considered the
reference implementation.
In the src
directory, there are also two other implementation of Thue:
thue.py
, in Python, written by Frédéric van der Planckethue.rb
, in Ruby, written by Chris Pressey
There is an assortment of example Thue programs in the eg
directory. The
credits for these are as follows:
add_bin.t
: Frédéric van der Planckeedgcase?.t
: Chris Presseytruth-machine.t
: Keymaker- all others: John Colagioia
More information on Thue can be found on the esolangs.org wiki entry for Thue.
License
All files in this distribution are "essentially in the public domain".
John's original license text can be found in doc/license.txt
. (In it,
the phrase "this file" referred to the archive in which all the Thue files
were distributed.) He placed the files he wrote (implementation, spec, and
examples) basically into the public domain, with the proviso that he be
contacted by anyone who wanted to do "anything interesting" with the files,
including modifying them.
Unfortunately, the email address he left for this purpose, with the claim that it would be kept current, is no longer active. Thus, one can probably reasonably assume that he is no longer interested in what happens to his Thue sources, and that they are unconditionally in the public domain; however, I am not a lawyer, etc. etc.
Frédéric's implementation, and example source, are much less questionably in the public domain; his only proviso is that he be given credit for what he wrote (and not be given credit for any changes or additions that he did not write.) Actually, as I understand it (but again, I am not a lawyer etc etc), putting something into the public domain does not take away one's moral rights to proper credit, so this isn't very much (if at all) different from just being in the public domain.
I, Chris Pressey, hereby place my implementation in Ruby, my example Thue
programs in eg
, and the contents of this README, into the public domain,
under the Creative Commons CC0 1.0 Public Domain Dedication.
The following example files were taken from the esolangs.org wiki, and are thus also under the CC0 1.0 Public Domain Dedication:
truth-machine.t
Commit History
@rel_1_5_2012_0916
git clone https://git.catseye.tc/Thue/
- Add truth-machine example. catseye 12 years ago
- Convert CRLFs to LFs. catseye 12 years ago
- Update README. catseye 12 years ago
- Add 3 Thue programs to test edge cases, and fix thue.py's `raise`s. catseye 12 years ago
- Add public-domain implementation of Thue in Ruby. catseye 12 years ago
- Add README, and take executable permissions off most everything. Cat's Eye Technologies 12 years ago
- Added tag rel_1_5_2010_1218 for changeset 935f97d5bb1d Cat's Eye Technologies 12 years ago
- Import of Thue distribution version 1.5 revision 2010.1218 sources. Cat's Eye Technologies 12 years ago
- Added tag rel_1_4_2004_0301 for changeset 3f3acd9208c4 Cat's Eye Technologies 12 years ago
- Initial import of the Thue distribution, version 1.4 revision 2004.0301. Cat's Eye Technologies 12 years ago