Examine individual changes

Abuse Filter navigation (Home | Recent filter changes | Examine past edits | Abuse log)
Jump to navigation Jump to search

This page allows you to examine the variables generated by the Abuse Filter for an individual change.

Variables generated for this change

VariableValue
Edit count of the user (user_editcount)
1000
Name of the user account (user_name)
'Keymaker'
Age of the user account (user_age)
534111843
Page ID (page_id)
0
Page namespace (page_namespace)
0
Page title (without namespace) (page_title)
'Afterstar'
Full page title (page_prefixedtitle)
'Afterstar'
Action (action)
'edit'
Edit summary/reason (summary)
'1st of my 2 languages this year. A minimal division/multiplication language.'
Old content model (old_content_model)
''
New content model (new_content_model)
'wikitext'
Old page wikitext, before the edit (old_wikitext)
''
New page wikitext, after the edit (new_wikitext)
''''Afterstar''' is a minimal esolang based on deterministic division and program-defined multiplication of a single unbounded memory value, designed by [[User:Keymaker|Keymaker]] in early [[:Category:2024|2024]] but published near the end of the year. ==Program and execution== The language operates on an array of integers, which is given as the program. There must be at least one integer and there is no limit to their amount or their size (other than that they be non-negative). Each integer has an index number that grows by one for each successive integer, the first being at index 1. The index pointer points to one of the integers, initially to the first. The memory is an unbounded non-negative integer, initially the smallest [[prime]], 2. If the memory ever becomes 0, the program halts. One step of execution consists of first checking if the memory is 0, and halting if so. The instruction pointer attempts to divide the memory value with its current value (not the value it is pointing to in the array, but its own value), and if the memory is dividable (and remainder is zero), then it is divided by the index pointer's value. Right after, if dividing succeeded, the memory is multiplied by the integer in the array that the index pointer is pointing to. Then (whether dividing and multiplying happened or not), the index pointer is increased by one, unless it is already pointing to the last integer, in which case it is set to 1 (the first integer in the array). ==Program formats== A program encodes the list of integers in a simple unary format. The character <code>(</code> is repeated n times, followed by the character <code>*</code>. A sample program: (* (((((* (((* ((((* * Because the size of the programs will easily become uncontainable on any hardware, there is an alternative format that allows for describing the array index (left) and the actual integer to store there (right). The integers at indexes that are not specified are set to match their index numbers. This would be the above program in the practical format: 2:*:5 5:*:0 ==A simple interpreter== Here is a simple no-IO interpreter in Python to showcase the simplicity of the language. A shorter one could no doubt be made, and in some golfing language it may be possible to squeeze this interpreter or something like it into a few characters. a = [1,5,3,4,0] # array of integers m = 2 # memory p = 0 # index pointer while m > 0: if m % (p + 1) == 0: m = (m // (p + 1)) * a[p] p = (p + 1) % len(a) ==Computational class== The language is [[Turing-complete]], as is shown via Minsky Machine translation. See external resources. ==External resources== * [http://yiap.nfshost.com/esoteric/afterstar/afterstar.html Afterstar information] (detailed explanations of the language and the MM translation, translator program, interpreter in Python) [[Category:2024]] [[Category:Low-level]] [[Category:Languages]] [[Category:Turing complete]] [[Category:Turing tarpits]] [[Category:Implemented]] [[Category:No IO]]'
Unified diff of changes made by edit (edit_diff)
'@@ -1,0 +1,42 @@ +'''Afterstar''' is a minimal esolang based on deterministic division and program-defined multiplication of a single unbounded memory value, designed by [[User:Keymaker|Keymaker]] in early [[:Category:2024|2024]] but published near the end of the year. + +==Program and execution== +The language operates on an array of integers, which is given as the program. There must be at least one integer and there is no limit to their amount or their size (other than that they be non-negative). Each integer has an index number that grows by one for each successive integer, the first being at index 1. The index pointer points to one of the integers, initially to the first. +The memory is an unbounded non-negative integer, initially the smallest [[prime]], 2. If the memory ever becomes 0, the program halts. + +One step of execution consists of first checking if the memory is 0, and halting if so. The instruction pointer attempts to divide the memory value with its current value (not the value it is pointing to in the array, but its own value), and if the memory is dividable (and remainder is zero), then it is divided by the index pointer's value. Right after, if dividing succeeded, the memory is multiplied by the integer in the array that the index pointer is pointing to. Then (whether dividing and multiplying happened or not), the index pointer is increased by one, unless it is already pointing to the last integer, in which case it is set to 1 (the first integer in the array). + +==Program formats== +A program encodes the list of integers in a simple unary format. The character <code>(</code> is repeated n times, followed by the character <code>*</code>. A sample program: + (* + (((((* + (((* + ((((* + * +Because the size of the programs will easily become uncontainable on any hardware, there is an alternative format that allows for describing the array index (left) and the actual integer to store there (right). The integers at indexes that are not specified are set to match their index numbers. This would be the above program in the practical format: + 2:*:5 + 5:*:0 + +==A simple interpreter== +Here is a simple no-IO interpreter in Python to showcase the simplicity of the language. A shorter one could no doubt be made, and in some golfing language it may be possible to squeeze this interpreter or something like it into a few characters. + a = [1,5,3,4,0] # array of integers + m = 2 # memory + p = 0 # index pointer + while m > 0: + if m % (p + 1) == 0: + m = (m // (p + 1)) * a[p] + p = (p + 1) % len(a) + +==Computational class== +The language is [[Turing-complete]], as is shown via Minsky Machine translation. See external resources. + +==External resources== +* [http://yiap.nfshost.com/esoteric/afterstar/afterstar.html Afterstar information] (detailed explanations of the language and the MM translation, translator program, interpreter in Python) + +[[Category:2024]] +[[Category:Low-level]] +[[Category:Languages]] +[[Category:Turing complete]] +[[Category:Turing tarpits]] +[[Category:Implemented]] +[[Category:No IO]] '
New page size (new_size)
3031
Old page size (old_size)
0
Lines added in edit (added_lines)
[ 0 => ''''Afterstar''' is a minimal esolang based on deterministic division and program-defined multiplication of a single unbounded memory value, designed by [[User:Keymaker|Keymaker]] in early [[:Category:2024|2024]] but published near the end of the year.', 1 => '', 2 => '==Program and execution==', 3 => 'The language operates on an array of integers, which is given as the program. There must be at least one integer and there is no limit to their amount or their size (other than that they be non-negative). Each integer has an index number that grows by one for each successive integer, the first being at index 1. The index pointer points to one of the integers, initially to the first.', 4 => 'The memory is an unbounded non-negative integer, initially the smallest [[prime]], 2. If the memory ever becomes 0, the program halts.', 5 => '', 6 => 'One step of execution consists of first checking if the memory is 0, and halting if so. The instruction pointer attempts to divide the memory value with its current value (not the value it is pointing to in the array, but its own value), and if the memory is dividable (and remainder is zero), then it is divided by the index pointer's value. Right after, if dividing succeeded, the memory is multiplied by the integer in the array that the index pointer is pointing to. Then (whether dividing and multiplying happened or not), the index pointer is increased by one, unless it is already pointing to the last integer, in which case it is set to 1 (the first integer in the array).', 7 => '', 8 => '==Program formats==', 9 => 'A program encodes the list of integers in a simple unary format. The character <code>(</code> is repeated n times, followed by the character <code>*</code>. A sample program:', 10 => ' (*', 11 => ' (((((*', 12 => ' (((*', 13 => ' ((((*', 14 => ' *', 15 => 'Because the size of the programs will easily become uncontainable on any hardware, there is an alternative format that allows for describing the array index (left) and the actual integer to store there (right). The integers at indexes that are not specified are set to match their index numbers. This would be the above program in the practical format:', 16 => ' 2:*:5', 17 => ' 5:*:0', 18 => '', 19 => '==A simple interpreter==', 20 => 'Here is a simple no-IO interpreter in Python to showcase the simplicity of the language. A shorter one could no doubt be made, and in some golfing language it may be possible to squeeze this interpreter or something like it into a few characters.', 21 => ' a = [1,5,3,4,0] # array of integers', 22 => ' m = 2 # memory', 23 => ' p = 0 # index pointer', 24 => ' while m > 0:', 25 => ' if m % (p + 1) == 0:', 26 => ' m = (m // (p + 1)) * a[p]', 27 => ' p = (p + 1) % len(a)', 28 => '', 29 => '==Computational class==', 30 => 'The language is [[Turing-complete]], as is shown via Minsky Machine translation. See external resources.', 31 => '', 32 => '==External resources==', 33 => '* [http://yiap.nfshost.com/esoteric/afterstar/afterstar.html Afterstar information] (detailed explanations of the language and the MM translation, translator program, interpreter in Python)', 34 => '', 35 => '[[Category:2024]]', 36 => '[[Category:Low-level]]', 37 => '[[Category:Languages]]', 38 => '[[Category:Turing complete]]', 39 => '[[Category:Turing tarpits]]', 40 => '[[Category:Implemented]]', 41 => '[[Category:No IO]]' ]
Unix timestamp of change (timestamp)
'1734467043'