[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 05/09 13:56 / Filesize : 174 KB / Number-of Response : 756
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

「コンパイラ・スクリプトエンジン」相談室14



1 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 13:12:25 ]
禁止事項【臨時】
・前スレの911自身の書き込み、またそれに関連した書き込みを禁止致します。
 (スレが荒れる原因となります)

プログラミング言語処理系の開発に興味のある人達のスレッドです。
字句解析・構文解析から,データフロー解析,ループ並列化,データ分散,SSA変換,
CPS変換,レジスタ割付,命令スケジューリング,ソフトウェアパイプライン,
SIMD命令生成,VLIW向けクラスタリング,スクラッチメモリ向け最適化,リンク時最適化,
JIT,動的バイナリ変換等の各種最適化,それにVM,GC,低消費電力化などなど。
意味論に関する話題も歓迎です。

過去スレ
1 pc.2ch.net/tech/kako/981/981672957.html
2 pc2.2ch.net/test/read.cgi/tech/1021136715/
3 pc5.2ch.net/test/read.cgi/tech/1070089173/
4 pc5.2ch.net/test/read.cgi/tech/1100097050/
5 pc8.2ch.net/test/read.cgi/tech/1106129164/
6 pc8.2ch.net/test/read.cgi/tech/1115335709/
7 pc8.2ch.net/test/read.cgi/tech/1129287390/
8 pc8.2ch.net/test/read.cgi/tech/1131273918/
9 pc8.2ch.net/test/read.cgi/tech/1135082582/
10 pc8.2ch.net/test/read.cgi/tech/1146844753/
11 pc11.2ch.net/test/read.cgi/tech/1160879890/
12 pc11.2ch.net/test/read.cgi/tech/1188688416/
前スレ 13 pc12.2ch.net/test/read.cgi/tech/1233143342/
関連リンクは多分 >>2-10 あたり

449 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 23:49:08 ]
>ゲームの演出スクリプト
ずいぶん前にコンシューマ用で同じような事をした
そのときはメモリのフットプリントを最小にするのが目的だったのでスクリプト->バイトコードコンパイラでバイトコードインタプリタを実装って方式だった
バイトコードの環境をPC上でエミュっておくとスクリプターのコンソールでテストやデバッグができるので開発時間の短縮もできた
今時のマシンだったらその場でコンパイルしても良いのじゃないかとおもったりするんだけどどうなんだろう?


450 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 00:00:29 ]
>>449
用途に応じてコンパイラを作り直せば、
1つのゲームスクリプトでマルチプラットフォームに対応できる。
今回はPC向けだからRDB化するけど、DS向けとかだったら
バイトコードっぽくコンパクトなバイナリ構造にするのがいいと思う。

もちろんコンパイラもコンパイルされたスクリプトの実行環境も
全部自分で用意するんですがねorz

451 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 00:25:58 ]
クラウドコンパイラがあれば
全て解決するらしいし

難しいことを考えるのはバカが
頭のいいところを見せようとしているだけだな

452 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 01:51:15 ]
ブラウザの皮をかぶってシンクライアントの復活か。

453 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 02:13:34 ]
ゲームなんぞ、適当なバイトコードインタプリタを作れば十分そうだが

454 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 02:24:32 ]
そそ、if elseif else endを実装して、
表記式も簡略化して、r20>=10とかr5==r10だけにして、
式もLET、or、not、sub、add、sto、lodの命令にしちゃえば楽。
評価式と式は逆ポーランドで書けるようにしても、そんなに大変じゃない。

455 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 03:26:06 ]
>>454
それじゃBASE-x86や。

456 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 05:25:11 ]
うちのプロデューサーが簡単にコンパイラの拡張を要求してきたよ。
マクロを実装して欲しいとのことだが、MASM並の者を要求してきてる。
プログラマ上がりのプロデューサーだから仕方ないが、
MASM並のマクロがどれだけ大変か分かっていない。
文字セットの問題もあるし。ヘタに知識があると手に負えない。
しょうがないのでダメ元でこの前のエロゲプログッラマにプリプロセッサのソースを
売って貰えないか聞いてる最中。

457 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 06:41:25 ]
macroもmasm以上の仕様で、こんなの作れるかって言ってやった。
コンパイルスピードは5万行を1秒だってさ。



458 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 19:29:52 ]
ソースを貰えたのだけど、アセンブラ部分が多くて読めない。
マクロも先読みして展開を繰り返している。
凄く速い。50万行1秒くらいのコンパイルスピードだった。
とにかく凄い。このまま自社用に改造していただけるか交渉中。

459 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 19:37:00 ]
YOUはどうして交渉中なのにそんなことをペラペラしゃべってるんですかと小一時間

460 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 21:29:06 ]
あなたの会社は先方と守秘義務契約を結んでいないのですかと小一時間

461 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 21:33:55 ]
エロゲ会社のPGにそんなモラル期待するなよ

462 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 22:31:37 ]
過剰な性能だ。
C#のように機械的に処理できる定型的な構文を用意して
分割コンパイルできるように考えるのが本道なんじゃないか。

463 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 22:35:36 ]
何で C Sharp?

464 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 22:39:54 ]
>>462
> C#のように機械的に処理できる定型的な構文を用意して
意味分からん

465 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 22:53:31 ]
特にC#って相当複雑な部類じゃないか

466 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 22:58:51 ]
んん、C#のコンパイルは相当高速だぞ。
アセンブラなんかでカリカリにチューンするのが大事なのではなく、
コンパイルしやすい構文を用意することが大事だ、ということ。

467 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 23:08:06 ]
類似のほかの言語に比べてC#がコンパイルしやすいってことはないでしょ
コンテキストキーワードだらけだし



468 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 23:28:53 ]
パーサを書いたことのない人の発言。

469 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 00:12:08 ]
ヒント:C#はTurboPascal出身


470 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 00:16:48 ]
Mono のC#コンパイラのコードを見ればわかるが、レキサー、パーサーだけでも大そうなことになってる。
パースが簡単なのは、PASCALやBASIC、LISP。

471 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 00:28:39 ]
varという名前の型が存在したらvarがキーワードじゃなくなったりするんでしょ

472 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 01:04:27 ]
演算子の優先順位を変えられるのって、haskellだっけ?
普通じゃないっぽいけど、実装は簡単なの?難しいの?

473 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 01:12:09 ]
優先順位毎に演算子のリストを持って、ソースコード中に演算子を見つけたら
その都度マッチングすれば良いだけじゃないの。

474 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 01:42:10 ]
パーサーはともかく、レキサー(っていうの?)が複雑なのはいやだなぁ。
あー、あれか?途中でSQLやXMLなどが書けるからとか?


475 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 02:12:19 ]
スマン、興奮しすぎて秘酒義務を守らなかった。
あと、俺はエロゲじゃない。
macroは#define程度にして自分で作ることにした。

476 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 02:14:31 ]
秘酒義務->守秘義務
ゴメン間違えた。

477 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 02:17:41 ]
会社の人間がこいつを特定したらクビかな?やっぱり



478 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 02:19:25 ]
先方の情報も流したから多分……orz

479 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 02:31:37 ]
正直何一つ有用な情報は含まれてない

480 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 07:11:19 ]
真偽はどうであれ宣伝乙でいいよもうめんどくさい

481 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 11:06:14 ]
向こうは別に良いですとといってくれたが言及になりそう。
やはり簡易式で作ろうと思う。マクロも完全置換の#defineで。
みなさん、#defineを実装するときには文脈を見てますか?

