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
802 名前:デフォルトの名無しさん mailto:sage [03/07/26 18:28] >>797 括弧悪い?アホか。 括弧の量なんて些細な事でしかない。
803 名前:デフォルトの名無しさん mailto:sage [03/07/27 08:34] >>802 通じて無いよこの人
804 名前:デフォルトの名無しさん mailto:sage [03/07/27 14:24] Lisp厨うぜぇ。 括弧読みにくいんだよ。 いつまでもマイナー言語でオナニーしてろよ、ボケ!
805 名前:デフォルトの名無しさん mailto:sage [03/07/27 15:47] Lisp厨以上に厨さを醸し出す>804 コイツ、ウザッ
806 名前:デフォルトの名無しさん mailto:sage [03/07/28 07:32] >>801 Lispじゃなくても、コンパイラやアセンブラはその言語自身でかけるが・・・
807 名前:デフォルトの名無しさん mailto:sage [03/07/28 07:32] ああ、すまん。より簡単だといいたいわけね。 本当にそうなの?
808 名前:デフォルトの名無しさん [03/07/28 09:27] 字句解析についての質問なんですが、 自前でトークンを切り出すコード (もし先頭がアルファベットならwhileで延々読み込みみたいな)の実行速度と lexで吐き出すコードの実行速度ではどちらが早いんでしょうか?
809 名前:デフォルトの名無しさん mailto:sage [03/07/28 13:51] 実装次第
810 名前:棄教者 ◆egKIKYO7cg mailto:sage [03/07/28 14:50] >>808 オートマ車とマニュアル車とどっちが燃費いいかという命題に似ている。
811 名前:デフォルトの名無しさん mailto:sage [03/07/28 18:24] >>808 のような質問をする人間にはマトモな実装が出来るわけが無い、と仮定すると lex の吐き出すコードのがマシと思われ。
812 名前:デフォルトの名無しさん mailto:sage [03/07/28 18:51] >>811 の誤りは、自明なことをあらためて仮定したこと。
813 名前:名無し@沢村 [03/07/28 20:47] おまいらよ、コンパイラやスクリプトエンジンよりも、TVウェアをつくってみないか? pc2.2ch.net/test/read.cgi/tech/1059262203/l50
814 名前:808 [03/07/28 21:53] 実装次第ですが・・・ありがとうございました。 初めてlexのコード見たんですが 移植する時間も自信も・・・なので諦めました・・・ メモリも全然使えない環境ですし・・・
815 名前:デフォルトの名無しさん [03/07/29 19:20] >>814 綴りの認識程度ならlex(というかDFA)は大袈裟な気がする。 僕だったら、連続するアルファベットと数字を連結して単語にし、事前に作っ ておいたハッシュ表を索いておしまいにします。 ハッシュ表は、完全ハッシュ関数を作成するツール(GNU gperf)を使えば、 かなり小さくできるし。
816 名前:デフォルトの名無しさん mailto:sage [03/07/29 23:49] >>808 最初で、しかも簡単な物でしたら、手で作ってみるのもいいのではないでしょうか。 それからlexを覚えた方が理解が深まりますし。
817 名前:デフォルトの名無しさん mailto:sage [03/07/30 00:31] 手作りするより、早めにlexの使い方を覚えた方が 後々楽な気がするけど。 まあ、時間に余裕があるなら。
818 名前:デフォルトの名無しさん mailto:sage [03/07/30 12:19] 801 ではないが,Lisp の場合 字句解析 -> 不要 構文解析 -> すでに終わってる なので激しく楽なのは間違いない.本の章一つで Lisp のサブセットやそのコンパイラの作成法が載るくらい.
819 名前:デフォルトの名無しさん mailto:sage [03/07/30 23:08] LISP Scheme Pert8テンプレより Lisp 言語処理系: CAMPUS LIsP, Lemon version ttp://aten.aial.hiroshima-u.ac.jp/~kakugawa/clisp/index-ja.shtml Cコードによるわずか1000行の実装 ちなみにLispのマクロは字句解析と構文解析の間に作用するので、 別の言語のインタプリタをLisp上に作ることができる。 Paul GrahamのOn Lispという本(Web公開中)ではCommon Lisp上の Prologインタプリタが解説されているし、 Richard Fateman教授のサイトには(おおっぴらには載せてないが) Common Lisp上のMathematicaサブセットのインタプリタのソースが置いてある。 いずれもマクロを活用している。 おまけ bison, flexマニュアル和訳 ftp://ftp.ascii.co.jp/pub/GNU/
820 名前:デフォルトの名無しさん mailto:sage [03/07/31 12:43] lisp厨は逝けよ。 lispのマクロで満足できるならこのスレには来るわけないんだからさ。
821 名前:デフォルトの名無しさん mailto:sage [03/07/31 18:04] >>820 このスレで無駄に時間浪費した挙句、互換性のクソもない コンパイラ・インタプリタなんぞ作って、いったい誰が使うのかな。
822 名前:デフォルトの名無しさん mailto:sage [03/07/31 19:01] >>821 スレの存在そのものに疑義があるんなら立ち入ってくるなっつの。
823 名前:デフォルトの名無しさん mailto:sage [03/08/01 02:36] >lispのマクロで満足できるならこのスレには来るわけないんだからさ。 lispのマクロを極めた人しかこんなことは言えないと思うのですが。
824 名前:デフォルトの名無しさん mailto:sage [03/08/01 03:05] >>823 馬鹿だろ? lispでマクロを極めようがどうしようが、んなことはフルスクラッチで スクリプトエンジンを組みたい奴の欲求には答えられないっていってるの。 プロトタイプだけ作って満足するならともかく。 こういう場を読めないLispスノッブが大杉。
825 名前:デフォルトの名無しさん mailto:sage [03/08/01 03:46] >>824 お前こそ馬鹿だろ? lispのマクロがプロトタイプだけしか作れなくて フルスクラッチの方がえらいみたいに考えてるところが。
826 名前:デフォルトの名無しさん mailto:sage [03/08/01 05:23] 824じゃないが >> フルスクラッチの方がえらいみたいに考えてるところが。 > スクリプトエンジンを組みたい奴の欲求には答えられないっていってるの。 Lispでどんあ言語でも作ることができる何て言ってるヤシは、 Lispしかやったこと無いヤシ。
827 名前:デフォルトの名無しさん mailto:sage [03/08/01 05:46] どんな言語でも大抵の言語は作れるよ
828 名前: mailto:sage [03/08/01 07:34] flexで最後にマッチした文字列が入るyytextには'\0'は付加されるの? guppy.eng.kagawa-u.ac.jp/~kagawa/1999/SysProg/both.html では付加されないから注意が必要と書いてるけど www.geocities.co.jp/SiliconValley-Oakland/3432/man/flex/flex-ja_4.html#SEC35 とかのサンプルみてるといきなりstrcpy(yylval.name,yytext)見たいな感じのコードがあるんだけど。 strcpyはソース側がNULL文字終端じゃないといけないよね。 それとも自分が何か勘違いしてるのかな?教えてください。
829 名前:デフォルトの名無しさん mailto:sage [03/08/01 11:39] >>827 そりゃアセンブラでも作ることはできるだろう。 ようはどれだけ簡単に作ることができるかだ
830 名前:デフォルトの名無しさん mailto:sage [03/08/01 12:21] >>828 というかこれにぶっ飛んだよ。 %union{ char name[128]; }
831 名前:デフォルトの名無しさん mailto:sage [03/08/01 13:29] >>826 Lispスノッブ大杉って,漏れには数人しか見えないが…. コンパイラやスクリプトエンジン書くのに言語やツールなんか関係ねーだろう. フルスクラッチがいいなら Lex も Yacc も使わずに全部手でかけばいいじゃん.
832 名前:デフォルトの名無しさん mailto:sage [03/08/01 14:00] 最近Schemeを勉強し始めたんだが、現時点での感想。 利点 - GCがあるので、メモリ管理が楽 - リストや木などを処理し易い - S式を入出力する手続きが用意されている 途中結果の出力や、個々の手続きの動作検証がし易い - シンボル シンボルを使うとシンボルテーブルを新たに作らなくてもよいかもしれない。 欠点 - lexやyaccのようなデファクトスタンダードなツールがない guile絡みでLanguage Implementation Toolなるものがあるらしいが、 どういう位置づけのものなのかは知らない。 - 動作が遅い ネイティブコードを吐くコンパイラもあり、速いらしい。 それでも、チューニングをし出すとCとかで組んだ方が速くなると思う。 - マクロ Schemeは処理系によってマクロの書き方が違う。 - 資料が少ない 検索しても見つかるのは、Schemeの処理系を作る話ばかり。 On Lispに載っていたPrologインタプリタは、Prologの機能を マクロとかを使って実現するという話ぽかった。 もしかしたら前の方の章にProlog→S式変換の話があったりするとか?
833 名前:832 mailto:sage [03/08/01 14:07] まだ、Schemeではプログラムをあまり書いていないので、 先入観も含んじゃっています。
834 名前:828 mailto:sage [03/08/01 14:14] >>830 すいません、まだ勉強始めたばっかりでなんでぶっ飛んだのかわかりません。 あとflexは自動的にヌル終端文字列にしてくれるんですか?
835 名前:デフォルトの名無しさん mailto:sage [03/08/01 14:21] >>821 > 互換性のクソもないコンパイラ・インタプリタなんぞ作って、いったい誰が使うのかな。 このスレで書いてはならない事を書いたね。
836 名前:デフォルトの名無しさん mailto:sage [03/08/01 18:47] ごめん
837 名前:デフォルトの名無しさん mailto:sage [03/08/01 18:55] >>836 素直だ。
838 名前:デフォルトの名無しさん mailto:sage [03/08/01 19:00] >>834 %unionってスタックの要素になるんだが、それを128byteとる豪儀(藁)さに。 終端はしないはず。
839 名前: mailto:sage [03/08/01 21:03] >>838 おお、どうもありがとう。
840 名前:デフォルトの名無しさん mailto:sage [03/08/01 21:31] すまん、されてるっぽいよ。
841 名前:デフォルトの名無しさん mailto:sage [03/08/01 23:52] >>832 なんで Lisp 厨を刺激しそうなことを書くかね・・・。 とりあえず、フォローしておこう。ちょっと検索したけど Scheme 用の LALR パーサジェネレータとかある。資料も英語なら本が何冊もオンライン で読めるみたいだし。
842 名前:デフォルトの名無しさん mailto:sage [03/08/01 23:52] >>832 なんで Lisp 厨を刺激しそうなことを書くかね・・・。 とりあえず、フォローしておこう。ちょっと検索したけど Scheme 用の LALR パーサジェネレータとかある。資料も英語なら本が何冊もオンライン で読めるみたいだし。
843 名前:841 mailto:sage [03/08/01 23:54] うげ、なぜか二重カキコに。吊ってきます。
844 名前:山崎 渉 mailto:(^^)sage [03/08/02 02:12] (^^)
845 名前:デフォルトの名無しさん [03/08/02 04:03] 逆アセンブラはスレ違いですか?
846 名前:デフォルトの名無しさん mailto:sage [03/08/07 22:30] 何でもいいからネタキボンヌ
847 名前:デフォルトの名無しさん mailto:sage [03/08/11 19:10] 七度文庫
848 名前:デフォルトの名無しさん [03/08/12 13:41] ゲームキャラのAIをスクリプトで書けるようにしようと思っています。 JavaScriptを使おうとおもうのですが、組み込んで使えるものなのでしょうか? VC6使っています。
849 名前:デフォルトの名無しさん mailto:sage [03/08/12 14:18] >>848 ちょっと探したら、こんなのみつけたけど。 MozillaのJavaScriptのページ jt.mozilla.gr.jp/js/
850 名前:デフォルトの名無しさん [03/08/12 17:20] 組み込み用途なら、JavaScriptとPerl、どっちがいいですか?
851 名前:デフォルトの名無しさん mailto:sage [03/08/12 20:28] どっちもデカ過ぎるような…。コンパクトな自作言語のがよくないか? まぁ、Python なんかは組み込まれてるの見かけるから漏れの感覚が古い のやもしれず。
852 名前:850 [03/08/12 20:42] Luaが小さくてよさげなのですが、明らかにJavaScriptやPerlと劣っている点はありますか? 小さいことは気にしないのですが、いざ使ってて大きな落とし穴に落ちたら人生いやけがさして多分漏れ自殺します。
853 名前:デフォルトの名無しさん mailto:sage [03/08/12 21:05] が ・ ん ・ ば
854 名前:デフォルトの名無しさん mailto:sage [03/08/12 21:53] LISPがいい
855 名前:デフォルトの名無しさん mailto:sage [03/08/13 04:00] >>852 Luaは最初から組み込むことを前提に考えて作ったっぽいからいいかも。 ただ小さい代わりに言語仕様もライブラリも他と比べて貧弱なので。
856 名前:850 [03/08/13 11:23] たしかに用意されているライブラリは少ない感じがします。 ただ、組み込み用途で使うのであれば、幾つかの型が扱えて ifやwhileなどの制御構文が使えればOKかなぁ。。。 スクリプト側ではフロー制御みたいなことしかやらず、どうせ アプリ側のAPI呼び出しに徹する形になるだろうから。
857 名前:デフォルトの名無しさん mailto:age [03/08/14 17:20] JavaCC使っている人いる? 久しぶりにJavaCCを使おうと思ったら、antからビルド出来なくなっていた。 もちろん、コマンドラインからはjavaccもjjtreeも普通に使えている。 COM.sun.labs.javacc.Mainという存在しないクラスを探すのが原因らしく、 そこを"org.javacc.parser.Mainに書き換えただけで動いた。 sfに移動してから結構経っているのに、誰も気付かなかったのかな。
858 名前:山崎 渉 mailto:(^^) [03/08/15 15:24] (⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
859 名前:デフォルトの名無しさん [03/08/16 18:29] ほしゅっ
860 名前:デフォルトの名無しさん [03/08/19 21:52] >>764 最近アルバイト先で使ったLSI設計ツール、Tclが組み込まれていた。 もちろん商用アプリなんだけど、Tclって商用利用に使ってもいいんですね。 いや、単に不勉強で、ちまたのスクリプトの何が商用利用(商品に組み込んだ うえで販売)でき、何はだめなのか、よく知らなかったので、たまたまTclを 見つけて「へぇ、こういうふうに商品にもつかっているんだ」と、感心したという だけの話なんですが。
861 名前:デフォルトの名無しさん mailto:ege [03/08/19 23:46] おまえらの中で、boost::spiritを使ってる人いませんか? どんな感じのものなのですか?
862 名前:デフォルトの名無しさん mailto:sage [03/08/20 05:43] ガーベッジコレクションの話題はこのスレでいいのかな?
863 名前:デフォルトの名無しさん mailto:sage [03/08/20 06:19] ↑無関係ではないが、うーん、ちと違う気がするな。
864 名前:デフォルトの名無しさん mailto:sage [03/08/20 06:58] >>862 LISP Schemeスレなら受け入れてくれると思うよ。 自作派が多いから。
865 名前:デフォルトの名無しさん mailto:sage [03/08/21 13:44] >>861 下のサイト見るか、boost スレ行って訊けば? ttp://www.fides.dti.ne.jp/~oka-t/cpplab-boost-spirit.html