Examine individual changes
This page allows you to examine the variables generated by the Abuse Filter for an individual change.
Variables generated for this change
Variable | Value |
---|---|
Edit count of the user (user_editcount) | 32 |
Name of the user account (user_name) | 'Lampe2020' |
Age of the user account (user_age) | 79937826 |
Page ID (page_id) | 22354 |
Page namespace (page_namespace) | 0 |
Page title (without namespace) (page_title) | 'Stackowey' |
Full page title (page_prefixedtitle) | 'Stackowey' |
Action (action) | 'edit' |
Edit summary/reason (summary) | 'Defined the language, added a bunch of additional info and refactored the entire page ' |
Old content model (old_content_model) | 'wikitext' |
New content model (new_content_model) | 'wikitext' |
Old page wikitext, before the edit (old_wikitext) | 'Stackowey is the serious and actually functional spiritual successor of [[arrowey]]. It operates on a 2-dimensional grid of characters, called the "playfield", with each character either having a complete meaning in and of itself or no meaning at all.
The source code of a Stackowey program is specified to be stored in a file with the <code>.swy</code> extension (which is case-insensitive but recommended to be lowercase), although this is not enforced in the official interpreter.
The stack always starts out with a single 42<small>(base 8)</small> (or 34<small>(base 10)</small>) on it.
== Commands ==
{| class="wikitable"
|-
! ASCII character !! Name !! Description
|-
| <code>/</code> || "bounce" || Pops two values off the stack. Bounces the pointer off if the first one is greater than the second one
|-
| <code>\</code> || "backbounce" || Pops two values off the stack. Bounces the pointer off if the first one is lower than the second one
|-
| <code>?</code> || "huh" || Gets UTF-8-encoded input from the user. Pushes each character to the stack as its [https://en.wikipedia.org/wiki/Unicode#Codespace_and_code_points Unicode code point], followed by a 0 up top
|-
| <code>!</code> || "hah" || Pops and outputs the UTF-8-encoded character according to its Unicode code point found on the stack
|-
| <code>%</code> || "splot" || Pops and takes the top two stack values as coordinates to jump to while not changing direction. <br>''Note: the movement is done after the jump, so the command being jumped to is ignored!''
|-
| <code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code> || "oh", "itch", "nigh", "chan", "fire", "lamp", "glorp", "wa-ding" || Pushes the corresponding number to the stack
|-
| <code>+</code> || "cross" || Pops two stack values and pushes their sum onto the stack
|-
| <code>_</code> || "stumble" || Inverts all bits of the top stack element
|-
| <code>#</code> || "grille" || Pops one value off the stack, calls it n and swaps the n:th and topmost stack element
|-
| <code>@</code> || "whirlpool" || Pops one value off the stack, calls it n and pushes a copy of the n:th stack element to the top of the stack
|-
| <code>8</code> || "dubring" || Pushes the current coordinates to the stack
|-
| <code>9</code> || "tailring" || Halts the program
|-
| ''all other bytes'' || "impostor" || These are all no-ops
|}
== Syntax ==
The playfield must be rectangular (all lines must have the same length), with the exception of the [https://en.wikipedia.org/wiki/Shebang%20(Unix) shebang line], which is included as a convenience feature, so a Stackowey source code file can be marked executable in a [https://en.wikipedia.org/w/index.php?title=*NIX *NIX environment] and run directly, without needing to explicitly call the interpreter. When fetching the source code from [https://en.wikipedia.org/wiki/stdin stdin], another exception is made, that being the line <code>---</code> (which separates the source code from its inputs) and all lines after it (which are the inputs).
Also, a single newline character appended to the end of the source code will be ignored.
== Examples ==
''Note that most examples here include the shebang line, which is simply ignored by the interpreter.''
=== Hello World ===
==== With code comments ====
''Note: The code is also folded a bit and formatted in a way to make it a little easier to understand. The end result is the same as the minimal example below this one though.''
<pre>#!/usr/bin/env -S ./stackowey -d
Output the string "Hello World" by calculating its unicode values: 777777777772++++++++++ (push fourty-eight to stack)1221\
/2112 Move all the way to the left again to make the code a little easier to understand /
\0@ (duplicate the top stack value) ! (output the top stack value, thereby consuming it) 77771+++++0@! ("e") 1221\
/2112 /
\7+0@0@!! ("ll") 3+0@! ("o") 77774++++! (" " not based on "o") 0@71++! ("w" and discard it from stack) 0@! ("o") 1221\
/2112 /
\ 3+0@! ("r") Now we need to subtract, so let's do that: 5_+ (inverted(b minus one) plus a equals a minus b) 1221\
/2112 /
\ 0@! ("l") 7_+! ("d" and discarded from stack) 7775++++! (exclamation point and discard it from stack) 1221\
/2112 /
\ 73+! (newline) 9 (halt) </pre>
==== Minimal ====
''(Same method as the commented version above, but all on one line with no comments or shebang line)''
<pre>77777777772++++++++++0@!77771+++++0@!7+0@0@!!3+0@!77774++++!0@71++!0@!3+0@!5_+0@!7_+!0_+!73+!9</pre>
=== Truth Machine ===
This is quite a lazy one, as it simply outputs <code>0</code> whenever zero or anything with a lower Unicode code point is last entered into it by the user and infinitely many <code>1</code>s in all other cases.
<pre>#!/usr/bin/env -S ./stackowey -d
?0@7777776++++++++1@1@\!73+!9
0
@
8
1
#
1
_
+
1
+
3
@
1
+
!
% </pre>
== Interpreter ==
The official interpreter's [[C++]] source code is available under the GNU GPLv3 license on [[User:Lampe2020]]'s [https://github.com/Lampe2020/stackowey GitHub].
[[Category:Languages]] [[Category:Two-dimensional languages]] [[Category:Implemented]]' |
New page wikitext, after the edit (new_wikitext) | '{{infobox proglang
|name=Stackowey
|author=[[User:Lampe2020|Lampe2020]]
|year=[[:Category:2025|2025]]
|paradigms=[[:Category:Imperative paradigm|Imperative]]
|typesys=Static, only unsigned integers
|memsys=[[:Category:Stack-based|Stack-based]]
|refimpl=[https://github.com/Lampe2020/stackowey/blob/main/main.cpp C++], [https://github.com/Lampe2020/stackowey-ide/blob/deploy/stackowey.js JavaScript]
|class=[[Turing-complete]] (assumed so by the author, not yet proven)
|majorimpl=
|influence=[[Brainfuck]], [[Befunge]]
|influenced=
|dimensions=[[Category:Two-dimensional languages|2]]
|files=<code>.swy</code>
}}
Stackowey ''<nowiki>["stäck-o-wee"]</nowiki>'' is the serious and actually functional<ref>Not in the meaning of [[Functional programming]], but rather in the meaning of "functioning"</ref> spiritual successor of [[arrowey]], created by [[User:Lampe2020]]. It operates on a 2-dimensional grid of characters, called the "playfield", with each character having a complete meaning in and of itself.<br>
The source code of a Stackowey program is specified to be stored in a file with the <code>.swy</code> extension (which is case-insensitive but recommended to be lowercase), although this is not enforced in the official interpreter.
== Syntax ==
{| class="wikitable"
|+ Commands and their definitions
|-
! ASCII character !! Name !! Description
|-
| <code>/</code> || "bounce" || Pops two values off the stack. Bounces the pointer off if the first one is greater than the second one
|-
| <code>\</code> || "backbounce" || Pops two values off the stack. Bounces the pointer off if the first one is lower than the second one
|-
| <code>?</code> || "huh" || Gets UTF-8-encoded input from the user. Pushes each character to the stack as its [https://en.wikipedia.org/wiki/Unicode#Codespace_and_code_points Unicode code point], followed by a 0 up top.<br>
''Note: when the input stream has ended or otherwise failed, this command immediately halts the program with an appropriate error message''
|-
| <code>!</code> || "hah" || Pops and outputs the UTF-8-encoded character according to its Unicode code point found on the stack<br>''Note: ''
|-
| <code>%</code> || "splot" || Pops and takes the top two stack values as coordinates to jump to while not changing direction. <br>''Note: the movement is done after the jump, so the command being jumped to is ignored!''
|-
| <code>0</code>, <code>1</code>, <code>2</code>, <code>3</code>, <code>4</code>, <code>5</code>, <code>6</code>, <code>7</code> || "oh", "itch", "nigh", "chan", "fire", "lamp", "glorp", "wa-ding" || Pushes the corresponding number to the stack
|-
| <code>+</code> || "cross" || Pops two stack values and pushes their sum onto the stack
|-
| <code>_</code> || "stumble" || Inverts all bits of the top stack element
|-
| <code>#</code> || "grille" || Pops one value off the stack, calls it n and swaps the n:th and topmost stack element
|-
| <code>@</code> || "whirlpool" || Pops one value off the stack, calls it n and pushes a copy of the n:th stack element to the top of the stack
|-
| <code>8</code> || "dubring" || Pushes the current coordinates to the stack
|-
| <code>9</code> || "tailring" || Halts the program
|-
| ''all other bytes'' || "impostor" || These are all no-ops
|}
The playfield must be rectangular (all lines must have the same length), with the exception of the [https://en.wikipedia.org/wiki/Shebang%20(Unix) shebang line], which is included as a convenience feature, so a Stackowey source code file can be marked executable in a [https://en.wikipedia.org/w/index.php?title=*NIX *NIX environment] and run directly, without needing to explicitly call the interpreter ''(Note that, due to the shebang line being ignored, no program can immediately begin with <code>#!</code>, although that can be circumvented by inserting at least one other instruction like an impostor before or in between the <code>#!</code>)''.<br>
When fetching the source code from [https://en.wikipedia.org/wiki/stdin stdin], another exception is made, that being the line <code>---</code> (which separates the source code from its inputs) and all lines after it (which are the inputs).<br>
Also, a single newline character appended to the end of the source code will be ignored.<br>
== Runtime behaviour ==
The program starts out with running the top left command of the playfield, then proceeds to the right. The playfield is effectively infinitely tiled, by looping teleport coordinates around and making the program loop around to the same row's (or column's, if moving vertically instead of horizontally) other end if it tries to run off the edge.
== The Stack ==
The [[Stack]] (which Stackowey is named after, so it's capitalized because of its importance) always starts out with a single 42<sub>8</sub> (or 34<sub>10</sub>) on it.<br>
It is a single tower of unsigned integers of all the same width, as unsigned integers are the only data type Stackowey understands. There is no restriction on the width of the Stack, as long as all Stack elements have the same (constant, so not changing during execution!) width.
== Turing-completeness ==
Stackowey is designed to be [[Turing-complete]], which the author thinks he succeeded with, although you would need a theoretical implementation with an infinitely wide stack that could grow infinitely tall and survive the heat death of the universe to achieve ''true'' Turing-completeness.
== Examples ==
''Note that most examples here include the shebang line, which is simply ignored by the interpreter.''
=== Hello World ===
==== With code comments ====
''Note: The code is also folded a bit and formatted in a way to make it a little easier to understand. The end result is the same as the minimal example below this one though.''
<pre>#!/usr/bin/env -S ./stackowey -d
Output the string "Hello World" by calculating its unicode values: 777777777772++++++++++ (push fourty-eight to stack)1221\
/2112 Move all the way to the left again to make the code a little easier to understand /
\0@ (duplicate the top stack value) ! (output the top stack value, thereby consuming it) 77771+++++0@! ("e") 1221\
/2112 /
\7+0@0@!! ("ll") 3+0@! ("o") 77774++++! (" " not based on "o") 0@71++! ("w" and discard it from stack) 0@! ("o") 1221\
/2112 /
\ 3+0@! ("r") Now we need to subtract, so let's do that: 5_+ (inverted(b minus one) plus a equals a minus b) 1221\
/2112 /
\ 0@! ("l") 7_+! ("d" and discarded from stack) 7775++++! (exclamation point and discard it from stack) 1221\
/2112 /
\ 73+! (newline) 9 (halt) </pre>
==== Minimal ====
''(Same method as the commented version above, but all on one line with no comments or shebang line)''
<pre>77777777772++++++++++0@!77771+++++0@!7+0@0@!!3+0@!77774++++!0@71++!0@!3+0@!5_+0@!7_+!0_+!73+!9</pre>
=== Truth Machine ===
This is quite a lazy one, as it simply outputs <code>0</code> whenever zero or anything with a lower Unicode code point is last entered into it by the user and infinitely many <code>1</code>s in all other cases.
<pre>#!/usr/bin/env -S ./stackowey -d
?0@7777776++++++++1@1@\!73+!9
0
@
8
1
#
1
_
+
1
+
3
@
1
+
!
% </pre>
=== Arithmetic operations ===
''Examples in this section use <code>a</code> and <code>b</code> as placeholders for the actual numbers to be worked with, in reality those should be pushed onto the stack in the shown order before running the given snippet.''<br>
''Note: some of the arithmetic operations lack examples because they are too tedious to implement when the only debugging technique available is the dev log from the interpreter along with following along in the head or executing it by hand, so once the online IDE<ref>The online IDE is linked to in the "Interpreters" section.</ref> becomes usable they will be created and added.''
==== Addition ====
The only built-in arithmetic operation.
<pre>ab+</pre>
==== Subtraction ====
This needs to be implemented using "cross" and "stumble":
<pre>ab_1++</pre>
''This example leaves the result of <code>a-b</code> on the stack.''
==== Multiplication ====
This needs to be implemented as e.g. an addition loop.
==== Division ====
This needs to be implemented as e.g. a subtraction loop (which gives you the remainder for free as it actually remains).
== Interpreters ==
* The official interpreter's [[C++]] source code is available under the GNU GPLv3 license on Lampe2020's [https://github.com/Lampe2020/stackowey GitHub].
* An official [https://lampe2020.github.io/stackowey-ide online IDE] is also in the works.
== Footnotes ==
<references />
[[Category:Languages]] [[Category:Two-dimensional languages]] [[Category:Implemented]] [[Category:2025]] [[Category:Stack-based]]' |
Unified diff of changes made by edit (edit_diff) | '@@ -1,8 +1,23 @@
-Stackowey is the serious and actually functional spiritual successor of [[arrowey]]. It operates on a 2-dimensional grid of characters, called the "playfield", with each character either having a complete meaning in and of itself or no meaning at all.
-The source code of a Stackowey program is specified to be stored in a file with the <code>.swy</code> extension (which is case-insensitive but recommended to be lowercase), although this is not enforced in the official interpreter.
-The stack always starts out with a single 42<small>(base 8)</small> (or 34<small>(base 10)</small>) on it.
+{{infobox proglang
+|name=Stackowey
+|author=[[User:Lampe2020|Lampe2020]]
+|year=[[:Category:2025|2025]]
+|paradigms=[[:Category:Imperative paradigm|Imperative]]
+|typesys=Static, only unsigned integers
+|memsys=[[:Category:Stack-based|Stack-based]]
+|refimpl=[https://github.com/Lampe2020/stackowey/blob/main/main.cpp C++], [https://github.com/Lampe2020/stackowey-ide/blob/deploy/stackowey.js JavaScript]
+|class=[[Turing-complete]] (assumed so by the author, not yet proven)
+|majorimpl=
+|influence=[[Brainfuck]], [[Befunge]]
+|influenced=
+|dimensions=[[Category:Two-dimensional languages|2]]
+|files=<code>.swy</code>
+}}
+Stackowey ''<nowiki>["stäck-o-wee"]</nowiki>'' is the serious and actually functional<ref>Not in the meaning of [[Functional programming]], but rather in the meaning of "functioning"</ref> spiritual successor of [[arrowey]], created by [[User:Lampe2020]]. It operates on a 2-dimensional grid of characters, called the "playfield", with each character having a complete meaning in and of itself.<br>
+The source code of a Stackowey program is specified to be stored in a file with the <code>.swy</code> extension (which is case-insensitive but recommended to be lowercase), although this is not enforced in the official interpreter.
-== Commands ==
+== Syntax ==
{| class="wikitable"
+|+ Commands and their definitions
|-
! ASCII character !! Name !! Description
@@ -12,7 +27,8 @@
| <code>\</code> || "backbounce" || Pops two values off the stack. Bounces the pointer off if the first one is lower than the second one
|-
-| <code>?</code> || "huh" || Gets UTF-8-encoded input from the user. Pushes each character to the stack as its [https://en.wikipedia.org/wiki/Unicode#Codespace_and_code_points Unicode code point], followed by a 0 up top
+| <code>?</code> || "huh" || Gets UTF-8-encoded input from the user. Pushes each character to the stack as its [https://en.wikipedia.org/wiki/Unicode#Codespace_and_code_points Unicode code point], followed by a 0 up top.<br>
+''Note: when the input stream has ended or otherwise failed, this command immediately halts the program with an appropriate error message''
|-
-| <code>!</code> || "hah" || Pops and outputs the UTF-8-encoded character according to its Unicode code point found on the stack
+| <code>!</code> || "hah" || Pops and outputs the UTF-8-encoded character according to its Unicode code point found on the stack<br>''Note: ''
|-
| <code>%</code> || "splot" || Pops and takes the top two stack values as coordinates to jump to while not changing direction. <br>''Note: the movement is done after the jump, so the command being jumped to is ignored!''
@@ -34,8 +50,17 @@
| ''all other bytes'' || "impostor" || These are all no-ops
|}
+The playfield must be rectangular (all lines must have the same length), with the exception of the [https://en.wikipedia.org/wiki/Shebang%20(Unix) shebang line], which is included as a convenience feature, so a Stackowey source code file can be marked executable in a [https://en.wikipedia.org/w/index.php?title=*NIX *NIX environment] and run directly, without needing to explicitly call the interpreter ''(Note that, due to the shebang line being ignored, no program can immediately begin with <code>#!</code>, although that can be circumvented by inserting at least one other instruction like an impostor before or in between the <code>#!</code>)''.<br>
+When fetching the source code from [https://en.wikipedia.org/wiki/stdin stdin], another exception is made, that being the line <code>---</code> (which separates the source code from its inputs) and all lines after it (which are the inputs).<br>
+Also, a single newline character appended to the end of the source code will be ignored.<br>
+
+== Runtime behaviour ==
+The program starts out with running the top left command of the playfield, then proceeds to the right. The playfield is effectively infinitely tiled, by looping teleport coordinates around and making the program loop around to the same row's (or column's, if moving vertically instead of horizontally) other end if it tries to run off the edge.
+
+== The Stack ==
+The [[Stack]] (which Stackowey is named after, so it's capitalized because of its importance) always starts out with a single 42<sub>8</sub> (or 34<sub>10</sub>) on it.<br>
+It is a single tower of unsigned integers of all the same width, as unsigned integers are the only data type Stackowey understands. There is no restriction on the width of the Stack, as long as all Stack elements have the same (constant, so not changing during execution!) width.
-== Syntax ==
-The playfield must be rectangular (all lines must have the same length), with the exception of the [https://en.wikipedia.org/wiki/Shebang%20(Unix) shebang line], which is included as a convenience feature, so a Stackowey source code file can be marked executable in a [https://en.wikipedia.org/w/index.php?title=*NIX *NIX environment] and run directly, without needing to explicitly call the interpreter. When fetching the source code from [https://en.wikipedia.org/wiki/stdin stdin], another exception is made, that being the line <code>---</code> (which separates the source code from its inputs) and all lines after it (which are the inputs).
-Also, a single newline character appended to the end of the source code will be ignored.
+== Turing-completeness ==
+Stackowey is designed to be [[Turing-complete]], which the author thinks he succeeded with, although you would need a theoretical implementation with an infinitely wide stack that could grow infinitely tall and survive the heat death of the universe to achieve ''true'' Turing-completeness.
== Examples ==
@@ -81,6 +106,25 @@
% </pre>
-== Interpreter ==
-The official interpreter's [[C++]] source code is available under the GNU GPLv3 license on [[User:Lampe2020]]'s [https://github.com/Lampe2020/stackowey GitHub].
+=== Arithmetic operations ===
+''Examples in this section use <code>a</code> and <code>b</code> as placeholders for the actual numbers to be worked with, in reality those should be pushed onto the stack in the shown order before running the given snippet.''<br>
+''Note: some of the arithmetic operations lack examples because they are too tedious to implement when the only debugging technique available is the dev log from the interpreter along with following along in the head or executing it by hand, so once the online IDE<ref>The online IDE is linked to in the "Interpreters" section.</ref> becomes usable they will be created and added.''
+==== Addition ====
+The only built-in arithmetic operation.
+<pre>ab+</pre>
+==== Subtraction ====
+This needs to be implemented using "cross" and "stumble":
+<pre>ab_1++</pre>
+''This example leaves the result of <code>a-b</code> on the stack.''
+==== Multiplication ====
+This needs to be implemented as e.g. an addition loop.
+==== Division ====
+This needs to be implemented as e.g. a subtraction loop (which gives you the remainder for free as it actually remains).
+
+== Interpreters ==
+* The official interpreter's [[C++]] source code is available under the GNU GPLv3 license on Lampe2020's [https://github.com/Lampe2020/stackowey GitHub].
+* An official [https://lampe2020.github.io/stackowey-ide online IDE] is also in the works.
+
+== Footnotes ==
+<references />
-[[Category:Languages]] [[Category:Two-dimensional languages]] [[Category:Implemented]]
+[[Category:Languages]] [[Category:Two-dimensional languages]] [[Category:Implemented]] [[Category:2025]] [[Category:Stack-based]]
' |
New page size (new_size) | 9721 |
Old page size (old_size) | 6217 |
Lines added in edit (added_lines) | [
0 => '{{infobox proglang',
1 => '|name=Stackowey',
2 => '|author=[[User:Lampe2020|Lampe2020]]',
3 => '|year=[[:Category:2025|2025]]',
4 => '|paradigms=[[:Category:Imperative paradigm|Imperative]]',
5 => '|typesys=Static, only unsigned integers',
6 => '|memsys=[[:Category:Stack-based|Stack-based]]',
7 => '|refimpl=[https://github.com/Lampe2020/stackowey/blob/main/main.cpp C++], [https://github.com/Lampe2020/stackowey-ide/blob/deploy/stackowey.js JavaScript]',
8 => '|class=[[Turing-complete]] (assumed so by the author, not yet proven)',
9 => '|majorimpl=',
10 => '|influence=[[Brainfuck]], [[Befunge]]',
11 => '|influenced=',
12 => '|dimensions=[[Category:Two-dimensional languages|2]]',
13 => '|files=<code>.swy</code>',
14 => '}}',
15 => 'Stackowey ''<nowiki>["stäck-o-wee"]</nowiki>'' is the serious and actually functional<ref>Not in the meaning of [[Functional programming]], but rather in the meaning of "functioning"</ref> spiritual successor of [[arrowey]], created by [[User:Lampe2020]]. It operates on a 2-dimensional grid of characters, called the "playfield", with each character having a complete meaning in and of itself.<br>',
16 => 'The source code of a Stackowey program is specified to be stored in a file with the <code>.swy</code> extension (which is case-insensitive but recommended to be lowercase), although this is not enforced in the official interpreter.',
17 => '== Syntax ==',
18 => '|+ Commands and their definitions',
19 => '| <code>?</code> || "huh" || Gets UTF-8-encoded input from the user. Pushes each character to the stack as its [https://en.wikipedia.org/wiki/Unicode#Codespace_and_code_points Unicode code point], followed by a 0 up top.<br>',
20 => '''Note: when the input stream has ended or otherwise failed, this command immediately halts the program with an appropriate error message''',
21 => '| <code>!</code> || "hah" || Pops and outputs the UTF-8-encoded character according to its Unicode code point found on the stack<br>''Note: ''',
22 => 'The playfield must be rectangular (all lines must have the same length), with the exception of the [https://en.wikipedia.org/wiki/Shebang%20(Unix) shebang line], which is included as a convenience feature, so a Stackowey source code file can be marked executable in a [https://en.wikipedia.org/w/index.php?title=*NIX *NIX environment] and run directly, without needing to explicitly call the interpreter ''(Note that, due to the shebang line being ignored, no program can immediately begin with <code>#!</code>, although that can be circumvented by inserting at least one other instruction like an impostor before or in between the <code>#!</code>)''.<br>',
23 => 'When fetching the source code from [https://en.wikipedia.org/wiki/stdin stdin], another exception is made, that being the line <code>---</code> (which separates the source code from its inputs) and all lines after it (which are the inputs).<br>',
24 => 'Also, a single newline character appended to the end of the source code will be ignored.<br>',
25 => '',
26 => '== Runtime behaviour ==',
27 => 'The program starts out with running the top left command of the playfield, then proceeds to the right. The playfield is effectively infinitely tiled, by looping teleport coordinates around and making the program loop around to the same row's (or column's, if moving vertically instead of horizontally) other end if it tries to run off the edge. ',
28 => '',
29 => '== The Stack ==',
30 => 'The [[Stack]] (which Stackowey is named after, so it's capitalized because of its importance) always starts out with a single 42<sub>8</sub> (or 34<sub>10</sub>) on it.<br>',
31 => 'It is a single tower of unsigned integers of all the same width, as unsigned integers are the only data type Stackowey understands. There is no restriction on the width of the Stack, as long as all Stack elements have the same (constant, so not changing during execution!) width. ',
32 => '== Turing-completeness ==',
33 => 'Stackowey is designed to be [[Turing-complete]], which the author thinks he succeeded with, although you would need a theoretical implementation with an infinitely wide stack that could grow infinitely tall and survive the heat death of the universe to achieve ''true'' Turing-completeness. ',
34 => '=== Arithmetic operations ===',
35 => '''Examples in this section use <code>a</code> and <code>b</code> as placeholders for the actual numbers to be worked with, in reality those should be pushed onto the stack in the shown order before running the given snippet.''<br>',
36 => '''Note: some of the arithmetic operations lack examples because they are too tedious to implement when the only debugging technique available is the dev log from the interpreter along with following along in the head or executing it by hand, so once the online IDE<ref>The online IDE is linked to in the "Interpreters" section.</ref> becomes usable they will be created and added.''',
37 => '==== Addition ====',
38 => 'The only built-in arithmetic operation.',
39 => '<pre>ab+</pre>',
40 => '==== Subtraction ====',
41 => 'This needs to be implemented using "cross" and "stumble":',
42 => '<pre>ab_1++</pre>',
43 => '''This example leaves the result of <code>a-b</code> on the stack.''',
44 => '==== Multiplication ====',
45 => 'This needs to be implemented as e.g. an addition loop.',
46 => '==== Division ====',
47 => 'This needs to be implemented as e.g. a subtraction loop (which gives you the remainder for free as it actually remains).',
48 => '',
49 => '== Interpreters ==',
50 => '* The official interpreter's [[C++]] source code is available under the GNU GPLv3 license on Lampe2020's [https://github.com/Lampe2020/stackowey GitHub].',
51 => '* An official [https://lampe2020.github.io/stackowey-ide online IDE] is also in the works.',
52 => '',
53 => '== Footnotes ==',
54 => '<references />',
55 => '[[Category:Languages]] [[Category:Two-dimensional languages]] [[Category:Implemented]] [[Category:2025]] [[Category:Stack-based]]'
] |
Unix timestamp of change (timestamp) | '1744467506' |