482 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 11:07:16 ]
言及->減給
すまん。

483 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 22:19:57 ]
C#のspaced keywordは正気の沙汰とは思えない。

>>481
m4マクロを先に勉強しといたら?




484 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 23:50:14 ]
C#は
後方互換>>>バージョン管理>>>>>(越えられない壁)>>>>>>>>言語仕様の簡潔さ
だから仕方ない

485 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 23:55:06 ]
>>483
m4マクロのソースならどうにかなりそうです。ありがとう御座いました。

486 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 00:17:37 ]
>>484
大規模開発に耐えるよう厳格な規格で作られたC#やJavaのような言語の仕様が簡潔なものに収まるはずがない。
でもC#の開発効率の良さやコンパイラの鬼速さは本物。
あれはいいものだ。

487 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 00:28:19 ]
Javaなんかそんなに複雑じゃないだろ
C#の文法が複雑なのは既存のコードの互換性を維持しながら無理矢理拡張しまくってるから



488 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 00:32:33 ]
>>487
> C#の文法が複雑なのは既存のコードの互換性を維持しながら無理矢理拡張しまくってるから
C#のどこらへんが複雑? パースが難しいところもあるが、文法自体は単純だと思うが。

489 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 00:41:03 ]
Ironyのサンプルにパース用のC#構文定義クラスがあるけど、RubyやPython向けより簡単なくらいだよ。

490 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 00:41:24 ]
結局C#のコンパイルが激速な理由については語られないのか

491 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 00:47:44 ]
>>490
IDEでの話か?


492 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 00:55:21 ]
cs.exe

493 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 01:03:18 ]
ILへのコンパイルの段階ではほとんど最適化やらないし

494 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 01:03:36 ]
どの言語と比べて?

495 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 01:33:59 ]
>>483
>C#のspaced keywordは正気の沙汰とは思えない。

spaced keywordってなんじゃらほい
名前空間周りの実装のことかな…

ufcpp.net/study/csharp/sp_namespace.html

496 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 07:16:59 ]
>>495
理解できるかどうかわからんがこことか。
blogs.msdn.com/slippman/archive/2003/12/03/58443.aspx

497 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 07:32:01 ]
>>496
C#で具体的にどこ?



498 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 08:53:35 ]
>>496
dくす。元々はmixinみたいなことをやりたかった

>At the same time, it allows users of the new functionality to have a
>first-class experience of the additional language feature something
>we felt was missing from the original language design.

#define value class class

けど副産物として

>It literally pairs an existing keyword with a contextual modifier separated
>by a space. The pair is treated as a single unit, such as value class, rather
>than as two separate keywords.

spaced keyword も考案されたと、ふむ

499 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 09:02:57 ]
>>497
msdn.microsoft.com/ja-jp/library/88c54tsw(VS.80).aspx
>シール メソッドは基本クラスのメソッドをオーバーライドしますが、それ自体は
>どの派生クラスでもオーバーライドされません

多重継承周りの話だろうおそらく...

500 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 11:57:45 ]
C#で2語以上まとめて一つのキーワードになるのはextern aliasとyield returnとyield breakだけじゃね

501 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 00:09:34 ]
>>500
そういった意味では構文の拡張そのものは大したこと無さそうだね>spaced keyword
むしろ拡張されるまで従来aliasやyieldが変数名として認められてたので
そういったレガシーなコードとの共存が大変そうだ。

502 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 00:33:02 ]
文脈依存のキーワードは他にも沢山あるよ
予約語を増やすことがあるJavaとは違ってC#の言語使用を拡張する際は
過去のコードがそのままコンパイルできることが最優先されるので
予約語を増やさずにキーワードを増やすという無茶な事をしている結果

503 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 00:37:31 ]
旧バージョンでコンパイルするモードとか搭載すればいい気がする

504 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 00:41:22 ]
>>503
馬鹿相手の商売はそれでは済まない。

505 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 12:02:03 ]
var var = from from in in select (global::Hoge)from.where.global;
foreach (var var in in) { yield return in.yield; }
試してないけど多分通る

506 名前:505 mailto:sage [2010/03/08(月) 12:04:53 ]
すまんいろいろ間違えてる

507 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 12:05:03 ]
頭の中でロンドン橋落ちるが流れた



508 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 18:38:11 ]
漏れの頭では「インッ!インッ!」と再生された

509 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:34:53 ]
re2c でUTF32対応すべく頑張ってるが、charだと動くのにUTF32だと
挙動が変。cursorが進まず無限ループになったりする。もう限界。

どこかサンプルあったら教えてください。

510 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:54:01 ]
ひげぽん氏のschemeがre2cでUTF32やってるはずだが

511 名前:509 mailto:sage [2010/03/13(土) 09:03:33 ]
UTF32のBOMでしたorz。
BOMなしだと動いた。3日悩んだ。

512 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:58:08 ]
迷惑な香具師だな

513 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:22:42 ]
ADVのシナリオ記述にXML使ってる例って結構たくさんある

514 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 07:06:31 ]
パーサ作るの楽だからな。

515 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 08:33:34 ]
しかしスクリプタの能力はXMLの方が大変。

516 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 08:39:03 ]
スクリプトをXMLで記述してそのまま実行って……ないよな?
元ソースや中間データとしてならともかく、
プレーンテキストでもメガ単位になるんだぞ、あれ。

517 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 08:43:11 ]
そこはエロゲの程度の低さ。自分で規格を作れないなんてな。



518 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 08:46:31 ]
いまどき数メガなんて誤差にすぎん

519 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 08:49:32 ]
少なくともここにいる奴らからは支持を得ないだろうね。

520 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 10:10:52 ]
エロゲごときに、自分でPG言語作るなんてアホくさ

521 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 10:16:18 ]
このスレには、よほどエロゲにコンプレックスを持ってるやつが居るようだなw

522 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 10:32:38 ]
上に乗っかるコンテンツを、俺らの作業領域にあんま関係づけて語ってもな。
なんかド素人のゲーヲタ視点っぽい。

523 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 20:39:54 ]
>514
XMLのパーザ簡単じゃないと思うけどなぁ。
セパレーターを調整したS式が一番良いと思う。

524 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 22:03:16 ]
最近はJSONやYAMLのパーザも増えてる。

525 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 22:15:40 ]
書く側に複雑な知識は期待できないとなれば、
wikiやTeXぐらいの記法が限界なんだろうか?

526 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 22:36:02 ]
>>523
汎用のパーサを使わなくても(デ)シリアライザに直接食わせられるのが魅力かも。
オレはスクリプト記述の用途としては使わないが、
スクリプトの文法定義にXMLをコンパイラの設定ファイルとして使ってるよ。
S式はどーだろ?

527 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 23:46:36 ]
>526
ライブラリが充実していればそうだけど、パーザを自分で組むとしたらXMLは無駄に複雑過ぎるよ。
要素と属性値みたいに無駄に種類が多かったり、終了タグに名前を書かなきゃいけないとか……

S式が嫌われているのは
 ・グループ化で使っている()が字面として強い
 ・セパレータとしてスペースが使われているから、普通の英文と相性が悪い
辺りだと思うんだけど、これを改善すればずいぶんと受けが良くなるんじゃないのかな?
昔こんなの作ったけど、なかなか悪くなかったと思う。XMLと相性も良かったし。
|要素名;要素の中身|:
(|を表現するときは||を使う)




