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) | 14 |
Name of the user account (user_name) | 'Iacgm' |
Age of the user account (user_age) | 10615412 |
Page ID (page_id) | 23672 |
Page namespace (page_namespace) | 0 |
Page title (without namespace) (page_title) | 'C2BF (2025)' |
Full page title (page_prefixedtitle) | 'C2BF (2025)' |
Action (action) | 'edit' |
Edit summary/reason (summary) | '' |
Old content model (old_content_model) | 'wikitext' |
New content model (new_content_model) | 'wikitext' |
Old page wikitext, before the edit (old_wikitext) | 'C2BF (not to be confused with Gregor Richard's [[C2BF]]) is a [[compiler]] from C into [[Brainfuck]] written by Ian Graham Martinez. The source code is available [https://github.com/iacgm/c2bf on Github], and a write-up explaining the implementation and its limitations is available [https://iacgm.pages.dev/posts/c2bf here].
=Implementation=
C2BF compiles C code to a stack-based intermediate language, so that each instruction can then be translated into a [[Brainfuck]] snippet. For example,
putchar('0' + 5);
... is compiled into the sequence:
Push(48)
Push(5)
Add
PutChar
Then, each of these is translated into Brainfuck (the convention is that each instruction begins execution pointing at the top of the stack, which grows rightward, and that all cells to the right of the tape head are zero):
Push(48) --> ++++++++++++++++++++++++++++++++++++++++++++++++
Push(5) --> +++++
Add --> [-<+>]<
PutChar --> .[-]<
For control flow, the IR is split into basic blocks, and the entire program is placed in a [] loop. See [https://iacgm.pages.dev/posts/c2bf] for more details about the implementation and its limitations.
[[Category:Compilers]]
[[Category:Brainfuck]]' |
New page wikitext, after the edit (new_wikitext) | '{{infobox proglang
|name=c2bf
|paradigms=imperative
|author=[[User:Iacgm|Ian Graham Martinez]]
|year=[[:Category:2025|2025]]
|class=[[:Category:Turing complete|Turing Complete]]
|refimpl=[https://github.com/iacgm/c2bf c2bf]
|files=N/A
}}
'''C2BF''' (not to be confused with Gregor Richard's [[C2BF]]) is a [[compiler]] from C into [[Brainfuck]]. The source code is available [https://github.com/iacgm/c2bf on Github], and a write-up explaining the implementation and its limitations is available [https://iacgm.pages.dev/posts/c2bf here].
C2BF supports, among other features:
* if-statements, while-loops, for-loops
* arrays
* functions
* pointers
* function pointers
=Implementation=
C2BF compiles C code to a stack-based intermediate language, so that each instruction can then be translated into a [[Brainfuck]] snippet. For example,
putchar('0' + 5);
... is compiled into the sequence:
Push(48)
Push(5)
Add
PutChar
Then, each of these is translated into Brainfuck (the convention is that each instruction begins execution pointing at the top of the stack, which grows rightward, and that all cells to the right of the tape head are zero):
Push(48) --> ++++++++++++++++++++++++++++++++++++++++++++++++
Push(5) --> +++++
Add --> [-<+>]<
PutChar --> .[-]<
For control flow, the IR is split into basic blocks, and the entire program is placed in a [] loop. See [https://iacgm.pages.dev/posts/c2bf] for more details about the implementation and its limitations.
[[Category:Compilers]]
[[Category:Brainfuck]]' |
Unified diff of changes made by edit (edit_diff) | '@@ -1,3 +1,20 @@
-C2BF (not to be confused with Gregor Richard's [[C2BF]]) is a [[compiler]] from C into [[Brainfuck]] written by Ian Graham Martinez. The source code is available [https://github.com/iacgm/c2bf on Github], and a write-up explaining the implementation and its limitations is available [https://iacgm.pages.dev/posts/c2bf here].
+{{infobox proglang
+|name=c2bf
+|paradigms=imperative
+|author=[[User:Iacgm|Ian Graham Martinez]]
+|year=[[:Category:2025|2025]]
+|class=[[:Category:Turing complete|Turing Complete]]
+|refimpl=[https://github.com/iacgm/c2bf c2bf]
+|files=N/A
+}}
+
+'''C2BF''' (not to be confused with Gregor Richard's [[C2BF]]) is a [[compiler]] from C into [[Brainfuck]]. The source code is available [https://github.com/iacgm/c2bf on Github], and a write-up explaining the implementation and its limitations is available [https://iacgm.pages.dev/posts/c2bf here].
+
+C2BF supports, among other features:
+* if-statements, while-loops, for-loops
+* arrays
+* functions
+* pointers
+* function pointers
=Implementation=
' |
New page size (new_size) | 1534 |
Old page size (old_size) | 1190 |
Lines added in edit (added_lines) | [
0 => '{{infobox proglang',
1 => '|name=c2bf',
2 => '|paradigms=imperative',
3 => '|author=[[User:Iacgm|Ian Graham Martinez]]',
4 => '|year=[[:Category:2025|2025]]',
5 => '|class=[[:Category:Turing complete|Turing Complete]]',
6 => '|refimpl=[https://github.com/iacgm/c2bf c2bf]',
7 => '|files=N/A',
8 => '}}',
9 => '',
10 => ''''C2BF''' (not to be confused with Gregor Richard's [[C2BF]]) is a [[compiler]] from C into [[Brainfuck]]. The source code is available [https://github.com/iacgm/c2bf on Github], and a write-up explaining the implementation and its limitations is available [https://iacgm.pages.dev/posts/c2bf here].',
11 => '',
12 => 'C2BF supports, among other features:',
13 => '* if-statements, while-loops, for-loops',
14 => '* arrays',
15 => '* functions',
16 => '* pointers',
17 => '* function pointers'
] |
Unix timestamp of change (timestamp) | '1770333251' |