Add link and minor format update to 2012/zeitak
This commit is contained in:
1 parent
242726870a
commit
1a785f5cf0
1 file changed
+19
-19
+19
-19
@@ -78,26 +78,26 @@ around it's position.
|
|||||||
|
|
||||||
printf(")");
|
printf(")");
|
||||||
|
|
||||||
* Doesn't get confused by the [1984/anonymous](/1984/anonymous/anonymous.c) entry!
|
* Doesn't get confused by the [1984/anonymous](/1984/anonymous/anonymous.c) entry!
|
||||||
|
|
||||||
#### Mis-Features
|
#### Mis-Features
|
||||||
|
|
||||||
* Escapes (e.g. `\"`) are ignored, so the following line will produce
|
* Escapes (e.g. `\"`) are ignored, so the following line will produce
|
||||||
an error:
|
an error:
|
||||||
|
|
||||||
printf("\"");
|
printf("\"");
|
||||||
|
|
||||||
#### Obfuscation
|
#### Obfuscation
|
||||||
|
|
||||||
IOCCC winners already contain entries without digits, control-flow
|
[IOCCC winners](/years.html) already contain entries without digits, control-flow
|
||||||
keywords and certain operators in their source. This entry has an
|
keywords and certain operators in their source. This entry has an
|
||||||
even more limited source, that is:
|
even more limited source, that is:
|
||||||
|
|
||||||
* Without any digits.
|
* Without any digits.
|
||||||
* Without any character constants.
|
* Without any character constants.
|
||||||
* Without using functions from headers other than stdio.
|
* Without using functions from headers other than stdio.
|
||||||
* Without any control-flow keywords (not even the `?:` operator).
|
* Without any control-flow keywords (not even the `?:` operator).
|
||||||
* Without any arithmetic or logic operators!
|
* Without any arithmetic or logic operators!
|
||||||
|
|
||||||
So, what's left? Parenthesis, and lots of them, as looking at the source will
|
So, what's left? Parenthesis, and lots of them, as looking at the source will
|
||||||
reveal immediately. The main obfuscation is building the whole algorithm using
|
reveal immediately. The main obfuscation is building the whole algorithm using
|
||||||
@@ -105,20 +105,20 @@ only function calls, typecasts, array lookups and pointer operators.
|
|||||||
|
|
||||||
##### Additional obfuscations include:
|
##### Additional obfuscations include:
|
||||||
|
|
||||||
* Extensive reuse of identifiers: Macros share names with variables, inner
|
* Extensive reuse of identifiers: Macros share names with variables, inner
|
||||||
curly braces scopes contain variables with names identical to those in the
|
curly braces scopes contain variables with names identical to those in the
|
||||||
outer scopes and some of the variables have different uses in different
|
outer scopes and some of the variables have different uses in different
|
||||||
parts of the program. Even the large array has more than one use.
|
parts of the program. Even the large array has more than one use.
|
||||||
* A complicated data structure with "unused" fields.
|
* A complicated data structure with "unused" fields.
|
||||||
* Mostly one-letter identifiers.
|
* Mostly one-letter identifiers.
|
||||||
* Complex recursion: A function might call itself once, twice, or not at all.
|
* Complex recursion: A function might call itself once, twice, or not at all.
|
||||||
|
|
||||||
#### Compilation/Portability/Running Notes
|
#### Compilation/Portability/Running Notes
|
||||||
|
|
||||||
* The program requires `char` to be one byte and pointers to be
|
* The program requires `char` to be one byte and pointers to be
|
||||||
at least two bytes long.
|
at least two bytes long.
|
||||||
|
|
||||||
* The program was tested on the following platforms:
|
* The program was tested on the following platforms:
|
||||||
- Ubuntu 9.04 32-bit with GCC
|
- Ubuntu 9.04 32-bit with GCC
|
||||||
- Windows 7 32-bit with GCC
|
- Windows 7 32-bit with GCC
|
||||||
- Windows 7 32-bit with OpenWatcom
|
- Windows 7 32-bit with OpenWatcom
|
||||||
|
|||||||
Reference in new issue
Block a user