528 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 00:23:25 ]
>>527
そもそもXMLはシリアライザやテンプレートエンジンに
吐かせるかしかせず、手では触らないことにしている。
XMLは静的型付き言語、JSONやYAMLは動的型付言語と相性がいいという印象。

>|要素名;要素の中身|:
悪くないんじゃないかな。縦棒は比較的使用頻度が少ない記号だし。
オレは
[コマンド名 param1=arg1 param2=arg2]
の形式にしてる。計算式は原則としてスクリプト中では使用させない。
これでも案外実用になる。

529 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 01:10:13 ]
>>527
> 要素と属性値みたいに無駄に種類が多かったり

冗談だろ?

530 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 01:35:13 ]
>529
マジ、マジ。属性値は本質的に制限付き要素なんだけど、わざわざ構文分けて別物にするほどのものじゃ無いよ。
『<element>属性値</element>なんて書きたくないよ』なんて思うかもしれないけど、それは要素の表記が
重すぎるのが問題なわけで。

531 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 01:42:37 ]
それはあなたのDTD定義が適切でないだけ。
plistみたいにやりたければ、どんどんやればいい。
XMLの問題は「構文が単純すぎて」冗長になること。
組み込みタイプとリテラル表現がないのも一因。

532 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 02:10:00 ]
え?DTD解析までやれと?どんだけ難易度高いんだよ。
やっぱりXML使うんだったらライブラリ必須じゃない?

533 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 07:21:11 ]
>>528
「=」を「:」にすればObj-Cだな。

534 名前:509 mailto:sage [2010/03/20(土) 08:24:31 ]
質問です。

re2c+bisonでAST作成までだいたい出来たところまで来ました。

この先の最適化ってところが、まだ良くわかりません。
解説しているサイトとか、参考になりそうな所を教えてください。
(constant同士の演算くらいしか思いつきません)

535 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 09:13:01 ]
コンパイラ作ってるの?

とりあえず中田先生の「コンパイラの構成と最適化」は見た?

536 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 09:18:48 ]
最適かなんか後回しでいいのに

537 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 09:55:28 ]
>>534
最適化は後回しにした方がいいと思うけど、いずれにせよASTから中間言語に直す方がいいな。
命令型言語なら3番地コード
大体どの教科書にも最適化は三番地コードに対するアルゴリズムとして書いてある



538 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 11:23:49 ]
先にある程度知っておいてからでも遅くは無いよね
どうせ最初から作り直しになるんだけど

539 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 11:35:21 ]
最終的にどんなコードになるのかどうやって実行されるのかとかわかってないと
最適化なんかやりようがない

540 名前:509 mailto:sage [2010/03/20(土) 12:04:43 ]
コメントありがとうございます。

>535
>コンパイラ作ってるの?
いえ、今考えているのは仮想マシン書いてバイトコード実行、って
感じのスクリプトエンジンです。スタックマシンていうのが小さく
書けるみたいくらいの知識しかなくて・・・

なるほど・・・。とりあえず本買ってみます。


541 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 12:11:59 ]
まずASTを直接評価するインタプリタを書いてみれば?

542 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 02:03:33 ]
>>540
中間言語のニーモニックを多少最適化することより、
仮想マシン自体の性能アップの方が遥かに大事だよ。
ニーモニックの最適化が重要になるのは、吐き出すのがネイティブコードの場合だね。

543 名前:513 mailto:sage [2010/03/21(日) 22:55:18 ]
>>513でまさかこんなにレスが付くとは

XMLでスクリプト書く場合の負荷については
能力の低いマシンならともかく、PC上でのプログラムだからそんなに性能を気にすることはなかった。
パーサーは自作なんて無理なので既成のを使用。
XML全体と同じ内容の木構造データにして実行する方式
(バイトコードとか仮想マシンを作るような知識はないので)
なので、実行はそれなりに速いと思うけど
ファイルサイズが大きくなると、最初の読み込みに時間がかかってしまいそう。

メリットは妥当性検証のあるエディタが使える事。実行する前にエラーが分かるのって大きい。

544 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 23:14:43 ]
>>543
>ファイルサイズが大きくなると、最初の読み込みに時間がかかってしまいそう。
試してないのかね。
5MBぐらいのスクリプト作って読ませてみれ。

545 名前:513 mailto:sage [2010/03/21(日) 23:58:08 ]
>>544
そんな大きいのは試した事ない・・これから作って試すわ。
150KBぐらいのがあるけど、それだとCeleron 1.4Ghzで40msぐらい。
150KBで単純に40msずつ増えていくとして、5MBだと1350msぐらいかな。

こんな感じの構造にしているんだけど、block直下にある要素をコマンドとして実行させたり、
クリック待ちなどで中断するのは簡単なんだけど(要素のインデックスを保存して行ってる)、
ifの中でクリック待ちで中断するような時はどうすりゃいいんだろう・・
if文の中まで実行しなくちゃいけないし、セーブで途中の要素から実行しなくちゃいけないときはどうするんだろう。
中断すること考えなければ簡単なのに。
読み込み時に、XMLの要素全部にIDを割り当てて、ロード時はそれをもとに再開するとかだろうか。

<function name="main">
<element param="1"/>
表示するテキスト
<if expr="a=6">
変数aが6のときの処理
<else>そうでないとき</else>
</if>
</function>

546 名前:デフォルトの名無しさん [2010/03/22(月) 06:17:07 ]
先日のエロゲプログラマの方が全然凄いな。
今のプログラマはアリモノを使いすぎるんじゃない?

547 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 07:59:27 ]
今時のプログラマは有りモノを活用するのが基本だろ。



548 名前:デフォルトの名無しさん [2010/03/22(月) 08:08:42 ]
それって、基礎が出来てないけどブラックボックスを触るようなもんだね。
はまったときや改編時は、自己コードじゃないと大変そうだね。
あと、実行スピードはスクラッチに負けるよね。
JAVAとか使ってると遅くて敵わないね。

549 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 08:20:35 ]
他人のコードだからといってブラックボックスな訳じゃないし、
多数の人間が使っているコードなら実行スピードもむしろ最適化
されてると思うけど。実装スピードは格段に速くなる訳だし、
自前主義に拘る理由は無いでしょ。

550 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 08:30:06 ]
> それって、基礎が出来てないけどブラックボックスを触るようなもんだね。

基礎ができている/できてないことと、有りモノを使うかどうかの判断は
関係ありませんね。
材木を山で切ってくることから始める大工しか、基礎ができてない、
なんて考える人のことを「バカ」と言います。

> JAVAとか使ってると遅くて敵わないね。

使ってない奴の妄想だから相手にしないほうがいいよ。

551 名前:デフォルトの名無しさん [2010/03/22(月) 08:35:48 ]
はあ?
ブラックボックスで困るのは事実だろ。
あとJAVAがいくら頑張っても前のエロゲプログラマのスピード(50000行を1秒でコンパイル)には敵わないだろ。
エロゲプログラマにコンプレックスでも持ってるのか?
今は遅いネットブックが2割をしめるんだぞ。

552 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 08:37:40 ]
単純な言語仕様ならそりゃコンパイルも速いさ

553 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 08:40:20 ]
>>551
>ブラックボックスで困るのは事実だろ。

オープンソースの物を使うという発想は無いのかな
ちゃんとドキュメントも整備されている物もあるよ

554 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 08:44:53 ]
おかしな人は放置で。

