Unsmiley

From Esolang
Jump to navigation Jump to search

Unsmiley is an esoteric programming language by User:Rdococ. Its conceit is that there are instructions capable of modifying this page, altering the language specification and creating a self-modifying language in the truest sense of the term.

Semantics

In order to enable an automated implementation of this language, the language's semantics will be specified in a basic string-rewriting language, defined as follows:

  • Each line is a substitution rule, with the : character delimiting the initial string from the substitution.
  • The ~ symbol in replacement strings will add the rest of the line as text to a buffer. If it's the last character in the line, the contents of the buffer are committed as a new line in the specification.
  • * is a wildcard, accepting any single character on the left side and reproducing it on the right side.
  • \ works as an escape for any character, reproducing it as-is.
  • Invalid rules should be ignored.

Implementations should include new rules as they are added to the specification during execution.

Ruleset

\:(|:~
\:(*:\:(~*

Computational class

Unsmiley's Turing-completeness depends on its current ruleset. The initial ruleset is Turing-complete by insanity -- you can achieve arbitrary string replacements by adding them to the language specification directly.

See also