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


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

『コンパイラ・スクリプトエンジン』 相談室 2



1 名前:nanashi de fault [02/05/12 02:05]
前スレ1より
>yaccやlexの使い方やら言語仕様やらの話題。

前スレ

【コンパイラ・スクリプトエンジン】相談室
pc.2ch.net/test/read.cgi/tech/981672957/

前スレアーカイブ(かちゅ用)
www.1me.jp/hp/prg_c-s_lab

前スレに張られたリンク + x
>>2-6

552 名前:デフォルトの名無しさん mailto:sage [03/03/24 12:57]
>>551
たしか予約語を中間コードに置き換えるようなことはやってたと思うが。
でも構文チェックをしたり構文木を作ったりは当然しない。

553 名前:デフォルトの名無しさん mailto:sage [03/03/24 16:41]
>>551
N88しか知らないけど、runした瞬間に出るエラーもあるよ。
for〜nextの対応関係だったかなぁ。

554 名前:デフォルトの名無しさん [03/03/26 22:14]
その中間言語って、なにか規格みたいなものあるの?
それともデファクトスタンダードな仮想マシンがあるの???


555 名前:デフォルトの名無しさん mailto:sage [03/03/26 22:19]
>>554
そんなもんは無いです、当時は中間コードの利用目的は高速化とプログラムのメモリー占有サイズの削減が目的。
わずか数キロバイトにプログラムを収めるのにTEXTデータは大きすぎたのです。

556 名前:デフォルトの名無しさん [03/03/27 03:20]
つまらんこと聞きますが、まぁバグはあるにせよ、VC++って異常に的確な
エラーメッセージを吐き出しますよね。
LALR(1)で解析してて、あんなことってできるもんなんですか?
yaccとかだと、ちょっとerrorを突っ込んだだけでconflict起こしますよねぇ。
LR(1)とかだったらそこいらじゅうに、擬似シンボル埋め込めばできなくも
なさそうな気はしますが、、、
そのへんってどうなんでしょう?

557 名前:デフォルトの名無しさん [03/03/27 03:54]
>>555
THANX



558 名前:デフォルトの名無しさん mailto:sage [03/03/27 11:42]
>>556
「異常に的確なエラーメッセージ」の例を挙げないと、
答えづらいと思うよ。