555 名前:デフォルトの名無しさん [2010/03/22(月) 08:47:19 ]
>>552
あれが単純な言語仕様に見えたのなら、お前の目は節穴だよ。
>>553
そろってるものもある、だろ?
無い物はソースから読み直しだ。それでも効率はブラックボックスの方が上だと思うが、
至高のコンパイラスレで技術力を言及しないのはどうしてだ?
前のエロゲ屋は音声も画像もシナリオも独自圧縮と書いてたぞ。
それでも既存の物を使う方が優秀というのか?

556 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 08:49:56 ]
有り物だけを使うのは技術向上の否定になるわけで、このスレでもスクラッチから作る方が高度だと認められてるだろ?

557 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 08:53:56 ]
速いバージョンのmp3の展開ルーチンでももたつくな。



558 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 09:06:47 ]
JAVA厨ちんこだから、相手にしない方が。
それと、エロゲの人は低スペックでも動くようにチューンしてるだけだと思う。
様は適材適所で、スピードを求められないのならYACCとLEXを使えば良いだけだと思う。
たしかに技術力の向上のためにスクラッチから作るのも趣味としてはありだとは思うけど、
開発効率と実行スピードのどちらが求められるかは現場次第。

559 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 09:11:19 ]
JAVAが早いって言うのは嘘だな。

560 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 09:13:27 ]
>>555
コンパイラにとっての言語の単純さってのは
人間の感じるものとは異なるということさ

561 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 09:15:48 ]
>>555
>至高のコンパイラスレで技術力を言及しないのはどうしてだ?

技術は『使いどころ』が重要だから。
何にでも技術力を投入すれば良いという物でもない。

562 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 09:37:45 ]
まあ、前のエロゲ屋は長い間の蓄積があって、ああなったんだから、今と時代は違うよ。
でも、圧縮関連の技術を自社開発にしているところは純粋に凄いな。認めるべきだと思う。
>>561
この人はそこが技術の使い所と思ったんだろう。
>>560
前のエロゲ屋のコンパイラは十分複雑だと思うが。

563 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 09:40:26 ]
圧縮なんかは確立してる理論をベースに特許関係を避けて使うのがセオリー。
自前でやる意味があるのは枝葉末節の細かい部分だけ。

564 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 09:41:55 ]
どちらにしろ、エロゲの人の技術は凄いかも知れないけど、今は時代が違うではないし終わりにしないか?
スレの内容を逸脱してる。

565 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 09:43:18 ]
実装が手元にないのにそれをぐだぐだ論じても仕方ない

566 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 09:44:06 ]
>>563
ロースペックなマシンに合わせて展開スピードをあげ、マスターに向けて圧縮スピードを上げている。
このエロゲ会社独自だろ?

567 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 09:47:12 ]
>>566
どうしてそれだけで独自だと分かるの?
既存の技術を組み合わせることで圧縮効率を上げるってのはよくあることだけど



568 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 09:49:05 ]
>>565
その通り。
>>566
長いエロゲ屋歴でそういう風にしたんだろ。
去年は新作6本、DL12本(?)作ってる会社だから、他の会社に当てはめられない。

569 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 09:50:57 ]
>>567
本人かブログかで独自圧縮といってただろ。
信じるか信じないかは自由だが。

570 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 09:52:10 ]
>>568
そんなに作ってるのか?

571 名前:568 mailto:sage [2010/03/22(月) 09:55:19 ]
>>570
ああ、OHPとDLSITE.COMで確かめた。すさまじい数だ。

572 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 09:59:21 ]
>>566
たとえば gzip の -1, -2, ..., -9 オプションですな。

圧縮処理の対象とするブロックの大きさを加減することにより、必要とするメモリ量+計算量と、
圧縮性能のトレードオフを加減する。

情報理論的にごくあたりまえの話ですが何か?

573 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 10:00:00 ]
wikiで見ると社長兼メインプログラマみたいだな。
そりゃ本数出すためならプログラむくむわな。

574 名前:エロゲ屋 mailto:sage [2010/03/22(月) 10:02:40 ]
>>572
この会社は圧縮率も高い。
良く社長と兼任してそんな本数出せたか不思議。
普通のエロゲはもっと時間を掛けて作られる。

575 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 10:04:18 ]
その痛々しい名前欄はなんなんだw

576 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 10:06:00 ]
>>574
単純にもっと昔に理論は確立してたからじゃないか?
実装もASMとC++だったよな。古い言語だ。

577 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 10:07:15 ]
予告通り出ないというのが常態化しているエロゲ業界で、そんだけリリース
し続けてるのはすごいな。
OpenBSD が「半年ごとにリリース版を出す」を10年続けているのを知った時も
すごいと思ったが。



578 名前:エロゲ屋 mailto:sage [2010/03/22(月) 10:08:48 ]
>>575
うるさいw
でも、この会社の評判は流通が必ず言ってくるくらい良いんだよな。
マスターが確実でバグはないって。延期とバグがつきものの俺らはいつも言われるw

579 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 10:11:38 ]
>>578
やっぱり流通って口出してくるんですね。
エロゲ界の摩訶不思議です。
どういう仕組みなんですか?

580 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 10:11:48 ]
久方北エロゲ産業

581 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 10:13:57 ]
もうそろそろ止めようぜ。

582 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 10:15:02 ]
>>581
すまん。

昔提案のあった、TinyCの定義でもしないか?

583 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 10:23:24 ]
大学の学生実験でTinyCなる言語のコンパイラ作らされたなあ

- 型はintだけ。void型やポインタ・配列はなし
- 演算子は論理和積、加減乗除、比較だけ
- 制御文はif, while, returnだけ

手習いにはちょうどいいサイズだったと思う

584 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 10:23:47 ]
TinyCは目新しさがないんだよな。みんな最初に通る道だし。

585 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 10:25:24 ]
逆にHugeCを作れば

586 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 10:26:58 ]
D言語w

587 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 10:31:09 ]
C言語にクラスって必用かな。ネットのコピペで良いから、クラスのありがたみがいまいち理解できない。
スコープの厳密さは良いと思うけど。



588 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 10:32:29 ]
RAIIが使えるだけで随分差が出てくると思う

589 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 10:35:40 ]
コンストラクタとデストラクタってRAIIって言われるんだ。
たしかにエラー処理が楽ですね。

590 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 10:35:52 ]
>>587
最初は C with Classes という名前だった処理系を作った人の
「C++の設計と進化」の最初のあたりだけとか読んでみたら?

591 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 10:36:37 ]
RAIIは、コンストラクタとデストラクタを使ったリソース管理、だな

592 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 10:39:13 ]
>>589
コンストラクタとデストラクタのことではない。
ウィキペディアからの引用になるが、

(引用者注: C++では)自動変数がスコープを離れるときデストラクタが呼ばれるため、
変数の寿命が終わるとすぐに資源が返却されることが保障できるようになった。これは
例外が起こったときでも同様であるため、RAIIは例外安全なコードを書くための鍵となる
概念となった (Sutter 1999)。

593 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 10:43:44 ]
C#でもusing構文を使えばRAIIできるね
Javaはこれができないから困る

594 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 10:50:18 ]
Javaでもtry/finallyを抽象化したシンタックスシュガーないし何かを作れば
いいんだろうけど、そういうものは提供しないポリシなんじゃないかな?

メソッドの設計で抽象化するか。

595 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 10:51:19 ]
>>587
ポリモーフィズムが使えるだけで随分差が出てくると思う

596 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 11:14:52 ]
RAIIが重要なのはリソース解放を言語側に保証させることができるから。
名前に反して初期化時のリソース確保は重要じゃないよね。


