Abuse filter log

Abuse Filter navigation (Home | Recent filter changes | Examine past edits | Abuse log)
Jump to navigation Jump to search
Details for log entry 7,069

19:30, 9 April 2018: Alpha-ketoacid (talk | contribs) triggered filter 9, performing the action "edit" on SMETANA To Infinity!. Actions taken: Warn; Filter description: require new users to introduce themselves (examine)

Changes made in edit

 
12: Go to step 6.
 
12: Go to step 6.
 
(...)
 
(...)
  +
This is also an example of the Collatz conjecture.
   
 
=== Main execution ===
 
=== Main execution ===

Action parameters

VariableValue
Whether or not the edit is marked as minor (no longer in use) (minor_edit)
false
Edit count of the user (user_editcount)
0
Name of the user account (user_name)
'Alpha-ketoacid'
Age of the user account (user_age)
141
Page ID (page_id)
10948
Page namespace (page_namespace)
0
Page title (without namespace) (page_title)
'SMETANA To Infinity!'
Full page title (page_prefixedtitle)
'SMETANA To Infinity!'
Action (action)
'edit'
Edit summary/reason (summary)
'/* Example of memory initialization */ '
Old content model (old_content_model)
'wikitext'
New content model (new_content_model)
'wikitext'
Old page wikitext, before the edit (old_wikitext)
''''SMETANA To Infinity!''' is an esoteric programming language inspired by [[SMETANA]]. It was created by Tanner Swett in 2016. == Syntax == Program ::= {Step "."} Step ::= "Step" Expression "." (GoTo | Swap | Output | "Stop") GoTo ::= "Go" "to" "step" Expression Swap ::= "Swap" "step" Expression "with" "step" Expression Output ::= "Output" "character" Expression Expression ::= Number | [Number] "n" ["+" Number] "Number" means a token consisting of one or more decimal digits, interpreted as a decimal number. It is illegal to use a number token whose value is 0, except in an "output" statement. Letters within tokens can have any capitalization. Whitespace is allowed before and after tokens, but not within tokens. If the first non-whitespace character on a line is "#", that line is ignored. == Execution == The memory of a program consists of an infinite array of memory cells ("steps"), indexed by the positive integers, each one containing one instruction. Initially, every memory cell contains the instruction "Stop". Execution consists of two phases: memory initialization and main execution. Conceptually, memory initialization may involve modifying infinitely many memory cells. An implementation of SMETANA To Infinity! must somehow simulate this process using a finite amount of time. To perform memory initialization, repeat the following process for each statement in the program, in order: * Check whether the step number of the statement is an integer or an "n" expression. * If the step number is an integer: ** Every expression in the statement must be an integer. If one of the statements is an "n" expression, then the program is illegal. ** Load the body of the statement into memory at the index specified by the step number. * If the step number is an "n" expression: ** For each positive integer "n": *** Consider the statement formed by replacing each "n" expression with its value. *** Load the body of this new statement into memory at the index specified by its step number. === Example of memory initialization === Consider this program: Step n. Go to step 3n + 1. Step 2n. Go to step n. Step 1. Go to step 7. Step 4. Stop. After memory initialization, the memory will contain: 1: Go to step 7. 2: Go to step 1. 3: Go to step 10. 4: Stop. 5: Go to step 16. 6: Go to step 3. 7: Go to step 22. 8: Go to step 4. 9: Go to step 28. 10: Go to step 5. 11: Go to step 34. 12: Go to step 6. (...) === Main execution === To perform main execution, execute the instructions in memory in sequence, starting with step 1. After a "go to" instruction is executed, continue executing at the specified location, instead of at the location following the "go to" instruction. After a "stop" instruction is executed, stop executing instructions. The interpretation of the numbers which are output is unspecified. They could be interpreted as bytes, as Unicode scalar values, or just as numbers. == Computational class == SMETANA To Infinity! seems to be [[Turing-complete]]. A Turing machine (with tape infinite in only one direction) could be implemented by representing each space on the tape as a sequence of contiguous memory cells. The state of a cell could be represented by swapping around some of the instructions in the cell. Motion of the head could be implemented by jumping between regions of memory, and the state of the head could be represented by jumping to a specific location within each region. An alternative proof of Turing-completeness is to note that you can pretty much directly write the [[Collatz function]] encoding of a [[Fractran]] program, using only the `Go to` and `Stop` commands. The Collatz function rule ''f''(''mx''+''i'') = ''a<sub>i</sub>x'' + ''b<sub>i</sub>'' becomes Step ''m'' n + ''i''. Go to step ''a<sub>i</sub>'' n + ''b<sub>i</sub>''. Also, see [[SMETANA To Infinity!/brainfuck]] for methods of translating from (1-bit) brainfuck. [[Category:2016]] [[Category:Languages]] [[Category:Unimplemented]] [[Category:Self-modifying]] [[Category:Turing complete]] [[Category:Turing tarpits]] [[Category:Output only]]'
New page wikitext, after the edit (new_wikitext)
''''SMETANA To Infinity!''' is an esoteric programming language inspired by [[SMETANA]]. It was created by Tanner Swett in 2016. == Syntax == Program ::= {Step "."} Step ::= "Step" Expression "." (GoTo | Swap | Output | "Stop") GoTo ::= "Go" "to" "step" Expression Swap ::= "Swap" "step" Expression "with" "step" Expression Output ::= "Output" "character" Expression Expression ::= Number | [Number] "n" ["+" Number] "Number" means a token consisting of one or more decimal digits, interpreted as a decimal number. It is illegal to use a number token whose value is 0, except in an "output" statement. Letters within tokens can have any capitalization. Whitespace is allowed before and after tokens, but not within tokens. If the first non-whitespace character on a line is "#", that line is ignored. == Execution == The memory of a program consists of an infinite array of memory cells ("steps"), indexed by the positive integers, each one containing one instruction. Initially, every memory cell contains the instruction "Stop". Execution consists of two phases: memory initialization and main execution. Conceptually, memory initialization may involve modifying infinitely many memory cells. An implementation of SMETANA To Infinity! must somehow simulate this process using a finite amount of time. To perform memory initialization, repeat the following process for each statement in the program, in order: * Check whether the step number of the statement is an integer or an "n" expression. * If the step number is an integer: ** Every expression in the statement must be an integer. If one of the statements is an "n" expression, then the program is illegal. ** Load the body of the statement into memory at the index specified by the step number. * If the step number is an "n" expression: ** For each positive integer "n": *** Consider the statement formed by replacing each "n" expression with its value. *** Load the body of this new statement into memory at the index specified by its step number. === Example of memory initialization === Consider this program: Step n. Go to step 3n + 1. Step 2n. Go to step n. Step 1. Go to step 7. Step 4. Stop. After memory initialization, the memory will contain: 1: Go to step 7. 2: Go to step 1. 3: Go to step 10. 4: Stop. 5: Go to step 16. 6: Go to step 3. 7: Go to step 22. 8: Go to step 4. 9: Go to step 28. 10: Go to step 5. 11: Go to step 34. 12: Go to step 6. (...) This is also an example of the Collatz conjecture. === Main execution === To perform main execution, execute the instructions in memory in sequence, starting with step 1. After a "go to" instruction is executed, continue executing at the specified location, instead of at the location following the "go to" instruction. After a "stop" instruction is executed, stop executing instructions. The interpretation of the numbers which are output is unspecified. They could be interpreted as bytes, as Unicode scalar values, or just as numbers. == Computational class == SMETANA To Infinity! seems to be [[Turing-complete]]. A Turing machine (with tape infinite in only one direction) could be implemented by representing each space on the tape as a sequence of contiguous memory cells. The state of a cell could be represented by swapping around some of the instructions in the cell. Motion of the head could be implemented by jumping between regions of memory, and the state of the head could be represented by jumping to a specific location within each region. An alternative proof of Turing-completeness is to note that you can pretty much directly write the [[Collatz function]] encoding of a [[Fractran]] program, using only the `Go to` and `Stop` commands. The Collatz function rule ''f''(''mx''+''i'') = ''a<sub>i</sub>x'' + ''b<sub>i</sub>'' becomes Step ''m'' n + ''i''. Go to step ''a<sub>i</sub>'' n + ''b<sub>i</sub>''. Also, see [[SMETANA To Infinity!/brainfuck]] for methods of translating from (1-bit) brainfuck. [[Category:2016]] [[Category:Languages]] [[Category:Unimplemented]] [[Category:Self-modifying]] [[Category:Turing complete]] [[Category:Turing tarpits]] [[Category:Output only]]'
Unified diff of changes made by edit (edit_diff)
'@@ -53,4 +53,5 @@ 12: Go to step 6. (...) +This is also an example of the Collatz conjecture. === Main execution === '
New page size (new_size)
4204
Old page size (old_size)
4153
Lines added in edit (added_lines)
[ 0 => 'This is also an example of the Collatz conjecture.' ]
Unix timestamp of change (timestamp)
1523302257