『コンパイラ・スクリプトエンジン』 相談室 2 at TECH
[2ch|▼Menu]
[前50を表示]
800:デフォルトの名無しさん
03/07/26 02:50
>>799
激しく同意

801:デフォルトの名無しさん
03/07/26 18:27
おまえらLISPは柔軟だからコンパイラやアセンブラとかを
LISP自身で書けるんだぞ。そもそも記号処理は得意分野だからな。
CやJavaで組むより簡単だろう。
実装側の言語に頼る量も最小で済むんだぞ。
なぜ使わんのだ。

802:デフォルトの名無しさん
03/07/26 18:28
>>797
括弧悪い?アホか。
括弧の量なんて些細な事でしかない。

803:デフォルトの名無しさん
03/07/27 08:34
>>802
通じて無いよこの人

804:デフォルトの名無しさん
03/07/27 14:24
Lisp厨うぜぇ。
括弧読みにくいんだよ。
いつまでもマイナー言語でオナニーしてろよ、ボケ!

805:デフォルトの名無しさん
03/07/27 15:47

Lisp厨以上に厨さを醸し出す>804

コイツ、ウザッ

806:デフォルトの名無しさん
03/07/28 07:32
>>801
Lispじゃなくても、コンパイラやアセンブラはその言語自身でかけるが・・・

807:デフォルトの名無しさん
03/07/28 07:32
ああ、すまん。より簡単だといいたいわけね。

本当にそうなの?

808:デフォルトの名無しさん
03/07/28 09:27
字句解析についての質問なんですが、
自前でトークンを切り出すコード
(もし先頭がアルファベットならwhileで延々読み込みみたいな)の実行速度と
lexで吐き出すコードの実行速度ではどちらが早いんでしょうか?



809:デフォルトの名無しさん
03/07/28 13:51
実装次第

810:棄教者 ◆egKIKYO7cg
03/07/28 14:50
>>808
オートマ車とマニュアル車とどっちが燃費いいかという命題に似ている。

811:デフォルトの名無しさん
03/07/28 18:24
>>808 のような質問をする人間にはマトモな実装が出来るわけが無い、と仮定すると
lex の吐き出すコードのがマシと思われ。

812:デフォルトの名無しさん
03/07/28 18:51
>>811の誤りは、自明なことをあらためて仮定したこと。


813:名無し@沢村
03/07/28 20:47
おまいらよ、コンパイラやスクリプトエンジンよりも、TVウェアをつくってみないか?

スレリンク(tech板)l50

814:808
03/07/28 21:53
実装次第ですが・・・ありがとうございました。

初めてlexのコード見たんですが
移植する時間も自信も・・・なので諦めました・・・
メモリも全然使えない環境ですし・・・

815:デフォルトの名無しさん
03/07/29 19:20
>>814
綴りの認識程度ならlex(というかDFA)は大袈裟な気がする。

僕だったら、連続するアルファベットと数字を連結して単語にし、事前に作っ
ておいたハッシュ表を索いておしまいにします。
ハッシュ表は、完全ハッシュ関数を作成するツール(GNU gperf)を使えば、
かなり小さくできるし。


816:デフォルトの名無しさん
03/07/29 23:49
>>808
最初で、しかも簡単な物でしたら、手で作ってみるのもいいのではないでしょうか。
それからlexを覚えた方が理解が深まりますし。

817:デフォルトの名無しさん
03/07/30 00:31
手作りするより、早めにlexの使い方を覚えた方が
後々楽な気がするけど。
まあ、時間に余裕があるなら。

818:デフォルトの名無しさん
03/07/30 12:19
801 ではないが,Lisp の場合
字句解析 -> 不要
構文解析 -> すでに終わってる
なので激しく楽なのは間違いない.本の章一つで
Lisp のサブセットやそのコンパイラの作成法が載るくらい.

819:デフォルトの名無しさん
03/07/30 23:08
LISP Scheme Pert8テンプレより

Lisp 言語処理系: CAMPUS LIsP, Lemon version
URLリンク(aten.aial.hiroshima-u.ac.jp)
Cコードによるわずか1000行の実装

ちなみにLispのマクロは字句解析と構文解析の間に作用するので、
別の言語のインタプリタをLisp上に作ることができる。
Paul GrahamのOn Lispという本(Web公開中)ではCommon Lisp上の
Prologインタプリタが解説されているし、
Richard Fateman教授のサイトには(おおっぴらには載せてないが)
Common Lisp上のMathematicaサブセットのインタプリタのソースが置いてある。
いずれもマクロを活用している。