597 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 11:17:18 ]
>>594
言語仕様を単純化したいんじゃないかね
せっかくGCがあるんだから、
全てのオブジェクトの寿命は無限ということにすれば話が単純になる



598 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 11:19:22 ]
元々は初期化側がRAIIの主眼だったんだろうけど、
正直そこはどうでもいいよね

599 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 11:22:56 ]
>>597
RAIIに必要なのはオブジェクトの寿命管理じゃなくて
あくまでオブジェクトの持ってるリソースの寿命管理だから
オブジェクトは死ぬ必要ないのよ。
C#だってそう

600 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 13:01:04 ]
どんだけ時代遅れ。
ガベコレを搭載してる実装系ではガベコレがアプリ本体と別スレッドで動いていることすらある。
すると削除するタイミングなんかは全く保証されないから、
デストラクタ自体を書かないのが推奨される作法になる。

601 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 13:08:20 ]
は?
RAIIはガベコレを通さないんだが

602 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 13:11:25 ]
いや通してもいいだろ
終了処理をメモリ破棄のタイミングより早く行えばいいだけ

603 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 13:14:05 ]
C#で実現できてるんだから
全く問題ないわな

604 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 13:41:31 ]
オブジェクトが不要になったときにユーザが任意で呼ぶのがデストラクタ、GCが呼ぶのはファイナライザ(ときにデストラクタ)
>>600が言ってるのは後者で、RAIIで使うのは前者

605 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 21:52:52 ]
RAIIで管理するのはメモリだけじゃない。
典型的なのがファイルのclose。
GCとRAIIは共存できる。
>>600は無知。

606 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 22:09:22 ]
まあファイルのcloseは失敗する事もあるので
なるべく自前でcloseした方がいいんだけどね
ネットワークドライブ上のファイルとか

607 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 00:36:37 ]
デストラクタの中で自前でcloseしてるだろ・・・



608 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 07:58:24 ]
ファイルのクローズって失敗してもほとんど対処のしようがないよね?
以後の動作を保証できないとしてアプリを異常終了させるぐらい?

609 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 08:27:12 ]
で?

610 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 16:32:20 ]
自前でクローズしてもいいことないって話だろ?

611 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 16:40:07 ]
自前でクローズしないで誰がクローズするの

612 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 17:58:41 ]
ファイナライザ

613 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 18:02:55 ]
ガベージコレクションはいつ起こるかわからないから、
気がついたらファイルハンドルが足りないかもしれない。

614 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 19:13:12 ]
>>613
明示的に呼び出せばいいじゃないか
System::gc(System::GC_FULL);
とか


615 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 19:30:22 ]
ユーザが把握してる変数から参照がにたたれたとしても内部的には参照が残ってる可能性ってあるし
実装によってはFalse Pointerの影響で回収しきれない可能性とかもあるしなー
GCに完全に任せきってしまうってのはこわいよ

616 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 23:53:03 ]
ドラゴンブックの第二版が去年の6月に出たらしいけど評判はどうなの?
>>6の本の一番上の奴の改訂版)

www.saiensu.co.jp/?page=book_details&ISBN=ISBN978-4-7819-1229-5&YEAR=2009

617 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 00:20:19 ]
>>616
表紙が派手になった
最新のコンパイラ技術に基づいて若干修正されている
初版を読了後に論文誌を漁っている人は買わなくてもOK
言語処理系に興味があって初版知らない人は読むべき






618 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 01:02:55 ]
組版がきれいになった
訳語も現代語により近く、読みやすくなった気がする
本質的な部分ではないかもしれんが、こういう改良は大切だと思う

619 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 04:40:37 ]
このスレは居心地良いな。スレの内容も面白いし話題の切換も引きずらない。

620 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 04:47:56 ]
しかし目新しい話題は少ない

621 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 04:59:00 ]
でも、意見が違うからと言って、アスペルガーと言って意見を封鎖するのは止めないか?
医療関係のプログラムを組んでるけど、複数のドクターが言うには簡単にそんな診療、簡単にできないし、
相手が傷ついて、まともな論争に出来ないという。
相手の反論を封じるために、言っている、自己中心者が多くて困ってると複数のドクターが言っている。

622 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 05:05:09 ]
デザインかっこいいのもいいな
英語のソフトカバー版買ったら表紙がちっともドラゴンじゃなくて後悔してるw

623 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 05:07:06 ]
逆に、そう言う方がアスペルガーに近いと言われた。
>>620
まあ、枯れた技術だけど、実装には興味がある。
OSとコンパイラはプログラミングの中でも特別視されるしね。
少ししか進まなくとも議論の余地がある。
次はmanycoreの時代だし、議論の余地はいっぱいあるよ。
しかし、ネットッブックのおかげで、ボトムが4-5年前に戻ってしまったのが不幸。
ネットブックだとJAVAは凄く重い。
こんなのが2-3割の市場だとすれば、進化は遠のく。

624 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 05:37:20 ]
Javaなんてネットブックが出る前から企業向けでしか使われてないじゃん

625 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 05:49:41 ]
>>623
ネットブックで使いたくなるようなJavaアプリケーションなんてあるの?

626 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 05:56:30 ]
Javaはただの喩えでしょ
メニーコア前提の言語や処理系が出てきてもそれが生かせない貧弱な
プラットフォーム(ネットブック)が一定のパイを持ってるのは足かせになって
不幸って話だと思うぞ

627 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 06:00:29 ]
そもそもネットブックをPCと考えるからいけないのであって、
図体のでかいスマートフォン程度とおもっとればいいんだけど、
問題はPCと思って買っちゃう残念な消費者が殆どなこと



628 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 06:45:42 ]
やはり最適化は今も必用か。

629 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 06:46:24 ]
アセンブラもねw

630 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 07:40:59 ]
> 逆に、そう言う方がアスペルガーに近いと言われた。
 ↑典型的な議論封鎖ではある。

631 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 09:47:15 ]
バッテリーとかなくても機器が動けば
もっと無茶できる

t-01a, nexus one 眺めながら

632 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 14:32:47 ]
アスペルガーだと指摘される方も指摘する方もアスペルガー。

633 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 18:20:42 ]
>>632
じゃあ、あなたもそうなるよw

634 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 19:39:21 ]
自己言及的

635 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 00:05:00 ]
べつにガオガイガーでもハンバーガーでもいいよ
良い処理系作れれば

636 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 00:10:16 ]
オパオパ

637 名前:616 mailto:sage [2010/03/25(木) 00:41:36 ]
>>617-618
ありがと、実は大学時代にお世話になった先生が訳した本なんで気になってたんだ。
昨日、図書館でドラゴンブックの第二版を借りてきたんで
初めの方をじっくり読んで、買おうかどうか決めたいと思います。



638 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 00:44:49 ]
こんなところで言及されたら先生は迷惑だろw

639 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 01:35:57 ]
天才は何かに固執する人が多いから、アスペと勘違いされている人が多いね。

640 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 01:44:59 ]
まだそのネタ引っ張るんだキミ。

641 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 01:59:30 ]
すまん。今は翻訳者の先生の話だよなw

642 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 15:41:11 ]
>>633
たぶんアスペルガーだから問題無し。

643 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 08:43:19 ]
いい加減うぜえな
エロゲばっかやってるとこうなるのか?

644 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 09:30:22 ]
何故エロゲに結びつける。コンプレックスかw

645 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 09:31:56 ]
エロゲ用エンジンぐらいしか、言語設計をする機会がない現実。

