New page wikitext, after the edit (new_wikitext) | '{{infobox proglang
|name=Shinjusō
|paradigms=[[:Category:String-rewriting_paradigm|String-rewriting]]
|author=[[User:Sporeball|sporeball]]
|year=[[:Category:2026|2026]]
|class=Turing complete (speculated)
|majorimpl=Private
|files=<code>.shin</code>
}}
:''The correct title of this article is'' '''Shinjusō'''. ''The substitution of any characters is for ease of access.''
'''Shinjusō''' (真珠層; <small>lit.</small> "mother-of-pearl") is an esoteric programming language designed by [[User:Sporeball|sporeball]] in 2026. It is based on the [[:Category:String-rewriting_paradigm|string-rewriting paradigm]], but its substitution rules and data string have a unique appearance: long rows of colorful beads.
==Overview==
The smallest unit of a Shinjusō program is the ''bead''. Each bead is given one of eight colors, and can be either ''stock'' (may be removed or replaced during execution) or ''ironed'' (cannot be changed); nominally, the ANSI colors (i.e. black, <font color="#990000">red</font>, <font color="#009900">green</font>, <font color="#999900">yellow</font>, <font color="#000099">blue</font>, <font color="#990099">magenta</font>, <font color="#009999">cyan</font>, and <font color="#666666">white</font>) are used, with bright colors representing stock beads and standard colors representing ironed beads.
The canonical way for a Shinjusō implementation to display a program immediately before executing it is to select a restricted set of glyphs and use them to represent '''all''' of the beads, differentiating them mainly by color. Using the single glyph <code>o</code> is recommended; the reference implementation uses both <code>O</code> and <code>o</code> for clarity. (The set of glyphs used to represent the program ''on disk'' may be larger.)
A full Shinjusō program consists of one or more substitution rules of the form
A -> B
and an initial data string <code>S</code>, where <code>A</code>, <code>B</code>, and <code>S</code> are rows of one or more beads without any whitespace. <code>A</code> and <code>S</code> must consist of only stock beads, while <code>B</code> may either consist of only stock beads, only ironed beads, or a mix of both; however, if <code>B</code> contains any ironed beads, they must be the ''same color'' as the corresponding beads in <code>A</code>.
Execution consists of following the program's substitution rules in order, returning to the first rule after executing the last, and stops once there is no rule left that can cause a change in the data string. When finished, the data string must contain one or more ironed beads, all adjacent to one another; if so, they are returned as the output, and the program is considered ''accepted''.
==Computational class==
Shinjusō is known to be at least as powerful as a [[push-down automaton]]; however, because the language is a variation on the [[wikipedia:semi-Thue system|semi-Thue system]], some users have speculated that it is likely to be [[Turing-complete]].
The author used the (currently private) reference implementation to obtain the following program (12 rules), which can recognize strings consisting of some number of <font color="#009900">green</font> beads followed by the same number of <font color="#990000">red</font> beads (i.e. a<sup>''n''</sup>b<sup>''n''</sup>):
<font color="#009900">O</font> -> <font color="#999900">O</font><font color="#009900">O</font>
<font color="#999900">O</font><font color="#999900">O</font><font color="#009900">O</font> -> <font color="#999900">O</font><font color="#009900">O</font>
<font color="#009900">O</font><font color="#990000">O</font> -> O
<font color="#009900">O</font>O<font color="#990000">O</font> -> O
<font color="#999900">O</font>O -> <font color="#009999">O</font>
<font color="#990099">O</font><font color="#009999">O</font> -> <font color="#990099">O</font>
<font color="#990000">O</font><font color="#009999">O</font> -> <font color="#990099">O</font>
O<font color="#009999">O</font> -> <font color="#990099">O</font>
<font color="#009999">O</font><font color="#009900">O</font> -> <font color="#990099">O</font>
<font color="#009999">O</font><font color="#990000">O</font> -> <font color="#990099">O</font>
<font color="#009999">O</font>O -> <font color="#990099">O</font>
<font color="#009999">O</font> -> <font color="#009999">o</font>
Valid strings produce an output of one ironed cyan bead, while invalid strings reject without ironing anything:
in: <font color="#009900">OO</font><font color="#990000">OO</font>
-> <font color="#999900">O</font><font color="#009900">OO</font><font color="#990000">OO</font>
-> <font color="#999900">O</font><font color="#009900">O</font>O<font color="#990000">O</font>
-> <font color="#999900">O</font>O
-> <font color="#009999">O</font>
-> <font color="#009999">o</font>
out: <font color="#009999">o</font>
[[Category:Implemented]]
[[Category:Languages]]
[[Category:2026]]
[[Category:String-rewriting_paradigm]]
[[Category:Unknown_computational_class]]' |
Unified diff of changes made by edit (edit_diff) | '@@ -1,0 +1,60 @@
+{{infobox proglang
+|name=Shinjusō
+|paradigms=[[:Category:String-rewriting_paradigm|String-rewriting]]
+|author=[[User:Sporeball|sporeball]]
+|year=[[:Category:2026|2026]]
+|class=Turing complete (speculated)
+|majorimpl=Private
+|files=<code>.shin</code>
+}}
+:''The correct title of this article is'' '''Shinjusō'''. ''The substitution of any characters is for ease of access.''
+
+'''Shinjusō''' (真珠層; <small>lit.</small> "mother-of-pearl") is an esoteric programming language designed by [[User:Sporeball|sporeball]] in 2026. It is based on the [[:Category:String-rewriting_paradigm|string-rewriting paradigm]], but its substitution rules and data string have a unique appearance: long rows of colorful beads.
+
+==Overview==
+
+The smallest unit of a Shinjusō program is the ''bead''. Each bead is given one of eight colors, and can be either ''stock'' (may be removed or replaced during execution) or ''ironed'' (cannot be changed); nominally, the ANSI colors (i.e. black, <font color="#990000">red</font>, <font color="#009900">green</font>, <font color="#999900">yellow</font>, <font color="#000099">blue</font>, <font color="#990099">magenta</font>, <font color="#009999">cyan</font>, and <font color="#666666">white</font>) are used, with bright colors representing stock beads and standard colors representing ironed beads.
+
+The canonical way for a Shinjusō implementation to display a program immediately before executing it is to select a restricted set of glyphs and use them to represent '''all''' of the beads, differentiating them mainly by color. Using the single glyph <code>o</code> is recommended; the reference implementation uses both <code>O</code> and <code>o</code> for clarity. (The set of glyphs used to represent the program ''on disk'' may be larger.)
+
+A full Shinjusō program consists of one or more substitution rules of the form
+
+ A -> B
+
+and an initial data string <code>S</code>, where <code>A</code>, <code>B</code>, and <code>S</code> are rows of one or more beads without any whitespace. <code>A</code> and <code>S</code> must consist of only stock beads, while <code>B</code> may either consist of only stock beads, only ironed beads, or a mix of both; however, if <code>B</code> contains any ironed beads, they must be the ''same color'' as the corresponding beads in <code>A</code>.
+
+Execution consists of following the program's substitution rules in order, returning to the first rule after executing the last, and stops once there is no rule left that can cause a change in the data string. When finished, the data string must contain one or more ironed beads, all adjacent to one another; if so, they are returned as the output, and the program is considered ''accepted''.
+
+==Computational class==
+Shinjusō is known to be at least as powerful as a [[push-down automaton]]; however, because the language is a variation on the [[wikipedia:semi-Thue system|semi-Thue system]], some users have speculated that it is likely to be [[Turing-complete]].
+
+The author used the (currently private) reference implementation to obtain the following program (12 rules), which can recognize strings consisting of some number of <font color="#009900">green</font> beads followed by the same number of <font color="#990000">red</font> beads (i.e. a<sup>''n''</sup>b<sup>''n''</sup>):
+
+ <font color="#009900">O</font> -> <font color="#999900">O</font><font color="#009900">O</font>
+ <font color="#999900">O</font><font color="#999900">O</font><font color="#009900">O</font> -> <font color="#999900">O</font><font color="#009900">O</font>
+ <font color="#009900">O</font><font color="#990000">O</font> -> O
+ <font color="#009900">O</font>O<font color="#990000">O</font> -> O
+ <font color="#999900">O</font>O -> <font color="#009999">O</font>
+ <font color="#990099">O</font><font color="#009999">O</font> -> <font color="#990099">O</font>
+ <font color="#990000">O</font><font color="#009999">O</font> -> <font color="#990099">O</font>
+ O<font color="#009999">O</font> -> <font color="#990099">O</font>
+ <font color="#009999">O</font><font color="#009900">O</font> -> <font color="#990099">O</font>
+ <font color="#009999">O</font><font color="#990000">O</font> -> <font color="#990099">O</font>
+ <font color="#009999">O</font>O -> <font color="#990099">O</font>
+ <font color="#009999">O</font> -> <font color="#009999">o</font>
+
+Valid strings produce an output of one ironed cyan bead, while invalid strings reject without ironing anything:
+
+ in: <font color="#009900">OO</font><font color="#990000">OO</font>
+ -> <font color="#999900">O</font><font color="#009900">OO</font><font color="#990000">OO</font>
+ -> <font color="#999900">O</font><font color="#009900">O</font>O<font color="#990000">O</font>
+ -> <font color="#999900">O</font>O
+ -> <font color="#009999">O</font>
+ -> <font color="#009999">o</font>
+ out: <font color="#009999">o</font>
+
+[[Category:Implemented]]
+[[Category:Languages]]
+[[Category:2026]]
+[[Category:String-rewriting_paradigm]]
+[[Category:Unknown_computational_class]]
' |
Lines added in edit (added_lines) | [
0 => '{{infobox proglang',
1 => '|name=Shinjusō',
2 => '|paradigms=[[:Category:String-rewriting_paradigm|String-rewriting]]',
3 => '|author=[[User:Sporeball|sporeball]]',
4 => '|year=[[:Category:2026|2026]]',
5 => '|class=Turing complete (speculated)',
6 => '|majorimpl=Private',
7 => '|files=<code>.shin</code>',
8 => '}}',
9 => ':''The correct title of this article is'' '''Shinjusō'''. ''The substitution of any characters is for ease of access.''',
10 => '',
11 => ''''Shinjusō''' (真珠層; <small>lit.</small> "mother-of-pearl") is an esoteric programming language designed by [[User:Sporeball|sporeball]] in 2026. It is based on the [[:Category:String-rewriting_paradigm|string-rewriting paradigm]], but its substitution rules and data string have a unique appearance: long rows of colorful beads.',
12 => '',
13 => '==Overview==',
14 => '',
15 => 'The smallest unit of a Shinjusō program is the ''bead''. Each bead is given one of eight colors, and can be either ''stock'' (may be removed or replaced during execution) or ''ironed'' (cannot be changed); nominally, the ANSI colors (i.e. black, <font color="#990000">red</font>, <font color="#009900">green</font>, <font color="#999900">yellow</font>, <font color="#000099">blue</font>, <font color="#990099">magenta</font>, <font color="#009999">cyan</font>, and <font color="#666666">white</font>) are used, with bright colors representing stock beads and standard colors representing ironed beads.',
16 => '',
17 => 'The canonical way for a Shinjusō implementation to display a program immediately before executing it is to select a restricted set of glyphs and use them to represent '''all''' of the beads, differentiating them mainly by color. Using the single glyph <code>o</code> is recommended; the reference implementation uses both <code>O</code> and <code>o</code> for clarity. (The set of glyphs used to represent the program ''on disk'' may be larger.)',
18 => '',
19 => 'A full Shinjusō program consists of one or more substitution rules of the form',
20 => '',
21 => ' A -> B',
22 => '',
23 => 'and an initial data string <code>S</code>, where <code>A</code>, <code>B</code>, and <code>S</code> are rows of one or more beads without any whitespace. <code>A</code> and <code>S</code> must consist of only stock beads, while <code>B</code> may either consist of only stock beads, only ironed beads, or a mix of both; however, if <code>B</code> contains any ironed beads, they must be the ''same color'' as the corresponding beads in <code>A</code>.',
24 => '',
25 => 'Execution consists of following the program's substitution rules in order, returning to the first rule after executing the last, and stops once there is no rule left that can cause a change in the data string. When finished, the data string must contain one or more ironed beads, all adjacent to one another; if so, they are returned as the output, and the program is considered ''accepted''.',
26 => '',
27 => '==Computational class==',
28 => 'Shinjusō is known to be at least as powerful as a [[push-down automaton]]; however, because the language is a variation on the [[wikipedia:semi-Thue system|semi-Thue system]], some users have speculated that it is likely to be [[Turing-complete]].',
29 => '',
30 => 'The author used the (currently private) reference implementation to obtain the following program (12 rules), which can recognize strings consisting of some number of <font color="#009900">green</font> beads followed by the same number of <font color="#990000">red</font> beads (i.e. a<sup>''n''</sup>b<sup>''n''</sup>):',
31 => '',
32 => ' <font color="#009900">O</font> -> <font color="#999900">O</font><font color="#009900">O</font>',
33 => ' <font color="#999900">O</font><font color="#999900">O</font><font color="#009900">O</font> -> <font color="#999900">O</font><font color="#009900">O</font>',
34 => ' <font color="#009900">O</font><font color="#990000">O</font> -> O',
35 => ' <font color="#009900">O</font>O<font color="#990000">O</font> -> O',
36 => ' <font color="#999900">O</font>O -> <font color="#009999">O</font>',
37 => ' <font color="#990099">O</font><font color="#009999">O</font> -> <font color="#990099">O</font>',
38 => ' <font color="#990000">O</font><font color="#009999">O</font> -> <font color="#990099">O</font>',
39 => ' O<font color="#009999">O</font> -> <font color="#990099">O</font>',
40 => ' <font color="#009999">O</font><font color="#009900">O</font> -> <font color="#990099">O</font>',
41 => ' <font color="#009999">O</font><font color="#990000">O</font> -> <font color="#990099">O</font>',
42 => ' <font color="#009999">O</font>O -> <font color="#990099">O</font>',
43 => ' <font color="#009999">O</font> -> <font color="#009999">o</font>',
44 => '',
45 => 'Valid strings produce an output of one ironed cyan bead, while invalid strings reject without ironing anything:',
46 => '',
47 => ' in: <font color="#009900">OO</font><font color="#990000">OO</font>',
48 => ' -> <font color="#999900">O</font><font color="#009900">OO</font><font color="#990000">OO</font>',
49 => ' -> <font color="#999900">O</font><font color="#009900">O</font>O<font color="#990000">O</font>',
50 => ' -> <font color="#999900">O</font>O',
51 => ' -> <font color="#009999">O</font>',
52 => ' -> <font color="#009999">o</font>',
53 => ' out: <font color="#009999">o</font>',
54 => '',
55 => '[[Category:Implemented]]',
56 => '[[Category:Languages]]',
57 => '[[Category:2026]]',
58 => '[[Category:String-rewriting_paradigm]]',
59 => '[[Category:Unknown_computational_class]]'
] |