おまけ bison, flexマニュアル和訳
fURLリンク(ftp.ascii.co.jp)

820:デフォルトの名無しさん
03/07/31 12:43
lisp厨は逝けよ。
lispのマクロで満足できるならこのスレには来るわけないんだからさ。


821:デフォルトの名無しさん
03/07/31 18:04
>>820
このスレで無駄に時間浪費した挙句、互換性のクソもない
コンパイラ・インタプリタなんぞ作って、いったい誰が使うのかな。

822:デフォルトの名無しさん
03/07/31 19:01
>>821
スレの存在そのものに疑義があるんなら立ち入ってくるなっつの。

823:デフォルトの名無しさん
03/08/01 02:36
>lispのマクロで満足できるならこのスレには来るわけないんだからさ。

lispのマクロを極めた人しかこんなことは言えないと思うのですが。

824:デフォルトの名無しさん
03/08/01 03:05
>>823
馬鹿だろ?
lispでマクロを極めようがどうしようが、んなことはフルスクラッチで
スクリプトエンジンを組みたい奴の欲求には答えられないっていってるの。
プロトタイプだけ作って満足するならともかく。
こういう場を読めないLispスノッブが大杉。


825:デフォルトの名無しさん
03/08/01 03:46
>>824
お前こそ馬鹿だろ?
lispのマクロがプロトタイプだけしか作れなくて
フルスクラッチの方がえらいみたいに考えてるところが。

826:デフォルトの名無しさん
03/08/01 05:23
824じゃないが

>> フルスクラッチの方がえらいみたいに考えてるところが。
> スクリプトエンジンを組みたい奴の欲求には答えられないっていってるの。

Lispでどんあ言語でも作ることができる何て言ってるヤシは、
Lispしかやったこと無いヤシ。

827:デフォルトの名無しさん
03/08/01 05:46
どんな言語でも大抵の言語は作れるよ

828:
03/08/01 07:34
flexで最後にマッチした文字列が入るyytextには'\0'は付加されるの?

URLリンク(guppy.eng.kagawa-u.ac.jp)
では付加されないから注意が必要と書いてるけど

URLリンク(www.geocities.co.jp)
とかのサンプルみてるといきなりstrcpy(yylval.name,yytext)見たいな感じのコードがあるんだけど。
strcpyはソース側がNULL文字終端じゃないといけないよね。
それとも自分が何か勘違いしてるのかな?教えてください。

829:デフォルトの名無しさん
03/08/01 11:39
>>827
そりゃアセンブラでも作ることはできるだろう。
ようはどれだけ簡単に作ることができるかだ

830:デフォルトの名無しさん
03/08/01 12:21
>>828
というかこれにぶっ飛んだよ。

%union{
    char   name[128];
}


831:デフォルトの名無しさん
03/08/01 13:29
>>826
Lispスノッブ大杉って,漏れには数人しか見えないが….
コンパイラやスクリプトエンジン書くのに言語やツールなんか関係ねーだろう.
フルスクラッチがいいなら Lex も Yacc も使わずに全部手でかけばいいじゃん.


832:デフォルトの名無しさん
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
03/08/01 14:07
まだ、Schemeではプログラムをあまり書いていないので、
先入観も含んじゃっています。

834:828
03/08/01 14:14
>>830

すいません、まだ勉強始めたばっかりでなんでぶっ飛んだのかわかりません。
あとflexは自動的にヌル終端文字列にしてくれるんですか?

835:デフォルトの名無しさん
03/08/01 14:21
>>821
> 互換性のクソもないコンパイラ・インタプリタなんぞ作って、いったい誰が使うのかな。

このスレで書いてはならない事を書いたね。


836:デフォルトの名無しさん
03/08/01 18:47
ごめん

837:デフォルトの名無しさん
03/08/01 18:55
>>836
素直だ。

838:デフォルトの名無しさん
03/08/01 19:00
>>834
%unionってスタックの要素になるんだが、それを128byteとる豪儀(藁)さに。
終端はしないはず。

839:
03/08/01 21:03
>>838
おお、どうもありがとう。

840:デフォルトの名無しさん
03/08/01 21:31
すまん、されてるっぽいよ。

841:デフォルトの名無しさん
03/08/01 23:52
>>832 なんで Lisp 厨を刺激しそうなことを書くかね・・・。
とりあえず、フォローしておこう。ちょっと検索したけど Scheme 用の
LALR パーサジェネレータとかある。資料も英語なら本が何冊もオンライン
で読めるみたいだし。