646 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 09:37:50 ]
ま、わざわざDSLを自前で定義するより、
こなれた汎用スクリプト言語を埋込みで使った方が楽だからな。

647 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 09:39:24 ]
それにしても前のエロゲ屋の技術は中々良かったな。
他の会社はXMLか。それも凄いな。
エロゲ、侮れない。



648 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 09:42:27 ]
ネットブックという足かせがエロゲにある限り最適化は進むんだろうな。

649 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 10:17:34 ]
その昔パソコンゲームがApple][にとりつかれてたようなものか?

650 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 12:50:13 ]
6502か。ゼロページは便利だった。FCでも使われたな。

651 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 12:59:40 ]
エロが世界最先端な国は日本ぐらいのもの

652 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 13:17:25 ]
FPSがPCの性能を先導してる国もどうかとw

653 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 15:35:04 ]
エロゲも侮れないんだな。

654 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 15:36:47 ]
>6502か。ゼロページは便利だった。FCでも使われたな。
65C02拡張のPC-Engineは作ってて楽しかった
65816のスーファミはVDPが楽しいけどCPUはいまいちだった

今だとARMプロセッサ向けのコンパイラ作るのが割と楽しい
86系だと自力でコード出さないでCとかを中間言語にしてintelCにコンパイルさせるような形の方がいいコードできるから


655 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 15:44:47 ]
今ARM勢いあるよな。

656 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 15:50:14 ]
>>655
勢いがあるのもあるが
ARMのアーキテクチャがstackマシンの素性からそんなに離れていないのでJITのコード変換がすごくやりやすい
マルチスレッドでGC付きの言語をJITで落とし込む際にクリティカルセクションなしでもコンパクションGC作ったりできるような事とかができておもしろすぎる

X86みたいに命令が複雑多岐じゃないせいでもあるけど、実装自体が楽しいのは本当に久方ぶりだよ

657 名前:デフォルトの名無しさん [2010/03/26(金) 20:35:57 ]
なるほど、エロゲ向けだな。



658 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 02:38:47 ]
特にインタプリタの話なんだけど、ベースライブラリは何を使ってる?
日付/時間とか、スレッドとか、ネットワークとか、いろいろ
自前でマルチプラットフォームにする気は起きないし、
ライセンスの問題もあるから難しいよな。
wxはいいけどC++になっちゃうし、glibだとGPL食らうし

659 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 02:43:32 ]
boost

660 名前:デフォルトの名無しさん [2010/03/28(日) 03:50:47 ]
自前。

661 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 04:11:06 ]
俺も自前だな。

662 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 04:57:28 ]
Cで自前。会社じゃ当たり前。

663 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 05:45:31 ]
会社じゃ安全なライブラリを買うか自前だよな。

664 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 06:46:51 ]
>GLibを動的リンクにて使用する場合に限り、ソフトウェアを
>製造、販売が可能になります。

DLLに固めて使うなら大丈夫でなかたっけか…lgpl ver2.1+だっけ…
まるまるスタティックとかOSごと積むとかは
また違うとは思う。でもできれば自前が一番いい

665 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 07:04:30 ]
LGPLで外部DLLはよく使われる手だよね。
何かあっても外部DLLのソースの公開だけで済む。

666 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 07:06:57 ]
ていうか、コンパイラスレでこんな論議必用か?
コンパイラ組めるなら自前で全部出来るだろう。

667 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 08:27:32 ]
ライブラリは外部のものを流用できるように作るものだ



668 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:31:01 ]
投入できるリソースは限られているのだから、
一番注力したいところに集中的に投入するのが良い。

669 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:34:01 ]
>>666
そりゃ何だって自分でできるさ。
自分の家だって時間さえあれば自分で作ってみせる。

670 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:43:35 ]
そんなにたいした共有ライブラリじゃないだろ?
せいぜい2週間しかかからないよ。

671 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 17:00:02 ]
「共有」ってわざわざ付ける意味は?

672 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 17:40:57 ]
頭痛が痛いと同じ表現だったな。すまそ。

673 名前:デフォルトの名無しさん [2010/03/28(日) 18:51:26 ]
つか、そのままGPLじゃまずいのか?

674 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 19:15:56 ]
>>673
「秘すれば花なり、秘せずば花なるべからず」

675 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 19:55:54 ]
>>673
そりゃフリーな実装ならいいけどさ
バイナリ納品でメンテ契約あり、ようするにソースコードでの自社のノウハウは出したくないとかあるときはGPLは使えないだろ


676 名前:デフォルトの名無しさん mailto:さげ [2010/03/28(日) 21:46:21 ]
いや、それはわかるんだけど
いままで請求されたことないし
ぶっちゃけ、ソース出てもノウハウは出ないってw

677 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 00:12:46 ]
最低だなお前
すべてにおいて



678 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 03:27:14 ]
>>656
armはcpuは普通につかえるが
ペリフェラルが使いにくいのが多いんよね

679 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 09:36:51 ]
>>678
組み込みのCPUはDMA,IRQ以外って高機能なデバイスを無理矢理つっこんでるのでレジスタの設定がメチャクチャめんどくさかったりするけど
そういう意味の使いにくいってことかな?


680 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 11:54:11 ]
PICは使いづらいね。そー言えばエロゲ屋の人もPICは無理でAVRは作ったって行ってたね。
PICのレジスタは地獄。PIC16でようやくまともになった。

681 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 11:55:02 ]
picはウンコ
ARM使えよ

682 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 17:13:01 ]
どっかのarmでdmaが一転送あたり32回しか回らないのあったな
毎回チェーン使うのは無駄くさい

683 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 17:46:12 ]
組み込みCPUはたいてい
外部ピンがMuxされてるから
余計にめんどいんだよな

684 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 18:13:37 ]
>>682
ポーリングするのかw
PIOで素直に転送した方がましだねw

685 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 20:53:56 ]
>>684
よせよ、CPUもったいねぇじゃねぇか


686 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 20:58:30 ]
基本はHLTだよな

687 名前:デフォルトの名無しさん [2010/03/30(火) 02:26:12 ]
だよなampmだよな。



688 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 08:56:33 ]
>>684
最大32回をチェーンでつないだら
たくさん送ってくれるから
PIOよりゃましだがチェーン必須はめんどいw

689 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 12:56:22 ]
中田育夫氏の最適化の本ってどうなんでしょうか?
基本的な機能を備えた言語で論理的な部分からどの様な最適化が一般に可能か、について調べています。
定価が10000円だったみたいですが、そんなに特別な本なのでしょうか?

690 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 13:59:17 ]
日本語しか読めなければ、他に選択肢はない。
ドラゴンブックくらいしか。


691 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 14:21:23 ]
中田さん懐かしいな

692 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 14:24:26 ]
どのような方法があるかを調べるだけならググるで十分な気もするが。

693 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 18:17:37 ]
美しい日本のMLコンパイラとかね。

694 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 22:13:42 ]
ドラゴンブックにのってて中田本にないものってある?

695 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 03:55:47 ]
逆はあるな
りんご園とか

696 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 19:50:02 ]
りんご園てなに?

697 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 20:11:27 ]
>>696
スモールコンパイラの制作で学ぶプログラムのしくみ



698 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 21:05:42 ]
りんご園とコンパイラでぐぐってみたら変わった本が出てきたけど、そういうことか。thx

699 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 23:10:25 ]
>>695
あれは監修だけだから中田本とは違うんじゃ?


