第22回・国際難解Cコードコンテストの入賞コードが公開される 14
ストーリー by hylom
ソースを変な風に成形すれば良いというものではない 部門より
ソースを変な風に成形すれば良いというものではない 部門より
insiderman 曰く、
国際難解Cコードコンテスト(International Obfuscated C Code Contest、IOCCC)第22回で入賞したソースコードが同サイトで公開された。
IOCCCは、「故意に読みづらいC言語のコードを書き、その汚さなどを競うというハッカーの奇祭」(Wikipediaより)。
複数の部門があり、それぞれ入賞コードが挙げられているが、日本人では遠藤侑介(Yusuke Endoh)氏が「Most tweetable 1-liner」wおよび「Most lazy SKIer」、「Most recyclable」、「Most solid」の4部門で入賞している。それぞれのコードは遠藤氏のブログで解説されている(「Most lazy SKIer」と「Most recyclable」のコードの解説、「Most tweetable 1-liner」と「Most solid」のコードの解説)。
助かった (スコア:1)
Re:助かった (スコア:1)
国際邪悪な
というキーワードを覚えておけばGoogle検索時にサジェスチョンが登場する
邪悪なC
これでもおっけー
一方
CLANG 邪悪
これでは箸にも棒にもひっかからない
どちらの道を進むも双方に背を背けるのも自由
Re:助かった (スコア:1)
邪悪ですか、好きなんですこの単語。
至高があって内に秘めた邪悪さがある。
なぜIOCCCに魅力があるか分かった気がする。
サンクス
4043バイトのIBM-PCエミュレータ (スコア:1)
http://ioccc.org/2013/cable3/hint.html [ioccc.org]
難読化されてなくても理解不能っぽい。
勝てるわー余裕で勝てるわー(地獄のミサワ風) (スコア:1)
圧倒的に優勝できる難解Cコードを思いついた
しかし、それを記述するにはNDAの制約がきつすぎる
#納品したのかよ!
##フィクションです(多分)
ツイート可能なシンセサイザー (スコア:0)
アーティストの使用者も多い音響合成用プログラミング言語SuperColliderを使って
ツイート可能な楽曲をつくるsc140 [supercollider.jp]というのは以前話題になりましたが、
ただのC言語でMML風の入力ができるシンセサイザー自体をツイートできるとは思わなかった。
すごいのはすごいんだけど (スコア:0)
見た目の問題で難解ってのはやめてほしいな。
極端な話、普通にとりあえず組んでから後は変な改行とか変なスペースとか入れる作業になっちゃうし。
リンク先のコードをそういうのなしで、素でいきなりああ書いたのなら仰天だけど。
勿論見た目だけじゃなくて内部的にもかなりすごい事をしてるのだろう。
でもぱっと見は普通なのに、よく読んでみたらなんだこれ、みたいなのがいいなー
Re:すごいのはすごいんだけど (スコア:2, 興味深い)
この大会に付いていける方々には息をするより簡単な作業なので、そこはどうでも良いんですよ。
せいぜい、応募書類を入れる封筒は新品を使って丁寧に宛名を書く、ぐらいの礼儀作法のレベルで、
この大会では見た目を飾り付けるのが定着しちゃっているだけですよ。
もちろん、自動整形でインデントを戻しても、変数名や関数名がaとかbとかで読みにくいわけですが、
それもロジックを読み進めつつ適当に読みやすく置換していけば良いだけで。
そもそもロジックの難解さも求めてあるので、そういう、「読みやすくなる変数・関数名」がに置き換えていけるのかも怪しい気はしますけど。
さらに、「コードを短くする怪しいテク」まで排除して、ロジックまで追いやすくして、
ロジック自体のすごさを競おう、という考えもあるかと思いますが、まあ、さすがにそこまで来たら別の大会でしょう。
この大会でそういう楽しみ方をしたいのであれば、ソースコードは諦めて著者の解説文を楽しむとか。
Re:すごいのはすごいんだけど (スコア:1)
半年前の自分のコードでも読まれたらよろしいかと。
Re: (スコア:0)
もちろん普通に組んでから整形してるんですよ。
Re:すごいのはすごいんだけど (スコア:1)
オフトピになるけど、ギョーム・アポリネールのアルコール詩集の場合はどっちだったんだろう?
Re: (スコア:0)
お前さんがコードを見ずに妄想で語っていることだけは分かった
Re: (スコア:0)
実際にコードを読めば(読もうと多少でも試みれば)
ぱっと見は普通なのに、よく読んでみたらなんだこれ
どころか
「ぱっと見てもなんだこれ、よく読んでみてもなんだこれ」
になりますね。
さらに言えば、最低限の整形を試みようにも困るレベル。
Re: (スコア:0)
文法に従って機械的に解釈しているだけとは言え、意味のあるバイナリに変換できるコンパイラは凄いな。