Q: How did the IOCCC get started? A: One day (23 March 1984 to be exact), back Larry Bassel and I (Landon Curt Noll) were working for National Semiconductor's Genix porting group, we were both in our offices trying to fix some very broken code. Larry had been trying to fix a bug
優勝はもらった (スコア:0)
#define FALSE -1
Re:優勝はもらった (スコア:2)
#define END ;}
Re: (スコア:0)
オイオイV7 UNIXの真似をして優勝はないだろう?
http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/src/cmd/sh/mac.h [tuhs.org]
Re: (スコア:0)
> V7 UNIXの真似
せっかくcまでこれたものを、アセンブラに戻してどうする
しかし、これわかりやすいかも MASMみたいでなついよ
Re: (スコア:0)
Pascalかも。
Re: (スコア:0)
ALGOL です(ALGOL 68 だったかな)。
というか、IOCCC 開催のきっかけとなったのが、そのマクロを用いて書かれた Bourne Shell のソースコードなわけですが、ここスラドにおいてももはや UNIX 文化はコモンセンスではないのですね。
IOCCC FAQ [ioccc.org] からの引用:
Re: (スコア:0)
どうせなら、逆に定義しろ
Re: (スコア:0)
プリプロセッサ系は卑怯な気がするなぁ。
#define car <st
#define id .h>
で、
#include cardioid
#include carringid
とかやられたら、誰にも読めない。
Re:優勝はもらった (スコア:4, 参考になる)
「プリプロセッサ系は卑怯」なんてことは全然ありませんが、審査するのは人間ですから、ありきたりな手を使っても良い評価は得られません。実際、ガイドライン [ioccc.org]の Our Likes and Dislikes の節に
と書いてある通り、マクロを使って読みにくくしていることしか見るべきところがないようなエントリーは古臭いというのが評価基準です。
ちなみに、 #2052882 [srad.jp] の人も書いている通り、 #2052871 のコードはコンパイルエラーだと思いますけど……。マクロ展開は字句解析の後で起こるので、 car というマクロが定義されていても cardioid というトークンには影響を与えません。 (なんてのは当たり前過ぎる話なので、何か引っかけがあるのかと思いますが、わかりません。)
Re: (スコア:0)
プリプロセッサを手動で反復適用するとかすれば、あるいは。
ああ、でも、n 回目のプリプロセスのためのディレクティブが n - 1 回まではエスケープされるように書かなきゃならなくなるのか。
Re: (スコア:0)
あなたの望むようには展開されない
Re: (スコア:0)
真面目にやってこそアレゲ [pro.or.jp]
たとえ本人にその意志がなかったとしても