700 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 03:12:48 ]
「これは文系のセンスで書かれたコンパイラの本です。」
--中田氏推薦の言葉はこの一文から始まる。
この言葉に魅力を感じつつ、実際に購入して読んでみたが、
読み進むにつれ、この言葉の皮相さがだんだんと理解されてる
ことになる。
どうやら、ここで言う「文系のセンス」とは、
1.「ストーリー仕立て」でとっつきやす「そうな」文章、
2.全編を通して出てくるリンゴの比喩
主としてこのことを指しているようだ。
しかし、まったくもって残念ながら、
1.は決して名文とはいえない拙い言い回しが散見されるところどころ設定に無理がある稚拙な「ストーリー」であり、
2.はかならずしも的を得た比喩とはいいがたい代物で読み進めるにあたってかえって理解の邪魔になるといったものだ。
とりわけ2.を称揚しているかにも見える「推薦の言葉」は少なからぬ問題を孕んでさえいると思う。
比喩において、喩えられる対象と喩えそのものにおいては、
互いの概念の抽象度合い(というか抽象化のレベル)がきちんと符合しているべきである。しかしながら本書においては、そのレベルがまちまち、バラバラであり、必ずしも適切な比喩でないものが実に多い。
読み進むにつれ、拙い比喩表現を「文系のセンス」などと言ってしまう無神経な理系の教授と、「文系の持ち味を生かした」と悦に入っている無神経な文型の学生。どうしてもそういう印象がもたれてならないのだ。
本来よい比喩のための「センス」に文系も理系もないのであり、あるのは明晰な概念把握、適切な抽象化、適切な想像力これらに関する「センス」があいまってはじめてよい比喩表現が可能になるのだと思う。
そしてよい比喩表現だけが、複雑な物事を理解する助けとなるのである。
「ただ単にたとえればいいってもんじゃないんだ!」と声を大にして言いたい。

701 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 03:46:26 ]
>>700
どの本の推薦文?

702 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 03:57:55 ]
りんご園

703 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 18:48:14 ]
りんご園は読まない方が良いよ
教科書の丸写しに訳の分からない説明を加え
JAVAで書き直した。そんな本

704 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 19:50:32 ]
というか比喩なんてどうでもいい。
比喩を排除するために数学的記述があるのだから。

705 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 20:28:39 ]
>>699
監修しちゃった以上責任はあるだろw
推薦の言葉なんて書いてる場合じゃなくて出版止めるべきだったとしか思えないレベル

706 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 20:47:32 ]
>>705
学術書じゃなくて一般人向けの本に何を期待したんだ?


707 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 09:27:52 ]
関数型言語のコンパイラを解説した本てある?



708 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 09:40:14 ]
Modern Compiler Design in ML
分量はたいしたことないけど後ろの方にあった

最近和訳出てたよね?


709 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 21:15:14 ]
>>707
MSRのサイモン・ペイトン・ジョーンズのページも見て。
research.microsoft.com/en-us/um/people/simonpj/papers/papers.html

710 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 22:37:20 ]
>>708
少し違ってModern Compiler Implementation in MLのことだろうか。

その翻訳本の「最新コンパイラ構成技法」を見てきたけど1章が関数型に費やされてたわ。
まあでも頁数のためか、思いつくような事が難しく高級に書いてある感じで終わってたが

711 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 22:10:11 ]
>>710
俺も立ち読みしたけど、訳が悪いと思うなぁ。
いや、悪くはないんだけど、堅い。

原文はそんなに難しい英語ではないし、学部生向けの教科書
だと思った

712 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 20:23:06 ]
GPPGでBisonのYYDEBUGでのデバッグ機能を使用したいのですが、同様の機能がありますでしょうか?
どんな解析がされたのかがわからなくて辛いです(。>д<。)
今はConsole.Writeを実行して、どのような解析がされたかを確認してます。


お忙しいところ申し訳ありませんが、どなたかよろしくお願いいたします。

713 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 20:24:02 ]
>>712
俺の研究室の学生っぽいからダメ

714 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 21:13:00 ]
身内ならなおさら、こんぐらい教えたれやw

715 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 21:56:39 ]
ドキュメント読めば書いてあるよ
HTML吐かせたりできたはず

716 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 22:16:06 ]
   ( 。>д<。)


(。>д<。 )


 ( ゚д゚ ) 

717 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 00:45:08 ]
英語の勉強もかねてるんでしょうね。
でも、大変そう(w
plas.fit.qut.edu.au/gppg/files/gppg.pdf
ドキュメントってこれっすよね。きっと
上から眺めたらそれっぽいのを見つけられたよ。
一字一句を訳してると死ぬほど時間掛かるから、ざっくり眺めてみるといいのでは?
htmlとかなんとかって書いてあったのでたぶんこれだろう。
34ページしかないので、10分くらい眺めてみては?



718 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 03:26:08 ]
最初はちゃんと読んでいんじゃない
そのうち斜め読み出来るようになるし

719 名前:712 mailto:sage [2010/04/29(木) 12:47:45 ]
皆様返信ありがとうございます。
GW中に調べてみますv(^ ^

ちなみに、私はサラリーマンなので713さんの後輩ではないと思いますよ。
私の場合は自力で調べてみますが、後輩には優しく教えてあげてくださいね。

720 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 14:13:39 ]
やさしく教えるのって結局質問者のためになってるのかな
突き放した方が良い場合もある(そっちの方が多い)んじゃないか

721 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 14:16:04 ]
>>720
要は主体的に動かすための動機づけが重要なんだよ。
手取り足取り何もかも用意してやるのも害になるし、
突き放して何も与えないのも害になる。
さじ加減が重要だよ。

722 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 14:18:28 ]
教育には、○○をすれば必ずうまくいく、なんていう銀の弾丸はなくて、
人それぞれさじ加減を変えないとうまくいかないんだよ。

723 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 00:57:30 ]
組み込み系言語総合スレは何処に

724 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 01:09:32 ]
立てたよ。

【Lua】組み込み系言語総合 その3【Squirrel】
pc12.2ch.net/test/read.cgi/tech/1272643397/

725 名前:デフォルトの名無しさん [2010/05/08(土) 02:33:42 ]
ANTLRの質問です。
JAVAも初心者なんですが、日本語(UTF-8)のコメントが入った*.gを
ANTLRにかけるとエラーが出るんですが、何とかならないでしょうか?

726 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 07:05:26 ]
>>725
options 節でcharVocabularyの範囲を指定すると通るよ
charVocabulary = '\u0000' .. '\uFFFE';


727 名前:725 mailto:sage [2010/05/09(日) 21:54:07 ]
>>726
charVocabularyの指定ではダメでした。
後出しですいませんが、使っているのはANTLR3で、
何となく、ANTLR3から使えないような気もします。




728 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 20:08:20 ]
FORTH系でスタックの深さをインデントの深さで表現するって言うのはどうだろう
1 + 2 * 3 + 4 / 5

1 2 3 * + 4 5 / +

1
2 3
あれ?


729 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 20:24:18 ]
あんまり見栄え良くないよ。


1 2 3
 *
+ 4 5
 /
+

730 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 00:25:27 ]
>>728
積んでから帰ってくるとか消費して帰ってくるのとかがキモく見えるだけじゃないか?
今まで通りスタックの伸縮についてコメントで記す方式で十分な気がする

だいたいわかんなくなる位巨大なワード組まないようにすべきだと思うし


