parent
51c4db334f
commit
11591efdcd
331 changed files with 10296 additions and 0 deletions
30
ioccc.md
Normal file
30
ioccc.md
Normal file
|
@ -0,0 +1,30 @@
|
|||
# International Obfuscated C Code Contest
|
||||
|
||||
The International Obfuscated C Code Contest (IOCCC for short) is an annual online contest in making the most creatively [obfuscated](obfuscation.md) programs in [C](c.md). It's kind of a "just for [fun](fun.md)" thing but similarly to [esoteric languages](esolang.md) there's an element of art and clever hacking that carries a great value. While the [productivity freaks](productivity_cult.md) will argue this is just a waste of time, the true programmer appreciates the depth of knowledge and creative thinking needed to develop a beautifully obfuscated program. The contest runs since 1984 and was started by Landon Curt Noll and Larry Bassel.
|
||||
|
||||
Unfortunately some [shit](shit.md) is flying around IOCCC too, for example confusing licensing -- having a [CC-BY-SA](cc_by_sa.md) license in website footer and explicitly prohibiting commercial use in the text, WTF? Also the team started to use [Microshit](microsoft.md)'s [GitHub](github.md). They also allow latest [capitalist](capitalist_software.md) C standards, but hey, this is a contest focused on ugly C, so perhaps it makes sense.
|
||||
|
||||
Hacking the rules of the contest is also encouraged and there is an extra award for "worst abuse of the rules".
|
||||
|
||||
Some common ideas employed in the programs include:
|
||||
|
||||
- formatting source code as [ASCII art](ascii_art.md)
|
||||
- misleading identifiers and comments
|
||||
- extreme [macro](macro.md) and [preprocessor](preprocessor.md) abuse
|
||||
- abuse of compiler flags
|
||||
- different behavior under different C standards
|
||||
- doing simple things the hard way, e.g. by avoiding loops
|
||||
- including weird files like `/dev/tty` or recursively including itself
|
||||
- [code golfing](code_golf.md)
|
||||
- weird stuff like the main function [recursion](recursion.md) or even using it as a signal handler :)
|
||||
|
||||
And let us also mention a few winning entries:
|
||||
|
||||
- program whose source code is taken from its file name (using `__FILE__`)
|
||||
- [ray tracer](ray_tracing.md) in < 30 LOC formatted as ASCII art
|
||||
- operating system with multi-tasking, GUI and filesystem support
|
||||
- neural [machine learning](machine_learning.md) on text in < 4KB
|
||||
- program printing "hello world" with error messages during compilation
|
||||
- [X11](x11.md) Minecraft-like game
|
||||
- [web browser](web_browser.md)
|
||||
- self-replicating programs
|
Loading…
Add table
Add a link
Reference in a new issue