842:デフォルトの名無しさん
03/08/01 23:52
>>832 なんで Lisp 厨を刺激しそうなことを書くかね・・・。
とりあえず、フォローしておこう。ちょっと検索したけど Scheme 用の
LALR パーサジェネレータとかある。資料も英語なら本が何冊もオンライン
で読めるみたいだし。

843:841
03/08/01 23:54
うげ、なぜか二重カキコに。吊ってきます。

844:山崎 渉
03/08/02 02:12
(^^)

845:デフォルトの名無しさん
03/08/02 04:03
逆アセンブラはスレ違いですか?

846:デフォルトの名無しさん
03/08/07 22:30
何でもいいからネタキボンヌ

847:デフォルトの名無しさん
03/08/11 19:10
七度文庫

848:デフォルトの名無しさん
03/08/12 13:41
ゲームキャラのAIをスクリプトで書けるようにしようと思っています。
JavaScriptを使おうとおもうのですが、組み込んで使えるものなのでしょうか?
VC6使っています。

849:デフォルトの名無しさん
03/08/12 14:18
>>848
ちょっと探したら、こんなのみつけたけど。

MozillaのJavaScriptのページ
URLリンク(jt.mozilla.gr.jp)

850:デフォルトの名無しさん
03/08/12 17:20
組み込み用途なら、JavaScriptとPerl、どっちがいいですか?

851:デフォルトの名無しさん
03/08/12 20:28
どっちもデカ過ぎるような…。コンパクトな自作言語のがよくないか?
まぁ、Python なんかは組み込まれてるの見かけるから漏れの感覚が古い
のやもしれず。

852:850
03/08/12 20:42
Luaが小さくてよさげなのですが、明らかにJavaScriptやPerlと劣っている点はありますか?
小さいことは気にしないのですが、いざ使ってて大きな落とし穴に落ちたら人生いやけがさして多分漏れ自殺します。

853:デフォルトの名無しさん
03/08/12 21:05
が ・ ん ・ ば

854:デフォルトの名無しさん
03/08/12 21:53
LISPがいい

855:デフォルトの名無しさん
03/08/13 04:00
>>852
Luaは最初から組み込むことを前提に考えて作ったっぽいからいいかも。
ただ小さい代わりに言語仕様もライブラリも他と比べて貧弱なので。

856:850
03/08/13 11:23
たしかに用意されているライブラリは少ない感じがします。
ただ、組み込み用途で使うのであれば、幾つかの型が扱えて
ifやwhileなどの制御構文が使えればOKかなぁ。。。
スクリプト側ではフロー制御みたいなことしかやらず、どうせ
アプリ側のAPI呼び出しに徹する形になるだろうから。

857:デフォルトの名無しさん
03/08/14 17:20
JavaCC使っている人いる?

久しぶりにJavaCCを使おうと思ったら、antからビルド出来なくなっていた。
もちろん、コマンドラインからはjavaccもjjtreeも普通に使えている。
COM.sun.labs.javacc.Mainという存在しないクラスを探すのが原因らしく、
そこを"org.javacc.parser.Mainに書き換えただけで動いた。
sfに移動してから結構経っているのに、誰も気付かなかったのかな。

858:山崎 渉
03/08/15 15:24
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

859:デフォルトの名無しさん
03/08/16 18:29
ほしゅっ

860:デフォルトの名無しさん
03/08/19 21:52
>>764
最近アルバイト先で使ったLSI設計ツール、Tclが組み込まれていた。
もちろん商用アプリなんだけど、Tclって商用利用に使ってもいいんですね。

いや、単に不勉強で、ちまたのスクリプトの何が商用利用(商品に組み込んだ
うえで販売)でき、何はだめなのか、よく知らなかったので、たまたまTclを
見つけて「へぇ、こういうふうに商品にもつかっているんだ」と、感心したという
だけの話なんですが。

861:デフォルトの名無しさん
03/08/19 23:46
おまえらの中で、boost::spiritを使ってる人いませんか?
どんな感じのものなのですか?



862:デフォルトの名無しさん
03/08/20 05:43
ガーベッジコレクションの話題はこのスレでいいのかな?

863:デフォルトの名無しさん
03/08/20 06:19
↑無関係ではないが、うーん、ちと違う気がするな。

864:デフォルトの名無しさん
03/08/20 06:58
>>862
LISP Schemeスレなら受け入れてくれると思うよ。
自作派が多いから。

865:デフォルトの名無しさん
03/08/21 13:44
>>861
下のサイト見るか、boost スレ行って訊けば?
URLリンク(www.fides.dti.ne.jp)


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4934日前に更新/200 KB
担当:undef