731 名前:728 mailto:sage [2010/05/22(土) 17:56:42 ]
いや、
1 2 3 4 5
+
で、(1+2+3+4+5)が計算できると、いいかと思ったんだ。
このスタック位置まで繰り返しみたいな。

732 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 18:02:26 ]
本格的にparserを実装したいならIronyを使う。
ただ計算だけできればいいならなにかインタプリタを使えばいい。

個人的にBooをおすすめしておく。
コンパイラにインタプリタに標準ライブラリまでついて1.45MBと軽くていい。

733 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 18:54:05 ]
>731
検討したことあるけど、後置のメリットをダメにするから止めたほうが良い。結局カッコ付けるのと変わらなくなるし。

734 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 18:57:09 ]
++ とやったらスタック内が1つになるまで加算する、
とかしたらいいんじゃない

735 名前:デフォルトの名無しさん mailto:sage [2010/05/22(土) 21:02:29 ]
>>731
それ括弧でくくってから呼び出し関数の名前を最初に書いたら単なるLISPじゃないのかな?


736 名前:デフォルトの名無しさん mailto:sage [2010/05/23(日) 16:18:33 ]
>>735
>それ括弧でくくってから呼び出し関数の名前を最初に書いたら単なるLISPじゃないのかな?
しー!、黙っていればわからないって!
見た目がPython風にならないかと思っただけ。
>>730
>今まで通りスタックの伸縮についてコメントで記す方式で十分な気がする
これで、IDEでワードを打ち込むと、前のキーワードの色が変わったりすると便利だな
でも、深さが任意のキーワードとかがあったらだめだろうけどな。


737 名前:デフォルトの名無しさん mailto:sage [2010/05/25(火) 23:57:02 ]
lemonとかcaperとかのプッシュ型パーサージェネレーター使ってる人いる?



738 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 01:40:55 ]
caperは使ってる、でかいの書いたらコンパイル時間がたまらん事になった

739 名前:737 mailto:sage [2010/05/26(水) 12:48:47 ]
プッシュ型パーサーって入力の終わりを示すトークンを自分で入れるでしょ。
あれがどうもやりにくいというかピンとこないというか。

対話型でスクリプトを入力するようなやつ(ぶっちゃけるとlisp)で
単純に改行を入力の終わりと出来ないやつは一体いつ終了トークンをプッシュするんだと。
「全ての左括弧と右括弧が対応したかを自分で検査してtoken_eofをプッシュ」ってやんのかな?あれ?

740 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 21:47:01 ]
それでいいんじゃね、字句解析機でネストレベルを覚えとくのは普通にやる。
あと、プッシュ型パーサは字句解析と構文解析の間で小細工できるのが便利だと思う

741 名前:jonigata mailto:sage [2010/05/26(水) 21:56:43 ]
なるほど……

スペース的なトークンを用意したら
なんとかなったりしないかな?

それはそれで文法作るの面倒かしら

あるいは、改行のところでパーサのインスタンスを保存して、
改行にあわせて無理やりeof打ち込んで、
エラーになったら保存したインスタンスを復帰してどうにかするってのは
どうでしょう

742 名前:737 mailto:sage [2010/05/26(水) 23:46:56 ]
>>740
> それでいいんじゃね、字句解析機でネストレベルを覚えとくのは普通にやる。 
即効性で言っても多分それが一番かなぁ。

>>741
> スペース的なトークンを用意したら 
> なんとかなったりしないかな? 
外側の都合が文法に影響するのはなんとなく気持ち悪い気が…。

> あるいは、改行のところでパーサのインスタンスを保存して、 
> 改行にあわせて無理やりeof打ち込んで、 
> エラーになったら保存したインスタンスを復帰してどうにかするってのは 
概念的には一番わかりやすいと思うけど、
括弧が閉じられた後、改行が来るまでに別のトークンが来ないとも限らないのが…。

(defun foo ()
  5) (foo)

とかだったら
==> foo
==> 5

みたいにfooの定義とfoo呼び出しの戻り値5が返って欲しいし。

743 名前:jonigata mailto:sage [2010/05/27(木) 00:15:48 ]
それはトップレベルがS式のリストじゃだめ?

それも気持ち悪いor実はそんなことじゃ解決しない
ということであれば、何をどうできればいいかなあ
eofを仮にpostしてacceptするかどうかだけ判定する
メソッドとか?

一切コーディングせずに妄想だけで言ってるけど!


744 名前:737 mailto:sage [2010/05/27(木) 08:56:44 ]
> それはトップレベルがS式のリストじゃだめ?
あ、なるほど。そう考えたら「パーサのインスタンスを保存して〜」で問題ないのかな…。
まだやってないけどメソッドの追加はいらなさそうな気がします。
実際試すまでちょっと間が空くかも知れないけどまた報告に来ます。

745 名前:737 mailto:sage [2010/05/30(日) 14:46:41 ]
とりあえずやったこと書いてみます。
まず、字句解析器から受け取ったトークンをcaperにプッシュするループのところに以下の部分を挟みました。

    if( token == token_LINE_FEED ){
        Parser< Value, SemanticAction > backup = parser;
        if( parser.post( token_eof, 0 ) ){
            break;
        }
        parser = backup;
    }

と、backupを書き戻そうとしたところでoperator=使えないというエラーが。
で、Parserクラスに代入演算子を入れました。

public:
    self_type& operator!=(const self_type& other)
    {
        if (this != &other) {
            accepted_       = this->accepted_;
            error_          = this->error_;
            accepted_value_ = this->accepted_value_;
            stack_          = this->stack_;
        }
        return *this;
    }
};

これでエラーは無くなりました。
(つづく)


746 名前:デフォルトの名無しさん mailto:sage [2010/05/30(日) 14:46:58 ]
じゃあさ、SQLでViewが画面とかどうだろう。
入力困るけど。

747 名前:737 mailto:sage [2010/06/01(火) 10:44:02 ]
次に今までS式が最上位だった所へ更に上を追加しました。

Top<int>                 : [] 
                         | [] Top Datum(0)
                         ;

とここでふと疑問が。
・全体をS式の列として受理するとして、スタックに積む値の型はどうなるの?

typedef boost::variant<std::string, int, bool, Sexp *> Value;

となっていたのが
typedef boost::variant< std::string, int, bool, Sexp *, std::list< boost::variant< std::string, int, bool, Sexp * > > > Value;

とでもなるのかな?えー。

…SemanticAction内でYYACCEPTに相当する何かを行った時にも
postでtrueを返せばbisonの置き換えが楽そうな気がするんだけど。





748 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 17:43:52 ]
中田の新しい本は何が変わりましたか?

749 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 18:54:51 ]
>748
ちょっと自分で調べといて
おれ忙しいから


750 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 22:12:22 ]
>>748
新刊でたの?、それとも改訂版?


751 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 22:21:56 ]
>750
ちょっと自分で調べといて
おれも忙しいから

752 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 22:24:16 ]
>>751
そんなこと書き込んでる間に調べられるだろう

753 名前:デフォルトの名無しさん mailto:sage [2010/06/05(土) 13:31:54 ]
>>750
2版が出た

754 名前:デフォルトの名無しさん mailto:sage [2010/06/05(土) 17:06:45 ]
>>745 >>747

型に関しては、単にリストをオブジェクトを用意すればよいのではないかな?

代入演算子とかはこれから実装しますです

YYACCEPT云々についてはちと考えます。

755 名前:デフォルトの名無しさん mailto:sage [2010/06/05(土) 19:48:52 ]
良く見たらoperator!=になってるw






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<174KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef