Entry source is now prog.c for IOCCC years 2014 thru 2020, or is now dirname.c IOCCC years 1984 thru 2013. To achieve this state, we renamed the following: renamed: 2004/hibachi/src/hibachi.c -> 2004/hibachi/hibachi.c renamed: 2012/omoikane/nyaruko.alt.c -> 2012/omoikane/omoikane.alt.c renamed: 2012/omoikane/nyaruko.alt2.c -> 2012/omoikane/omoikane.alt2.c renamed: 2012/omoikane/nyaruko.c -> 2012/omoikane/omoikane.c renamed: 2012/omoikane/nyaruko.orig.c -> 2012/omoikane/omoikane.orig.c Modified `bin/subst.entry-index.sh` to add to entry `index.html` file, links to the `Makefile` and the _C code_ to the top navigation bar. Changed `bin/subst.entry-index.sh` VERSION from "1.2.2 2024-02-25" to "1.3 2024-03-02". Moved printing the Inventory link in the top navigation bar from `bin/subst.entry-navbar.awk` to `bin/subst.entry-index.sh`. Changed `bin/subst.entry-navbar.awk` VERSION from "1.0.1 2024-02-23" to "1.1 2024-03-02". Moved printing the Inventory link in the top navigation bar from `bin/subst.year-navbar.awk` to `bin/subst.year-index.sh`. Changed `bin/subst.year-index.sh` VERSION from "1.0 2024-02-11" to "1.1 2024-03-02". Changed `bin/subst.year-navbar.awk` VERSION from "1.0 2024-02-11" to "1.1 2024-03-02". Added location names (both default and common) to `author.html`. Changed `tmp/gen_author_json.sh` VERSION from "1.0 2023-06-06" to "1.1 2024-03-04". Added location names (both default and common) to `author.html`. Changed `bin/gen-authors.sh` VERSION from "1.2 2024-03-09" to "1.3 2024-03-04". The manifest and the resulting `.entry.json` files have been changed for `2004/hibachi` and `2012/omoikane`. The Makefiles for `2004/hibachi` and `2012/omoikane` copy the source file into the "previously used location". The `make clobber` rule removes the copied source. The `.gitignore` files have been updated accordingly. Improved how the concept of IOCCC terms _entry_, _author_ and _submission_ are used in markdown files. Links to markdown files (files ending in .md) within the repo were changed to link to HTML files (files ending in .html). Special cases where `README.md` became `index.html` were modified accordingly. Fixed URL for `bugs.html` in Makefile comments. Fixed name of `bin/sgi.sh` referenced in comments in `.gitignore` files. Links to locations within the repo are now relative. For example a link to `/contact.html` may become `../contact.html' or '../../contact.html` depending on the directory level of the markdown file. Nearly all links with absolute URLs under _https://www.ioccc.org_ or `https://ioccc-src.github.io/temp-test-ioccc_ have been changed to relative paths within the repo. Some exceptions to this (such as referring to a GitHub repo) were preserved. Fixed a number of inside `faq.md` and `bugs.md`. Added HTML name tags (in the form of an _entry_id_) for each entry referenced in `bugs.md`. Fixed links from outside of `bugs.html` into `bugs.html` accordingly. Where FAQ entries are referenced, a named tag is used so that if a FAQ is ever renumbered, links outside of `faq.html` will still work. Changed the _inventory_order_ of a compressed tarball from _300_ to _100000_. While this may have been done for the manifest, this changed had not yet been propagated into the `.entry.json` files. Links to web sites that were in the for <URL> are now [URL](URL). Performed `name www` to process all of the above. Improved format of `authors.html`. Full names are now bold. Location codes are now links back into `location.html` and location names (both default and common) are now italics. Added _author_handle_ each author. Changed `bin/gen-authors.sh` VERSION from "1.1 2024-02-25" to "1.2 2024-03-09". Improved format of `location.html` as location codes are now bold, author counts in a given location are now bold, and location names (both default and common) are now italics. Changed `bin/gen-location.sh` VERSION from "1.0.1 2024-02-23" to "1.1 2024-03-04". Added italic location name after location code in entry `index.html` files. Changed `bin/output-index-author.sh` VERSION from "1.4.1 2024-02-23" to "1.5 2024-03-04". Added _Location of authors_ to the sidebar as a link to `location.html`. TODO: While nearly all of the above mentioned changes are likely correct, they likely introduced a few errors that need correcting.
273 lines
12 KiB
HTML
273 lines
12 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||
<!-- START: two lines up starts content from: inc/top.default.html -->
|
||
<!-- -->
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
|
||
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
|
||
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
<!-- -->
|
||
<!-- END: this line ends content from: inc/top.default.html -->
|
||
<!-- -->
|
||
<!-- The original markdown content was formed by the tool: bin/readme2index.sh -->
|
||
<!-- The HTML was converted from markdown by the tool: bin/md2html.sh -->
|
||
<!-- -->
|
||
<!-- START: this line starts content from: inc/head.default.html -->
|
||
|
||
<head>
|
||
<link rel="stylesheet" href="../../ioccc.css">
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
||
<title>2005/timwi - Most discourteous interpreter</title>
|
||
<meta name="description" content="2005 IOCCC entry timwi - Most discourteous interpreter">
|
||
<meta name="keywords" content="IOCCC, 2005, IOCCC 2005, IOCCC entry, timwi, Most discourteous interpreter">
|
||
</head>
|
||
|
||
<!-- END: this line ends content from: inc/head.default.html -->
|
||
<!-- START: this line starts content from: inc/body.default.html -->
|
||
|
||
<body>
|
||
|
||
<!-- END: this line ends content from: inc/body.default.html -->
|
||
<!-- START: this line starts content from: inc/header.default.html -->
|
||
|
||
<div class="header">
|
||
<img src="../../png/ioccc.png" alt="IOCCC image by Matt Zucker" width=300 height=110>
|
||
<h1>The International Obfuscated C Code Contest</h1>
|
||
<h2>2005/timwi - Most discourteous interpreter</h2>
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/header.default.html -->
|
||
<!-- START: this line starts content from: inc/topnav.mid.html -->
|
||
|
||
<div class="topnav">
|
||
<a class="Left" href="../sykes/index.html">← sykes</a>
|
||
<a class="Left" href="../index.html">↑ 2005 ↑</a>
|
||
<a class="Left" href="../toledo/index.html">toledo →</a>
|
||
<a class="Right" href="https://github.com/ioccc-src/temp-test-ioccc/2005/timwi/timwi.c">C code</a>
|
||
<a class="Right" href="https://github.com/ioccc-src/temp-test-ioccc/2005/timwi/Makefile">Makefile</a>
|
||
<a class="Right" href="#inventory">Inventory</a>
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/topnav.mid.html -->
|
||
<!-- START: this line starts content from: inc/begin-row.default.html -->
|
||
|
||
<div class="row">
|
||
|
||
<!-- END: this line ends content from: inc/begin-row.default.html -->
|
||
<!-- START: this line starts content from: inc/begin-leftcolumn.default.html -->
|
||
|
||
<div class="leftcolumn">
|
||
|
||
<!-- END: this line ends content from: inc/begin-leftcolumn.default.html -->
|
||
<!-- START: this line starts content from: inc/sidenav.default.html -->
|
||
|
||
<div class="sidenav">
|
||
<a href="#content">Jump to contents</a>
|
||
</div>
|
||
<hr>
|
||
<div class="sidenav">
|
||
<a href="../../index.html">IOCCC Home</a>
|
||
<a href="../../years.html">Winning Entries</a>
|
||
<a href="../../authors.html">People who have won</a>
|
||
<a href="../../location.html">Location of authors</a>
|
||
</div>
|
||
<hr>
|
||
<div class="sidenav">
|
||
<a href="../../news.html">IOCCC News</a>
|
||
<a href="../../faq.html#submit">How to enter the IOCCC</a>
|
||
<a href="../../faq.html">FAQ</a>
|
||
</div>
|
||
<hr>
|
||
<div class="sidenav">
|
||
<a href="../../bugs.html">Bugs & (mis)features</a>
|
||
<a href="../../faq.html#fix_an_entry">Fixing IOCCC entries</a>
|
||
<a href="../../faq.html#fix_web_site">Fixing the web site</a>
|
||
<a href="../../faq.html#fix_author">Fixing author info</a>
|
||
<a href="../../thanks-for-help.html">Thanks for the help</a>
|
||
</div>
|
||
<hr>
|
||
<div class="sidenav">
|
||
<a href="../../judges.html">The IOCCC Judges</a>
|
||
<a href="../../contact.html">Contacting the IOCCC</a>
|
||
</div>
|
||
<hr>
|
||
<div class="sidenav">
|
||
<a href="#top">Jump to top</a>
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/sidenav.default.html -->
|
||
<!-- START: this line starts content from: inc/end-leftcolumn.default.html -->
|
||
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/end-leftcolumn.default.html -->
|
||
<!-- START: this line starts content from: inc/begin-rightcolumn.default.html -->
|
||
|
||
<div class="rightcolumn">
|
||
|
||
<!-- END: this line ends content from: inc/begin-rightcolumn.default.html -->
|
||
<!-- START: this line starts content from: inc/before-content.default.html -->
|
||
|
||
<a name="content"></a>
|
||
|
||
<!-- END: this line ends content from: inc/before-content.default.html -->
|
||
<!-- START: this line starts content for HTML phase 20 by: bin/output-index-author.sh via bin/md2html.sh -->
|
||
|
||
<!-- START: this line starts content generated by: bin/output-index-author.sh -->
|
||
|
||
<h2 id="author"><a name="author"></a>Author:</h2>
|
||
<ul>
|
||
<li>Name: <a href="../../authors.html#Arne_Heizmann">Arne Timwi
|
||
Heizmann</a><br> Location: <a href="../../location.html#DE">DE</a> -
|
||
<em>Federal Republic of Germany</em> (<em>Germany</em>) <br><br></li>
|
||
</ul>
|
||
|
||
<!-- END: next line ends content generated by: bin/output-index-author.sh -->
|
||
|
||
<!-- END: this line ends content for HTML phase 20 by: bin/output-index-author.sh via bin/md2html.sh -->
|
||
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
|
||
|
||
<h2 id="to-build">To build:</h2>
|
||
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span></span></code></pre></div>
|
||
<h2 id="to-use">To use:</h2>
|
||
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./timwi</span> <span class="op"><</span> bf_program</span></code></pre></div>
|
||
<h2 id="try">Try:</h2>
|
||
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span></span></code></pre></div>
|
||
<h2 id="judges-remarks">Judges’ remarks:</h2>
|
||
<p>Unlike most <a href="https://en.wikipedia.org/wiki/Brainfuck">BF</a>
|
||
interpreters that we have been receiving for the last few years, this
|
||
one, in our opinion, is the most obfuscated albeit the most discourteous
|
||
to the language it interprets. A simple 3-character fix will make it
|
||
slightly less so.</p>
|
||
<p>Quite a few BF programs found on the Net expect byte-based memory,
|
||
quite a few exceed the capacity of this interpreter, but there are many
|
||
that work. Some small <a
|
||
href="https://en.wikipedia.org/wiki/Quine_(computing)">quines</a> work,
|
||
some don’t.</p>
|
||
<p>Why?</p>
|
||
<h2 id="authors-remarks">Author’s remarks:</h2>
|
||
<p>This is an interpreter for the programming language <a
|
||
href="https://en.wikipedia.org/wiki/Brainfuck">BrainFuck</a> (BF).</p>
|
||
<p>Input must be provided in the following format: First a sequence of
|
||
integers separated by whitespace (this will be the input to the BF
|
||
program), then a <code>:</code> (colon), then the BF program itself.</p>
|
||
<p>You must not pass any command-line arguments.</p>
|
||
<h3 id="features">Features</h3>
|
||
<ul>
|
||
<li><p>Supports the complete set of 8 BF instructions
|
||
(<code>+-<>[].,</code>).</p></li>
|
||
<li><p>Supports the use of alternative characters for some of those
|
||
instructions. Use this to obfuscate your BF programs!</p>
|
||
<p>For a challenge, figure out what this obfuscated BF program does:</p>
|
||
<pre><code> J4mzt?Vazexx-20d~&&~AxdUV!x(~Jz&V)x*(P=J)JUN(dizz)xx_!xx'0&{Vz;}&Jj</code></pre>
|
||
<p>It takes two integers as input and outputs one integer.</p></li>
|
||
<li><p>Ignores all whitespace (newlines, spaces and tabs) in the input
|
||
program.</p></li>
|
||
</ul>
|
||
<h3 id="limitations">Limitations</h3>
|
||
<p>Since the program, naturally, uses <code>int</code>s, the
|
||
calculations must not exceed the range of an <code>int</code>. (But then
|
||
again, you can use the integer overflow to further obfuscate your BF
|
||
programs in creative ways!)</p>
|
||
<p>You are limited to 3125 input integers and 3125 instructions. If you
|
||
exceed one of these limits, the behaviour is undefined.</p>
|
||
<h3 id="obfuscations">Obfuscations</h3>
|
||
<p>Some of the superficial obfuscations are pretty obvious: I’m using
|
||
<code>#define</code>s to make everything look nice and lineal, and the
|
||
program is merely a recursive <code>main()</code> function with only a
|
||
single <code>return</code> statement which uses nested ternary operators
|
||
to make even the pre-processed code unreadable.</p>
|
||
<p>However, the more subtle obfuscations relate to the way the program
|
||
works. After applying the pre-processing, you will see a lot of
|
||
<code>1+1+1</code>…etc., and even if you replace these with their
|
||
result, those numbers will still not represent (or even relate to) the
|
||
ASCII codes of the BF instructions.</p>
|
||
<p>The program will first read in all the input integers, but it will
|
||
begin execution immediately and only read program instructions as they
|
||
are needed. Yet there is no global variable storing how far it has read!
|
||
Perhaps the hardest thing to figure out is how it finds the matching
|
||
square brackets.</p>
|
||
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0
|
||
License:</h2>
|
||
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights
|
||
Reserved. You are free to share and adapt this file under the terms of
|
||
this license:</p>
|
||
<pre><code>Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</code></pre>
|
||
<p>For more information, see:
|
||
https://creativecommons.org/licenses/by-sa/4.0/</p>
|
||
|
||
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
|
||
<!-- START: this line starts content for HTML phase 22 by: bin/output-index-inventory.sh via bin/md2html.sh -->
|
||
|
||
<!-- START: this line starts content generated by: bin/output-index-inventory.sh -->
|
||
|
||
<h1 id="inventory-for-2005timwi"><a name="inventory"></a>Inventory for
|
||
2005/timwi</h1>
|
||
<p><a href="#top">Jump to top</a></p>
|
||
<h2 id="primary-files">Primary files</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/timwi/timwi.c">timwi.c</a>
|
||
- entry source</li>
|
||
<li><a
|
||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/timwi/Makefile">Makefile</a>
|
||
- entry Makefile</li>
|
||
<li><a
|
||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/timwi/timwi.orig.c">timwi.orig.c</a>
|
||
- original source</li>
|
||
<li><a
|
||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/timwi/try.sh">try.sh</a>
|
||
- how to run</li>
|
||
<li><a href="2005_timwi.tar.bz2">2005_timwi.tar.bz2</a> - download entry
|
||
source</li>
|
||
</ul>
|
||
<h2 id="secondary-files">Secondary files</h2>
|
||
<ul>
|
||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||
<li><a
|
||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/timwi/.entry.json">.entry.json</a>
|
||
- description of entry in JSON</li>
|
||
<li><a
|
||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/timwi/.gitignore">.gitignore</a>
|
||
- list of files that should not be committed under git</li>
|
||
<li><a href=".path">.path</a> - directory path from top directory</li>
|
||
<li><a
|
||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/timwi/README.md">README.md</a>
|
||
- markdown source for index.html</li>
|
||
</ul>
|
||
|
||
<!-- END: next line ends content generated by: bin/output-index-inventory.sh -->
|
||
|
||
<!-- END: this line ends content for HTML phase 22 by: bin/output-index-inventory.sh via bin/md2html.sh -->
|
||
<!-- START: this line starts content from: inc/after-content.default.html -->
|
||
|
||
<!-- END: this line ends content from: inc/after-content.default.html -->
|
||
<!-- START: this line starts content from: inc/end-rightcolumn.default.html -->
|
||
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/end-rightcolumn.default.html -->
|
||
<!-- START: this line starts content from: inc/end-row.default.html -->
|
||
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/end-row.default.html -->
|
||
<!-- START: this line starts content from: inc/footer.default.html -->
|
||
|
||
<div class="footer">
|
||
<hr>
|
||
<h2>Coda</h2>
|
||
<p><a href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fioccc-src.github.io%2Ftemp-test-ioccc%2F2005%2Ftimwi%2Findex.html">Nu HTML check this web page</a></p>
|
||
<p><a href="#top">Jump to top</a> <a href="#content">Jump to Content</a> <a href="#inventory">Jump to Inventory</a></p>
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/footer.default.html -->
|
||
<!-- START: this line starts content from: inc/bottom.default.html -->
|
||
|
||
</body>
|
||
</html>
|
||
|
||
<!-- END: this line ends content from: inc/bottom.default.html -->
|