Hatena::ブログ(Diary)

やねうらお−ノーゲーム・ノーライフ このページをアンテナに追加 RSSフィード

GT-Rの買取ならここですわ。どこよりも高く買取ってもらえるはず。お勧め!GT-R 買取
電王戦出場記念! 書籍化されたで! 監修したで!(`ω´) 絶版なってしもた Kindle版で復活!! 記事書いたで!
解析魔法少女美咲ちゃん マジカル・オープン!

YaneuLabs / やねうら王公式 / やねうらおにメール / twitter / プロフィール

 | 

2004-05-24 やねう企画のほげほげソリューション その1

[][][][] 携帯開発用言語(1)  携帯開発用言語(1)を含むブックマーク  携帯開発用言語(1)のブックマークコメント

携帯の複数のデバイスをサポートしようと思うと、たいていJavaとC/C++の両方のコードを書かないといけない。JavaからC/C++、あるいはその逆をうまく変換することが出来れば理想的なのだが、ポインタの問題ひとつとってみてもそう簡単な問題ではない。


そこでまあ、JavaC++の上限言語を開発して、その言語でコードを書いてJava/C++のコードに落とし込む、というアプローチを取ることにした。これが出来れば、JavaC++の両方のソースを一気に生成できて、単純計算では2倍仕事が出来て、2倍儲かるわけだ。200万儲かっていたのが400万、400万儲かっていたのが800万、800万儲かっていたのが1600万になるわけだ。ドラえもんのバイバインみたいだな。イッツ ア ミラクル。やねうマジックさながらである。これが、有限会社やねう企画のほげほげソリューションその1だ。< しかし全然たいしたことなさそうな名前だな


ゲームなので、古典的タスクシステム*1を用いて設計されている。このタスクシステムは、フレームスキップを考慮しない場合、描画回数だけ移動関数を呼び出す。この移動関数は、一回分の移動を行なってリターンする。すなわち、移動関数は、自分の状態を持っていて、次回呼ばれたときに次の動作を行なわなければならない。よって、次回呼ばれるときのために次にジャンプするためのジャンプ先の関数ポインタを突っ込んだりする必要があったり何だったりするわけだ。じゃあその上位言語では関数delegateをサポートすればいいのか、という話になりそうだが、そんなことをしてしまうとJavaのほうにどう落とし込むのかが悩ましい。


そこで、このへんの問題をエレガントに解決するためにcontinuation(継続)をサポートするのだ。continuationは、近年のプログラミング言語では半ば常識と化しているので知っている人も多いだろう。Rubyのyield,C#2.0のIterator,Schemeのcall/ccだ。(つづく)

XellossXelloss 2004/05/24 02:26 IPAの未踏に申請して大金をせしめるというのはどうでしょう?といってみるテスト

yaneuraoyaneurao 2004/05/24 09:26 うーん、どうでしょう。IPAなんかでやらなくても、これはこれで大金になりそうなので(笑)

abcabc 2004/05/30 17:06 大阪弁と名古屋弁の上位言語を開発して、その言語で原稿を書いて標準語に翻訳する、というアプローチはいかが?

abcabc 2004/05/30 17:08 ヨーロッパの言語群の上位言語を作って…(以下略)

yaneuraoyaneurao 2004/06/02 10:02 自然言語は..シソーラス作るだけで人生だいぶ無駄にすごせますしね..。余生は自然言語解析とかに取り組んでみたいという気はしてますけども。

abcabc 2004/06/02 13:39 昔のguavacのソース、JVMの仕様書、フリーのJITコンパイラのソース、 JavaをC++から呼び出す仕組み、コンパ、逆汗、虫取りの作り方なんて技術情報を一人で把握しているような人材は日本に何人いるのやら。

abcabc 2004/06/02 13:43 本気ですか? アイディアならいくつかお出ししますが。

yaneuraoyaneurao 2004/06/02 13:53 「一人で把握」してる人って、そんなのゴマンといるんじゃ..具体的に人数で言うと五万人ぐらい < まんまか

yaneuraoyaneurao 2004/06/02 13:54 上位言語のアイデア? そんなのいらないよ。好きにさせてくれい。

mizushimamizushima 2004/06/03 21:08 Rubyのyieldって、continuationって言えるんでしょうか?

yaneuraoyaneurao 2004/06/03 21:13 言えると思いますヨ。

mizushimamizushima 2004/06/03 21:13 質問が不十分だったので、補足します。言語機構としてのcontinuationっていうと、普通はSchemeのそれみたいに、継続を値として扱える機構を指すもんじゃないだろうかという意味です。

yaneuraoyaneurao 2004/06/05 02:16 continuationの定義について語りだすと、それだけでご飯のおかずになりそうだけど、「継続を値として扱える」なら、一般的には、それはenviromentと呼ぶかな。

トラックバック - http://d.hatena.ne.jp/yaneurao/20040524
 | 

1900 | 01 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2013 | 01 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2014 | 01 | 02 | 03 | 04 | 06 | 08 | 10 | 11 | 12 |
2015 | 01 | 02 |


Microsoft MVP
Microsoft MVP Visual C# 2006.07-2011.06