convert spoiler language and towards deobfuscation language

This commit is contained in:
Landon Curt Noll committed 2024-06-30 23:07:18 -07:00
1 parent 50a2a6293c
commit 4d6009b58f
98 files changed
+195 -358

No files matched your search

+4 -4
View File
@@ -450,15 +450,15 @@ and to satisfy IOCCC’s size rule.</p>
<li>Short coding.</li>
</ul>
<p>These led to the good obfuscation.</p>
<p>See <a href="#spoiler">Spoiler section</a> in detail, if you need.</p>
<p>See the <a href="#Deobfuscation">deobfuscation section</a> in detail, if you need.</p>
<h3 id="limitation">Limitation</h3>
<p>This program supports only “Combinator-calculus style notation” of Lazy K.
“Unlambda style” and “Iota and Jot” style are not supported.</p>
<p>Also, it requires a space between identifiers. In short, use <code>(S K)</code> instead of
<code>(SK)</code>, “`sk”, <code>**i*i*i*ii*i*i*ii</code>, or <code>11111100011100</code>.</p>
<p>Huge memory may be required to compile the program (about 300 MB on my machine).</p>
<p>In addition, there are some limitations (and workarounds) mentioned in <a href="#spoiler">Spoiler
section</a>.</p>
<p>In addition, there are some limitations (and workarounds) mentioned in
the <a href="#Deobfuscation">deobfuscation section</a>.</p>
<p>But I think it would only matter when you run the attached programs.</p>
<h3 id="portability">Portability</h3>
<p>I confirmed that the program successfully worked with the following compilers:</p>
@@ -486,7 +486,7 @@ It is a gcc extension, and also supported by clang. If your compiler does not
support it, you cannot use the program as a library. But you can compile and
run it as a standalone program, at least. In fact, tcc does not support the
macro, but does work.</p>
<h3 id="spoiler">Spoiler</h3>
<h3 id="deobfuscation">Deobfuscation</h3>
<p>The whole program is interpreted by macro expansion.
For example, <code>S (K I)</code> is translated to a normal C code, <code>(s)((k)(i))</code>, or
simply <code>s(k(i))</code>.</p>