[表示 : 全て 最新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

527 名前:525 mailto:sage [03/03/21 22:47]
>>526
別に不満はないよ。不満があるのは>>524さんでしょ。

528 名前:デフォルトの名無しさん [03/03/21 23:45]

☆^〜^★「探し物とくとくページ」☆^〜^★
sagatoku.fc2web.com/
あなたの探し物きっとみつかります
ほぼ毎日 新着情報追加 毎日更新
新着情報メールでお知らせ




529 名前:デフォルトの名無しさん mailto:sage [03/03/22 04:29]
>>527
ここは言語仕様でなく、
実装について語るスレだったはずなんだが・・・

530 名前:デフォルトの名無しさん mailto:sage [03/03/22 11:27]
>>529
>前スレ1より
>>yaccやlexの使い方やら言語仕様やらの話題。

って>>1にかいてあるよ?

531 名前:デフォルトの名無しさん mailto:sage [03/03/22 12:46]
>>530
529ではないが、どうにも最近は厨が来るから次スレから抜きにしないか? > all
必要なときは関連して話題になるだろうし、そういう状況なら厨が入り込む余地はないだろう。
ここで在っていいのは宗教論争ではなく実装に関連した言語仕様の話題のほうがいいと思う。

532 名前:デフォルトの名無しさん mailto:sage [03/03/22 15:56]
yacc/lex の使い方の高度な話題はここでいいと思うが。

まあ、次スレまで行くのかどうか問題だが。

533 名前:デフォルトの名無しさん mailto:sage [03/03/22 21:23]
flexに #include <unistd.h> を出力させない方法はないですか?

534 名前:デフォルトの名無しさん [03/03/22 21:59]
宝石兄弟と仲良くする擦れはここですか?


535 名前:デフォルトの名無しさん mailto:sage [03/03/23 07:02]
(*゚ー゚) しぃ の、言語をつくろう!!(゚ー゚*)
pc.2ch.net/test/read.cgi/prog/1034581899/




536 名前:int [03/03/23 09:37]
ちょっと聞きたいんだけど、いわゆるスクリプトと呼ばれるインタプリタ処理系は、
(中間言語を含め)内部で事前コンパイルしてるものなのでしょうか?


537 名前:デフォルトの名無しさん mailto:sage [03/03/23 09:52]
してるよ

538 名前:int [03/03/23 10:15]
それは、事前に全ソース(つまり頭から尻尾まで)変換してから
実行しているってことですか?


539 名前:デフォルトの名無しさん mailto:sage [03/03/23 10:25]
>>538
大抵は一括変換だけど、
ある単位(関数や変数など)ごとに変換していくのもあるよ

540 名前:デフォルトの名無しさん mailto:sage [03/03/23 10:26]
             ∩
        ∧_∧   | |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       (  ´Д`)//  < 先生!こんなのを発見シマスタ!
      /       /    |
     / /|    /      \  saitama.gasuki.com/sinagawa/
  __| | .|    |         \
  \   ̄ ̄ ̄ ̄ ̄ ̄ ̄\     \_____________
  ||\             \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||

541 名前:デフォルトの名無しさん mailto:sage [03/03/23 10:29]
↑ブラクラなので踏まない様に

542 名前:デフォルトの名無しさん mailto:sage [03/03/23 10:52]
>>533
自分はあきらめて空の unistd.h をシステムインクルードディレクトリに入れてしまいました。

543 名前:int [03/03/23 17:16]
>>539
文字通り1行毎に逐一変換&実行している言語はないのでしょうか?
なんか、そのほうがインタプリタ(スクリプト)というイメージに
ぴったりなんですが。。。


544 名前:デフォルトの名無しさん mailto:sage [03/03/23 17:17]
N88BASIC?

545 名前:デフォルトの名無しさん mailto:sage [03/03/23 17:24]
>>543
sh



546 名前:ろうひ男爵 mailto:sage [03/03/23 18:55]
>>544
N88BASICも、入力されたときに中間コードに落とすんじゃなかったですっけ?

>>543
GOTOなどのジャンプ先のアドレス解決を毎回やると、
検索だけで重くなってしまうので実用的ではないのでは?

547 名前:デフォルトの名無しさん mailto:sage [03/03/23 19:16]
>>543
自分の場合は、スクリプトとして自働実行する以外に、コマンドラインのインターフェイスを
持たせたいときは、そういうことをする場合もあります。
ただ・・・
構造化された構文がこれだと作りにくいんだ、
だからある程度派手な構文を持つ場合はパースするか、コマンドラインだけ文法限定して
別パーサーで作っていたりします。
ちなみに、古いベーシックなんかが一行入力時にそのつどパースしてるんじゃないかな。
いまどきの文法はちょっと苦しいかも。

548 名前:int [03/03/23 23:05]
やはり、実行速度がもんだいのようですね。
いろいろとありがとうございました。


549 名前:デフォルトの名無しさん mailto:sage [03/03/24 09:24]
>>547
だからshのソース嫁。gotoはないけどブロックはある。

550 名前:デフォルトの名無しさん mailto:sage [03/03/24 11:02]
>>549
まあできんことは無いんだが・・・
たんに大変だなとか思ってね。

551 名前:デフォルトの名無しさん mailto:sage [03/03/24 12:52]
>>546
実行時にsyntax errorが出るくらいだから、それはないと思う。


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






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

前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