3 ms·
I'm not sure this kind of competition is still meaningful, given that LLM can easily convert a program clearly written in any programming language to the most o
by nsoonhui 4mo ago
I'm not sure this kind of competition is still meaningful, given that LLM can easily convert a program clearly written in any programming language to the most obfuscated C code, and can still easily verify it's correctness in an automated way.
Do I miss anything?
- jjav 4mo ago> Do I miss anything? That human art is worth the humanity in the art. As soon as anything is automated, it's worth nothing.
- zabzonk 4mo agoChess?
- GTP 4mo agoI think what they mean is that this sort of competition makes sense because it's about humans competing against each other, so that, even if we could have LLMs do it, the human version is still what captures our interest. In a similar way, we don't look at chess tournaments with computers playing against each others, but we look at chess grandmaster challenging each other. Even if it has been decades now that computers can beat grandmaster.
- visha1v 4mo agoyes llm can do it but i think competitions have more to do with developing scientific temperament, competitive mindset and complex problem solving skills. that's why i think they are still relevant and will be relevant for a long time.
- hulitu 4mo ago> Do I miss anything? School ? /s
- s-macke 4mo agoYes, you haven’t tried it. LLMs are actually awesome at deobfuscation, but terrible at obfuscation. They just can’t do it yet. They also lack the creativity needed for those entries. Obfuscation is only one part of it. Coming up with the idea is another. Many entries also have special qualities that make them true works of art.
- fooker 4mo ago> They just can’t do it yet. Have you tried it or are you guessing this?
- s-macke 4mo agoYes, I’ve tried it. For example, this was my winning entry from a year ago [0]. The LLM only performs trivial obfuscation, not advanced transformations. For example: if (x == 1 || x == 2) { ... can be transformed into: if (!(2+x*x-3*x)) { ... An LLM will do this if you explicitly ask it to, but not on its own. [0] https://github.com/ioccc-src/winner/blob/master/2024/macke/prog.c https://github.com/ioccc-src/winner/blob/master/2024/macke/p...
- tromp 4mo agoOne of the main instruments of obfuscation (and the way to get more out of the size constraints) is making the code as short as possible, so in that example you'd prefer if (!(x/2-1)) { ... EDIT: Oops, confused the original with x==2 || x==3. Instead, we can use !(x-1>>1), which precedence rules parse as !((x-1)>>1).
- alienbaby 4mo agoIt's pretty easy to see what that does though, even if it is shorter. Wouldn't the other approach be more obfuscated?
- extrano84 4mo agoI checked this in an online C-compiler and it is not equivalent to x==1 | x==2. this statement is equivalent to x==2 | x==3. For example, x=3, 3/2 = 1 then 1-1 = 0 so that !(0) is 1 or true. Also for x=1, 1/2 = 0 then 0-1 = -1 and !(-1) = 0 or false. I agree with your point in general though about size constraints.
- tjpnz 4mo agoWhere's the fun in that?
- layer8 4mo agoYou are missing that the IOCCC isn’t just about obfuscation, that the judges have taste.
- deleted 4mo ago[deleted]
- GuB-42 4mo agoThe competition never was about actual obfuscation. If you really just want obfuscation, you are actually writing a DRM system, like Denuvo. If anything, it is closer to code golf, the main obfuscation is often a result of all the trickery needed to do something impressive in a small amount of code. Of course, minification techniques are used, like renaming variables to single character and messing with the formatting, but that's the boring part, no one is going to win because of that. Another aspect is being clever and unique, and abusing the rules is often rewarded... once. LLMs are not good at that. The judges are human, the code needs to a appeal to a human, not just be hard to understand.