今晩は。変数に関して、面白い仕様があったのでメモ。
C言語の変数(識別子)は通常、
I::=
a|b|…|y|z|
A|B|…|Y|Z|
_
I::=II|I0|I1|…|I9
こんな感じ(多分)ですが、実は'$'(ドル記号)が拡張機能では使えます。
また、先頭に'$'が来てもいいので、'_'と同様の扱いになります。
int $;のように宣言も出来るという訳です。
ためしにgcc 3.4.4(Cygwin上)でコンパイル出来ました。
C言語は相当量の機能が組み込まれているようです。ちょっとしか使ったことが無いのですが、パイプでプロセス間通信が出来たりします。使うかどうかは別として、こういうので遊んでも面白そうです。
言語の仕様を深く知ると、ショートコーディングが楽しくなるわけです。
ではこの辺で。
2008年6月15日日曜日
The CUI

一か月振りの更新。
今回は、ちまちま作っている、iAppliの紹介でも。iAppliとはDoCoMoでJavaのプログラムが動く…と云う様な物です。
AUや他の機種では、個人で作って自由にダウンロードすることができない(色々手続きが必要)ので、止むを得ずiAppliにしたというわけです。
で、作っている物ですが、タイトルが今回の投稿のタイトルと同じ「The CUI」です。
スクリーンショットは右上。地味を究めています。
内容はというと、4種類のパズルゲームみたいな感じです。迷路とかライフゲームとかシンプルな物です。(実は名前は決まっていて、Shifter, Ouzzle, Lifegame, Mazeだったりします。)
また、コマンド入力を実装する予定です。
例えば…
exit:ゲーム終了
man hoge:hogeについての説明
(コマンドに関する情報提供 thanks Wataru.K)
という感じで、イースターエッグなノリの物が多く入れられそうで、中々面白いです。グラフィックに気をかけないでいい分、内容に力を入れる事が出来そうです。
完成度は60%位。まだ未調整や未実装の部分が多いので、しっかり作ろうと思っています。
今月中には公開出来たらと思っていたんですが、一寸キツイですね。
前回紹介した、BrainFuckはちまちまやっておりますが、時間があれば開発環境でも作ってみようかと、利用価値は無に等しいですが。在るかなと思って探しましたが、余り無いようです。結構難しそうですね、特にエディタ部分が。まぁ、エディタは簡素で、内部メモリ表示、ステップ実行等を充実させれば、それだけでもいいかなとは思います、どちらにしろ、気が向いたら作るという感じです。
今日はこの辺で。
2008年5月10日土曜日
Brainfuck
約1か月の沈黙からの更新。
iAppli等の開発に忙殺されておりました。その開発中アプリも近々紹介します。
今回はプログラミング言語Brainfuckです。名称が良いものではないです。難読プログラミング言語の一つとか言われています。
命令は><+-.,[]の8つだけ。10分で覚えられちゃいます。 で、これでどの程度プログラムが組めるかというと、普通のプログラミング言語(CとかLispとか)と同じようなことができます(理論上は)。 ただ、ソースを組むのが難しいんです。というか長いんです。 定番のHello, world! +++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-.------------.<++++++++.--------.+++.------.--------.>+.
一目見ただけでは、全く何やってるか分かりません。ソースの内容は"Hello, world!"の一文字一文字に当たる文字コードまで、値を移動させて表示させてるだけなんですけどね。
ということで、試しに考えて組んでみました。
,>,>++++++++[<------>-]<[<+>-]<.
2つの数字をもらって足した結果を表示します。ただし、合計が10以上になると文字化けします。
こういうパズルな感じを漂わせるものは好きです。
難読な言語は他にもMalbolgeというものがありますが、ソースの見た目に規則性が無いというか、プログラムソースにすら見えないです。
さらには、スペース、タブ、改行のみで構成するWhitespaceなんて言語もあります。
こういうジョーク物はいいですね。ちょっとした頭の体操というか、気休めというか。
ちなみに、普通のプログラミング言語としては、ちょこちょこLispをやっています。今まで、使ったことのある言語(C,Java,C#,Perlとか)と根本的に違うので、中々やりがいがあります。あともう一つPythonもかじってます。
では、こんな所で。
おまけ:
プログラミング初心者に優しいHQ9+という言語を見つけました。
命令はH,Q,9,+の4つ。この言語では、初心者によく出される例題である「"Hello, world!"を出力する」プログラムをいとも簡単に書くことができます。
H
この一文字で"Hello, world!"が出力されます。他にも3つ命令が使えます(詳細略)。
ぜひ試してみてください。
iAppli等の開発に忙殺されておりました。その開発中アプリも近々紹介します。
今回はプログラミング言語Brainfuckです。名称が良いものではないです。難読プログラミング言語の一つとか言われています。
命令は><+-.,[]の8つだけ。10分で覚えられちゃいます。 で、これでどの程度プログラムが組めるかというと、普通のプログラミング言語(CとかLispとか)と同じようなことができます(理論上は)。 ただ、ソースを組むのが難しいんです。というか長いんです。 定番のHello, world! +++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-.------------.<++++++++.--------.+++.------.--------.>+.
一目見ただけでは、全く何やってるか分かりません。ソースの内容は"Hello, world!"の一文字一文字に当たる文字コードまで、値を移動させて表示させてるだけなんですけどね。
ということで、試しに考えて組んでみました。
,>,>++++++++[<------>-]<[<+>-]<.
2つの数字をもらって足した結果を表示します。ただし、合計が10以上になると文字化けします。
こういうパズルな感じを漂わせるものは好きです。
難読な言語は他にもMalbolgeというものがありますが、ソースの見た目に規則性が無いというか、プログラムソースにすら見えないです。
さらには、スペース、タブ、改行のみで構成するWhitespaceなんて言語もあります。
こういうジョーク物はいいですね。ちょっとした頭の体操というか、気休めというか。
ちなみに、普通のプログラミング言語としては、ちょこちょこLispをやっています。今まで、使ったことのある言語(C,Java,C#,Perlとか)と根本的に違うので、中々やりがいがあります。あともう一つPythonもかじってます。
では、こんな所で。
おまけ:
プログラミング初心者に優しいHQ9+という言語を見つけました。
命令はH,Q,9,+の4つ。この言語では、初心者によく出される例題である「"Hello, world!"を出力する」プログラムをいとも簡単に書くことができます。
H
この一文字で"Hello, world!"が出力されます。他にも3つ命令が使えます(詳細略)。
ぜひ試してみてください。
2008年4月15日火曜日
プロコン
内容のある投稿は初めてということで。
多分、高専プロコンに出ます。唐突ですが。
高専プロコンとは全国高等専門学校プログラミングコンテスト の事でして、毎年行われています。今年で第19回目とのこと。本選の開催地は福島ですね。
で、部門別に色々ソフトを作って競う訳ですが、
募集部門はこんな感じ。
課題部門(「ゆとりを生み出すコンピュータ」をテーマにした作品)
自由部門(自由なテーマで独創的な作品)
競技部門(与えられたルールによる対抗戦)
「ゆとり」…は狙ってるとしか思えないですがね…。
参加するのは、競技部門になりそうです。競技内容はググってみてください。このタイプの問題は、人間だと直観と勘でやるでしょうね。これを、コンピュータにやらせるとなると、アルゴリズムが結構難しくなりそうです。なので、ゲーム理論をちまちまと調査し始めないとまずいかなぁ、と思う次第です。
多分、高専プロコンに出ます。唐突ですが。
高専プロコンとは全国高等専門学校プログラミングコンテスト の事でして、毎年行われています。今年で第19回目とのこと。本選の開催地は福島ですね。
で、部門別に色々ソフトを作って競う訳ですが、
募集部門はこんな感じ。
課題部門(「ゆとりを生み出すコンピュータ」をテーマにした作品)
自由部門(自由なテーマで独創的な作品)
競技部門(与えられたルールによる対抗戦)
「ゆとり」…は狙ってるとしか思えないですがね…。
参加するのは、競技部門になりそうです。競技内容はググってみてください。このタイプの問題は、人間だと直観と勘でやるでしょうね。これを、コンピュータにやらせるとなると、アルゴリズムが結構難しくなりそうです。なので、ゲーム理論をちまちまと調査し始めないとまずいかなぁ、と思う次第です。
登録:
投稿 (Atom)