559 名前:デフォルトの名無しさん [03/03/27 20:00]
>>556
異常に典型的なミスを犯しているだけでは?(w


560 名前:デフォルトの名無しさん mailto:sage [03/03/28 17:07]
VCのエラーメッセージって異常に意味不明なものが多いと思うがな。



561 名前:デフォルトの名無しさん mailto:sage [03/03/29 01:13]
「予期せぬ EOF が検出されました」
のどこが的確なメッセージなのかと、小一時間t(ry

562 名前:デフォルトの名無しさん [03/03/29 16:28]
やはり、>>559だろう


563 名前:デフォルトの名無しさん mailto:sage [03/03/29 18:30]
>>556
>つまらんこと聞きますが、まぁバグはあるにせよ、VC++って異常に的確な

具体的にどの辺が的確なエラーメッセージだと思ったのか、書け。


564 名前:デフォルトの名無しさん mailto:sage [03/03/29 19:04]
>>559-563
煽りは死滅スレでやれや


565 名前:563 mailto:sage [03/03/29 19:24]
>>564
煽りに見えてのはお前だけだと思われ。
もし>>556=>>564だとしたら被害妄想だよ。
死滅スレ居座りすぎて病気になったか(w
説明不足を解消せよってだけ。

566 名前:デフォルトの名無しさん mailto:sage [03/03/29 19:27]
>>565
>>558がもう指摘してるじゃん。

567 名前:563 mailto:sage [03/03/29 19:45]
>>566
んなことわかってるよ。
これじゃ話が進まないから催促してるの。

568 名前:デフォルトの名無しさん mailto:sage [03/03/29 21:15]
563 は "(w" とかつけている段階で論外。
毎日見ていない人もいるだろう、そのうち書かれた時に理由を考えればいい。
ただ煽るだけで意味のないことするな。

569 名前:デフォルトの名無しさん mailto:sage [03/03/29 21:49]
結局556がアホなだけだな。

570 名前:デフォルトの名無しさん [03/03/30 20:24]
インタプリタの中間コードは8ビットが普通ですか?
いきなり32ビットとはしてるものはありますか?




571 名前:デフォルトの名無しさん mailto:sage [03/03/30 20:35]
>>570
Java。全て4バイトがベース。

572 名前:デフォルトの名無しさん [03/03/30 20:52]
皆さんのお力でぜひぬるぽをageて下ちい。
  ∧_∧
 ( ´∀`)< ぬるぽ

ぬるぽ 投票ヨロシク
pumpkinnet.to/ranking/words/


573 名前:デフォルトの名無しさん mailto:sage [03/03/30 21:50]
Javaは8bitじゃないのか?

574 名前:デフォルトの名無しさん [03/03/31 00:29]
そういえば、java関係の本はそれこそ腐るほど(?)あるが、
バイトコードとか仮想マシンの説明をしてるものってある?


575 名前:デフォルトの名無しさん mailto:sage [03/03/31 00:49]
>>574
オライリがバーチャルマシン仕様の解説本出してるよ。

576 名前:デフォルトの名無しさん mailto:sage [03/03/31 00:50]
>>574
本屋で立ち呼んだ記憶があるからあるんじゃない?

577 名前:デフォルトの名無しさん mailto:sage [03/03/31 02:52]
ソースコード読めばいんじゃないの?
そこまでやるのはちょっと、、、という
のなら、そもそもVMの勉強なんてしなくても
いいんじゃないの?

578 名前:デフォルトの名無しさん mailto:sage [03/03/31 03:31]
Structured Computer Organization by Andrew S. Tanenbaum
www.amazon.com/exec/obidos/tg/detail/-/0130959901/

にちょっとだけ説明があります。
オペコードが1バイトで全体としては1〜3バイトのがほとんどだそうです。

java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html
のどこかに説明あるかと思いましたが、発見できませんでした。
見落としあるかもしれません。

あとamazon.comをjava virtual machineで検索すると7冊ほどひっかかりますね。
www.amazon.com/exec/obidos/search-handle-url/index=books&field-keywords=java%20virtual%20machine&search-type=ss&bq=1


579 名前:デフォルトの名無しさん [03/03/31 04:36]
WSHとかってプログラム上から使ってその結果を受け取ることは出来ないのでしょうか?
MSDNを見ますと「IActiveScript」と言うのが在るのですが,
いまいちサンプルが乏しくて困っています.

580 名前:デフォルトの名無しさん mailto:sage [03/03/31 04:43]
一通りの使い方ならRuby256本の邪道編に書いてあった気がするが。
スレ違いじゃないか?



581 名前:579 mailto:sage [03/03/31 19:20]
IActiveScriptってWSHにRubyとかの他の言語拡張するための
インターフェイスなのですか?
今考えているソフトでWSHスクリプトファイルをユーザに用意してもらい,
そこに書いているスクリプトを実行することによってアプリケーションの
挙動を変化させたいと思っています.
WSHあるいはJSCRIPT,VBScript等をプログラム上でロードして実行させる
方法が知りたいです.
よろしくお願いします.

環境:
VC++ 6.0
IE Ver 6.0.2


582 名前:デフォルトの名無しさん [03/03/31 20:09]
>>577
何のソースコードを読めばいいの?
VMのソースコード?それって公開されてるの?



583 名前:デフォルトの名無しさん mailto:sage [03/03/31 20:19]
良い子は検索したり、過去ログ読んだりします。

584 名前:デフォルトの名無しさん mailto:sage [03/04/01 01:40]
<死ね>
www.amazon.co.jp/exec/obidos/ASIN/490090063X/qid%3D1049128711/250-2465643-1535410
www.amazon.co.jp/exec/obidos/ASIN/489471356X/qid=1049128646/sr=1-1/ref=sr_1_2_1/250-2465643-1535410

VMはオープンソースのプロジェクトがいくつかあったはず。
GNUにもあった気がする。
俺が知ってるのはOSがマイナーなんで言ってもしょうがない。
</死ね>

585 名前:デフォルトの名無しさん mailto:sage [03/04/01 01:43]
<死ね target=">>582">
www.amazon.com/exec/obidos/ASIN/3540420886/qid=1049128836/sr=2-2/ref=sr_2_2/104-8886811-5842366
全部読んだわけではないが書き方が変わってるんでVMの勉強としては素直に薦められない。

www.amazon.com/exec/obidos/ASIN/0201432943/qid=1049128836/sr=2-1/ref=sr_2_1/104-8886811-5842366
は上にあげたとおり邦訳が出てるんでそっちを読め。訳に問題はない。

あとの洋書は大体到着待ち。
</死ね>


586 名前:デフォルトの名無しさん mailto:sage [03/04/01 02:32]
>>582
www.kaffe.org
とか…

587 名前:デフォルトの名無しさん [03/04/05 17:27]
いろいろと参考になりますね、この擦れ。
ところで、JAVAのVMがやはり事実上のスタンダードになりつつあるのでしょうかね?


588 名前:デフォルトの名無しさん mailto:sage [03/04/05 17:33]
現状はそう。

でもCLRとかParrotとか、未来の可能性は閉じてはいない。

589 名前:デフォルトの名無しさん [03/04/05 17:35]
>>587
なんの事実上のスタンダード?
VMといえばJavaのVMってことか?

590 名前:デフォルトの名無しさん [03/04/05 17:57]
>>581
やり方が分かったら連絡してくれ.



591 名前:デフォルトの名無しさん mailto:sage [03/04/06 02:48]
>>587
スタンダードというか、参照・参考にするのに比較的お手軽なのは確か。

592 名前:デフォルトの名無しさん [03/04/08 21:55]
VMってJAVAスクリプト自体は解釈できんのね?


593 名前:デフォルトの名無しさん mailto:sage [03/04/08 22:17]
JavaとJavaScriptは何の関係も無い(たしか)

594 名前:名無し mailto:sage [03/04/09 01:24]
VMが理解できるのはバイトコードだけかと

595 名前:デフォルトの名無しさん mailto:sage [03/04/09 11:34]
はぁ?

596 名前:デフォルトの名無しさん mailto:sage [03/04/09 13:44]
>>593
そだね最初はNetscape社のLiveScript。でJavaが現れて
なんとなく名前をJavaScriptに変更。

www.howtocreate.co.uk/jshistory.html

つうかこれくらいはgoogleですぐ見つかるんだが…

597 名前:デフォルトの名無しさん mailto:sage [03/04/10 11:47]
Javaを意識してみたという点では、まったく無関係でもない。

598 名前:デフォルトの名無しさん mailto:sage [03/04/10 12:40]
>>597
ばーか

599 名前:コンパイラを勉強するには? [03/04/10 15:41]
今まで、業務でJavaを1年半使った以外、プログラム経験はありません。そのJavaもWeb系が主です。

こんな僕でも、コンパイラの事を理解する事ができるでしょうか?JavaCCと言うのをやろうとしているのですが、
これをやるには、Java以外の知識よりもプログラム全般に詳しくないとできないですよね?

『おまえには、まだ無理だ。そんなんじゃJavaCCなんて理解できるはずはない。』なんてことは、皆さん思いませんか?
それとも、私ほどの経験でもJavaCCを理解する事は可能なんでしょうか?

何年かかっても良いので、最良の道を行きたいと思っています。
それには、やはりC言語などからプログラムというものを理解し、一般のコンパイラ事情を知ってから、JavaCCに行った方が良いのでしょうか?

よろしくお願いします。

600 名前:デフォルトの名無しさん mailto:sage [03/04/10 15:50]
愛さえあればできるよ。



601 名前:デフォルトの名無しさん mailto:sage [03/04/10 15:52]
できちゃった♥

602 名前:デフォルトの名無しさん mailto:sage [03/04/10 16:15]
>>599
個人的にゃJavaって泥臭いとこを隠してるから一回Cでそういう所を
見た方がいい気がする。

UNIX使えるならシェル書いてみるのはどうよ。

603 名前:デフォルトの名無しさん mailto:sage [03/04/10 16:17]
Java慣れてるならJavaでいいじゃん。
なんで遠回りすんの?>602

604 名前:デフォルトの名無しさん mailto:sage [03/04/10 16:28]
んー?別にCで全部やれっちゅうワケじゃないのよ。
ただ、作ろうとしてるモンはJavaでもCでもない「別の言語」
だから他の言語との違いを知っとった方がいいかと思う。

605 名前:デフォルトの名無しさん mailto:sage [03/04/10 16:34]
あ、でもJavaってアプリ自身がJavaで書かれたコードを実行する機能を
持たれられた気がするな…

マクロとかだとそっちの方が早いか?

606 名前:デフォルトの名無しさん mailto:sage [03/04/10 17:50]
>>599
C yacc lex は書籍が多いから、それがいいかもね。
とりあえず C をマスターしておいて、整数だけbasicからjavaへのトランスレータとか作ってみたらどう?
でき上がったものは無意味だけど、やり方は理解できると思うよ。

607 名前:デフォルトの名無しさん mailto:sage [03/04/10 18:05]
(´-`).。oO(>602 コンパイラ作るのになんでシェルが関係あるんだろう?)

最終的に機械語やバイトコードに落とす必要は必ずしもないのだし、
そこまでいくには道のりは遠いので、まずは構文解析できるように
なればいいのでは。
ただ、言語を作るのはただツールをいじっていればなんとかなるものでもない。
きちんとしたものを作れるようになるには知識が必要なので、しっかりした
解説を読むべし。
Java + JavaCC で書いてあるwebなり本なりが見つかればそれでもいいし、
見つからなければCを覚えて本を読む方がいい。理論がわかればツールを使うの
はJavaCCだろうがyaccだろうがたいしてかわらない。

過去ログを見ればweb上の講義ノートもあったと思う。(前スレだったかも)


608 名前:デフォルトの名無しさん mailto:sage [03/04/10 18:24]
シェルスクリプトあたりからってことじゃないの

609 名前:デフォルトの名無しさん mailto:sage [03/04/10 18:40]
だとしてもなんでshなんだよ。
まだLISPでもやってた方がいいぞ。

610 名前:コンパイラを勉強するには? [03/04/10 19:55]
どうも、皆さん幅広いご意見ありがとうございます。
大変参考になったのですが、やはり難しそうですね。しかし、生まれつき、計算とかが
好きなものですから、話しを見ているだけで、とてもわくわくしてきます。

やはり、いきなり、JavaCCに入るのではなく、他の方から入っていく事にします。

もっといろいろ読みたいので、良ければみなさん、またいろいろ書いておいてください。

よろしくお願いします。



611 名前:デフォルトの名無しさん mailto:sage [03/04/10 20:36]
>>610
yacc lex なら、そんな難しいものじゃないから、習うより馴れろでガンガンいけばいいよ。
ただCは押さえて置かないと進むものも進まないから、Cはがんばってね。
多分なじみの薄い物で参考資料も少なく、yacc を使うにあたって必要不可欠なCの概念は union だと思います。
そこは気合で行ってくれ。

612 名前:コンパイラを勉強するには? [03/04/10 21:32]
気合で行くわ。

613 名前:デフォルトの名無しさん mailto:sage [03/04/10 21:38]
どうも、仕事で簡易スクリプトを作ることになりそう。
基本的には、引数付の関数呼び出しと変数への値代入程度
で済ませたいけど、制御構造も作らざるを得ないかも・・・。

まあ、ちょうどよい勉強と思ってやってみるつもりです。


614 名前:デフォルトの名無しさん mailto:sage [03/04/10 23:03]
仕事なら既存のやつ使った方がいいんじゃねーの?

615 名前:デフォルトの名無しさん mailto:sage [03/04/11 00:59]
この時期だし研修用でそ

616 名前:デフォルトの名無しさん mailto:sage [03/04/11 09:34]
>>614
アプリケーション組み込み物のスクリプトだと既存という訳にはいかんよ、作るしかないです。
仮にソースが取得できたとしても、殆どがGPLに侵されたコードで再利用は不可能だからね。

617 名前:デフォルトの名無しさん mailto:sage [03/04/11 12:46]
>>616
perlもpythonもrubyもtclもGPL以外での利用を認めてるが。

618 名前:デフォルトの名無しさん mailto:sage [03/04/11 13:17]
>>617
たとえば
www.ruby-lang.org/ja/LICENSE.txt
とかは?
近は過激な運動家がいたりして危ないから、そういう報流すのは良くないよ〜

619 名前:デフォルトの名無しさん mailto:sage [03/04/11 13:18]
近→最近

620 名前:デフォルトの名無しさん mailto:sage [03/04/11 13:37]
つーかGNU謹製のguileですら非GPLソフトへの組み込みを認めていたりするのだが。



621 名前:デフォルトの名無しさん mailto:sage [03/04/11 13:45]
>>620
お仕事用というのだから、組み込みよりもソースの公開が問題なんじゃないの?

622 名前:デフォルトの名無しさん mailto:sage [03/04/11 14:16]
>>621
GPLと互換性のないライセンスのソフトに組み込める==ソース公開の義務がない(スクリプトエンジン以外は)

623 名前:デフォルトの名無しさん mailto:sage [03/04/11 14:25]
>>622
その解釈は結構きわどいと思うな・・・

624 名前:デフォルトの名無しさん mailto:sage [03/04/11 14:46]
スクリプトエンジンに手を加えずに使うんだったらいいんじゃない?
手を加えたくなってもフィルタで済ます。

625 名前:デフォルトの名無しさん mailto:sage [03/04/11 19:46]
>>618
> www.ruby-lang.org/ja/LICENSE.txt
「または以下に示す条件で」って書いてあるじゃん。
rubyに関しては何度かMLでもそういう話があるが、結論としては
「迷惑をかけないでくれ」だけのはず。

ところで過激な運動家って何だ?


626 名前:デフォルトの名無しさん mailto:sage [03/04/11 21:34]
Qちゃん

627 名前:デフォルトの名無しさん mailto:sage [03/04/12 00:43]
>>626
過激だったのか。中の人も(ry

628 名前:デフォルトの名無しさん mailto:sage [03/04/12 06:46]
そろそろスレ違い気味なのでGPLスレでも建てて議論してくだちゃい

629 名前:デフォルトの名無しさん mailto:sage [03/04/12 12:46]
ここだな?
【殺しの】ライセンス【道で拾った】
pc2.2ch.net/test/read.cgi/tech/1045006087/


630 名前:デフォルトの名無しさん mailto:sage [03/04/12 17:19]
>>599
JavaCC使うなら、LL解析法だからLALR解析法を使うyaccは勉強しなくていいよ。
ちょっとした簡単な言語のインタプリタを作ったことがかなり前にあるんだけど、
簡単なインタプリタならそんなに難しくないはず。
LL文法とBNFがわかれば、JavaCCは使えるようになると思う。
言語処理系の本を1冊借りてきて、Let's Try!



631 名前:デフォルトの名無しさん mailto:sage [03/04/12 17:23]
追加。
ドキュメントが英語で分かりにくいから、
ttp://village.infoweb.ne.jp/~fwif0083/program/java/javacc/javaccgrm.html
ttp://www.asahi-net.or.jp/~DP8T-ASM/java/tips/JavaCCHelloWorld.html
この辺を参考に。
大量にサンプルがついてるから、それを参考にして作るといいかも。

632 名前:デフォルトの名無しさん mailto:sage [03/04/14 21:08]
LL(k)らしいんだけど誰か使てる?
spirit.sourceforge.net/



633 名前:デフォルトの名無しさん [03/04/16 23:30]
func();
という長い関数があったとして、これを
func1();
func2();
func3();
と分割するようなプログラムを作ってみたいと思ってます。

なにか参考になる情報、またはすでにそういうものがあったら教えてください。
それでは宜しくお願いします。


634 名前:デフォルトの名無しさん mailto:sage [03/04/16 23:41]
>>633
リファクタリングで検索

635 名前:デフォルトの名無しさん mailto:sage [03/04/16 23:43]
>>634
それは手作業でやるのでは?

636 名前:デフォルトの名無しさん mailto:sage [03/04/16 23:49]
>>635
おまえは一体どう分割したいのかと(ry
まさか単純にぶった切るつもりか?


637 名前:デフォルトの名無しさん [03/04/16 23:52]
単純にぶったぎりますが、ちゃんと途中経過を保存・復元する部分を付け加えたいです。


638 名前:デフォルトの名無しさん mailto:sage [03/04/17 00:11]
>>633の説明だけで何を判れと言うのか。

639 名前:デフォルトの名無しさん mailto:sage [03/04/17 00:20]
>>637
ローカル変数を全部構造体に入れてfunc()で確保、
func1(),func2(),func3()にそいつのポインタを渡してアクセス。

真面目にやるならフロー解析が必要。

640 名前:山崎渉 mailto:(^^) [03/04/17 15:16]
(^^)



641 名前:デフォルトの名無しさん [03/04/19 08:22]
荒したい策の保守あげ

642 名前:デフォルトの名無しさん mailto:sage [03/04/19 15:36]
荒らしたい 策

643 名前:山崎渉 mailto:(^^)sage [03/04/20 03:02]
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

644 名前:山崎渉 mailto:(^^)sage [03/04/20 03:41]
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

645 名前:デフォルトの名無しさん [03/04/23 03:52]


646 名前:棄教者 ◆egKIKYO7cg mailto:sage [03/04/24 15:18]
最近 Perl の Parse::Yapp というモジュールで遊んでいます。
Yacc の Perl 版です。
これで何かハックした神の報告を待つ。

647 名前:デフォルトの名無しさん [03/05/23 14:24]
♥ 

648 名前:名無し@沢村 [03/05/23 16:07]
おまいらよ、コンパイラをつくっただけじゃ言語はできんぞ。
リンカの解説はないか?

649 名前:デフォルトの名無しさん [03/05/23 18:15]
>>84
超遅いレスだけど、漏れも同じところで詰まっている。
P82までは何とか理解できたけど、LL(1)文法の理論説明になると急に難しくなる。
かなり前のページで定義したことが突然出てきたりするし。

コンピューター学科や数学科出身の人を前提にしているのだろう
漏れは情報学科出身ではないから読んでいてつらい・・・

しかも時間の空いているときに少しづつ読むような読み方では、前回読んだことを
覚え続けるのが困難。

650 名前:649 [03/05/23 18:26]
First集合,Follow集合,Director集合は、
ある文法がLL(1)文法かどうかを調べるためだからとりあえず読み飛ばすことにします・・・



651 名前:649 [03/05/23 18:30]
>>648
去年、"Linkers & Loaders" (John R.Levine著 ポジティブエッジ訳・オーム社)を読んだのですけど、
説明がかなり大雑把で実装レベルで直接役立てるのはちょっと無理な気がしました。

652 名前:デフォルトの名無しさん mailto:sage [03/05/23 18:31]
大したこと書いてないので、斜め読みで十分。
とにかく、実際に作ってみるのが○






[ 続きを読む ] / [ 携帯版 ]

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

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