読者です 読者をやめる 読者になる 読者になる

Just $ A sandbox

プログラミングと計算機科学とかわいさ

0.ショートコーディングC

ショートコーディングとは?

ショートコーディングとはその名の通り短くコードを書く、ということに重きをおいて行われるプログラミングです。
普通ではやらないような記法を使ってでも、1バイトでも短くなるようにコードを組みます。

もちろんこれはかなり特殊なコードが出来上がるので普通のプログラムに使うことはまずないでしょう。
しかしプログラムを1バイトを削るためにはかなり詳しく言語のことを知らなければいけません。

まぁそんな訳で、力もつくし楽しいのでみんなやろうね!という宣伝に近いものです(?)
最初からショートコーディングなんてギークなものを、と考える人も一度やってみればとても楽しいと気づいてもらえると思いますよ!

環境の準備(簡単)

さて御託を並べても仕方ないので早速始めてみましょう!まずはCが動く環境を用意しなければいけませんが、これが結構面倒です。なのでコンパイラを各OSなどにインストールはしないで話を進めましょう。まずは以下のサイトにアクセスしてみてください。

Ideone.com | Online IDE & Debugging Tool
左側にあるリストから「C」を選択したら準備完了です。あとは右側のボックスに好きなプログラムを書いて下のSubmitボタンを押せばプログラムが動きます!

例えば以下のようなプログラムを書いてみます。

#include <stdio.h>
 
int main(void){
    printf("Hello,World!\n"); 
    return 0;
}

これを入力してSubmitすると、以下のような結果が返ります。

# 1:   hide   clone   input   5 seconds ago

result: Success	    time: 0.01s    memory: 1676 kB     returned value: 0
input: no
output:

Hello,World!

resultのところがSuccessとなっているのでプログラムはちゃんと動いているようです。outputに上手くHello,World!が表示されていますね。
これで環境設定はおしまいです。あとは好きなプログラムをバリバリ書いて動かしていきましょう!

参考までに

ショートコーディングを一切やったことがなければいきなり始めるのはなかなか大変だと思います(このサイトでは主に「とりあえずCはある程度かける」という型を対象にしています)。なので何も分からない場合はとりあえず以下のサイトを参照してみてください。
code golf入門/C言語編 - プログラミングスレまとめ in VIP

また、上ではCの中でも特にgccというコンパイラを用いてコンパイルを行っています。(2012/07/02現在 ver4.3.4)
gccは他のCコンパイラに比べて拡張機能などが豊富に提供されているのでそれらを知りたい方は以下のサイトが詳しいです。(※ページ上<BLINK>タグ注意※
GCC some extensions
もちろんこれらの拡張機能を使うことは「裏技」に当たり、環境に強く依存するので注意が必要ですが、「短いは正義」というスローガンのもとあまり気にしないことにしましょう(ぇ

では次回からは具体的にショートコーディングとしてCのプログラムを実装していくことにしましょう。