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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2005/05/06(金) 08:28:29 ]
プログラミング言語処理系の開発に興味のある人達のスレッドです。

字句解析・構文解析から,データフロー解析,ループ並列化,タスク並列化,SSA変換,
CPS変換,レジスタ割付,命令スケジューリング,ソフトウェアパイプライン等各種最適化,
それにVM,GC,JIT,リンク時最適化,動的バイナリ変換などなど。
意味論に関する話題も歓迎です。

前スレ
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/ (前スレ)
関連リンクは多分 >>2-10 あたり

460 名前:デフォルトの名無しさん mailto:sage [2005/06/14(火) 21:46:43 ]
>>458
こういう FUD を平気で言うあたりがアンチが厨だという証拠w

461 名前:デフォルトの名無しさん mailto:sage [2005/06/14(火) 21:50:00 ]
年齢が40前後がなんでFUDになるのだろう。

462 名前:デフォルトの名無しさん mailto:sage [2005/06/14(火) 21:55:53 ]
この公式はどうだろう
アンチLISP=Rubist

アンチRuby=LISPer

463 名前:デフォルトの名無しさん mailto:sage [2005/06/14(火) 21:58:23 ]
>>460は数少ない現役厨房Lisperか。大事にせにゃw

464 名前:デフォルトの名無しさん [2005/06/14(火) 22:02:58 ]
>>462
すなわち、こういう事のようだな(↓)

LISPシンパ≒Rubyシンパ


465 名前:デフォルトの名無しさん mailto:sage [2005/06/14(火) 22:18:29 ]
………………………… き り す て …………………………

466 名前:デフォルトの名無しさん mailto:sage [2005/06/14(火) 22:20:02 ]
lispもなw

たったこの一言が原因で、しつこく粘着して
しっかりと荒らすんだから、ある意味すごい

467 名前:デフォルトの名無しさん mailto:sage [2005/06/14(火) 22:28:37 ]
………………………… Reset …………………………

468 名前:デフォルトの名無しさん mailto:sage [2005/06/14(火) 22:46:48 ]
このスレでLispとRubyの話題は禁止ということで



469 名前:デフォルトの名無しさん mailto:sage [2005/06/14(火) 22:55:05 ]
………………………… >>468 を は つ げ ん き ん し …………………………

470 名前:デフォルトの名無しさん mailto:sage [2005/06/14(火) 23:11:53 ]
荒れてる原因はRubyでもLispでも信者でもアンチでもないと思うんだが…
単に話が理解できないバカが原因だろ?

471 名前:デフォルトの名無しさん [2005/06/14(火) 23:11:57 ]
3大禁句(↓)

Li(ry
Ru(ry
りん(ry


472 名前:デフォルトの名無しさん mailto:sage [2005/06/14(火) 23:14:03 ]
>>458
ってことは、煽りでなくて若者には人気がないってことですか?(LISP)
素朴な疑問としてなんでなんでしょうね?

(書籍が少ないから?)


473 名前:デフォルトの名無しさん mailto:sage [2005/06/14(火) 23:15:10 ]
>>470
はげどう

474 名前:デフォルトの名無しさん mailto:sage [2005/06/14(火) 23:19:01 ]
>>472
↓で同じ質問をして、身をもって知ってみてはどうか?
pc8.2ch.net/test/read.cgi/tech/1115901841/

しかし粘着がまだいるな

475 名前:デフォルトの名無しさん mailto:sage [2005/06/14(火) 23:24:31 ]
>>472
書籍って言語解説書のこと?
そんなもの必要なの??
要らないと思うなぁ。

476 名前:デフォルトの名無しさん mailto:sage [2005/06/14(火) 23:27:03 ]
>>472
Lispの黄金時代というのが太古の昔あっての。
汎用機屋以外は、猫も杓子もLisp Lisp、
Lispしか動かないマシンが続々と発売された。
普通の商売としてLispを使った経験のある人間がその世代なんじゃ。

477 名前:デフォルトの名無しさん mailto:sage [2005/06/14(火) 23:31:32 ]
ありえん。
数式処理屋、エキスパートシステム屋、AI屋、あと画像処理屋くらいなもんだろう
Lisp専用機使ってたのは

478 名前:デフォルトの名無しさん mailto:sage [2005/06/14(火) 23:37:11 ]
LISPのアンチというのがわからんな。
LISPの機能とかは他の言語で代用は無理だからなあ。
まあEmacsなかったらm4以下の存在だったかもしれない。



479 名前:デフォルトの名無しさん mailto:sage [2005/06/14(火) 23:39:59 ]
アンチを作りたくてしょうがなさそうな発言だね。

480 名前:デフォルトの名無しさん mailto:sage [2005/06/14(火) 23:42:36 ]
>>478のようなやつがなんでこのスレにいるんだ…あきらかに無縁だろ…

481 名前:472 [2005/06/14(火) 23:50:38 ]
>>475
やはり本がないと(汗

>>477
専用器なんてあったんですか!
ある意味凄い。


482 名前:デフォルトの名無しさん mailto:sage [2005/06/14(火) 23:56:08 ]
シンボリ


483 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 00:02:03 ]
>>477
「Lisp専用機」という存在自体が今の人間にとってはそれこそ「ありえん」だろう。
この黄金期も短かった。
最大の理由は、当時登場した万能太陽神に信仰を奪われたこと。
おまけの理由としては、一大国家施策としてヤンキーでなくおふらんすの言語を推進したこと。

今となっては>>478が言うように、エディタのおまけ言語としてしかLispをさわったことのない
人間のほうが多くなってしまった。

484 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 00:04:03 ]
IPSJ>コンピュータ博物館>年表と日本の歴史的コンピュータ
 ワークステーション・Lispマシン
  www.ipsj.or.jp/katsudou/museum/history/history_ws.html
  www.ipsj.or.jp/katsudou/museum/history/profile_ws.html

 1974:MIT:CONSマシン
 1974:Xerox PaloAlto:Altoワークステーション上にInterLispを移植
 1976:MIT AIラボ:CADRマシン
     →Symbolics、LMI(LISP Machine Inc.)社の商用Lispマシンの原型となった

 1979:神戸大:神戸大Lispマシン開発
  www.ipsj.or.jp/katsudou/museum/computer/Kobe-Lisp.html
 1982:大阪大:LispマシンEVLIS開発
  www.ipsj.or.jp/katsudou/museum/computer/Handai-EVLIS.html
 1983:電電公社:通研LISPマシンELIS試作機稼動
  www.ipsj.or.jp/katsudou/museum/computer/NTT-ELIS.html
 1984:理研:数式処理計算機FLATS開発
  www.ipsj.or.jp/katsudou/museum/computer/Riken-FLATS.html
 1984:富士通:Lispマシン FACOM α 発表
  www.ipsj.or.jp/katsudou/museum/computer/FUJ-Alpha.html

485 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 00:08:57 ]
>483
フランス産はどれも優雅だねぇ。

486 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 00:29:25 ]
フランスの言語って何?
OCaml は何やら汚らしい感じがするが

487 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 00:37:50 ]
Prolog?Ada?

488 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 01:59:55 ]
>>484
すげーな富士通までやってたのかw
当時どれだけ影響力あったかわかるな。



489 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 02:15:24 ]
技術的系譜はこんな感じだそうです。(IPSJ情報)

 神戸大TAKITEC→富士通FACOM α(試作機)→理研FLATS(発案:故後藤英一先生, 設計協力:富士通, 製作:三井造船)→FLATS2
                              →富士通FACOM α(製品版)

 阪大EVLIS(並列処理)…→?

湯浅先生達の超並列機は、どういう技術的系譜にあるのだろう・・・?

490 名前:489 mailto:sage [2005/06/15(水) 02:29:29 ]
訂正。FLATSは各種の高速化技法を導入したオリジナルですね。

・神戸大TAKITEC→富士通FACOM α(試作機)→富士通FACOM α(製品版)
            \NTT武蔵野通研 ELIS → NTT-IT ELIS-8100/VME/8200 (LSI開発協力:沖電気)

            ・理研FLATS(発案:故後藤英一先生, 設計協力:富士通, 製作:三井造船)
                              →後藤磁束量子情報プロジェクト FLATS2

・阪大EVLIS(並列処理)…→?


491 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 02:29:36 ]
やっぱりこのスレでLISPとRubyの話は厳禁

492 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 02:31:33 ]
………………………… >>491 は げ ん き ん …………………………

493 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 02:41:27 ]
Lispは別に問題ないよ
Rubyが出てくると荒れてるだけ

494 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 02:51:33 ]
>>493
これだけスレ違いのレスが続いて何が「Lispは別に問題ないよ」だよ

495 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 03:19:40 ]
荒らしてる本人に自覚が無いだけだな

496 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 08:25:59 ]
スレ違いなんだよ こっちでやれ
CommonLisp Scheme Part13
pc8.2ch.net/test/read.cgi/tech/1115901841/

497 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 13:18:50 ]
スレが進んでるなぁ……


地面に置かれた砂糖に集まるアリみたい。
アリは嫌いだよ。急所噛まれた事あるから。

498 名前:デフォルトの名無しさん [2005/06/15(水) 14:30:40 ]
>コンパイルの定義で揉める巧妙な書き込みがなされているな
>なんだRubyの人って説明不足で揉めるような書き込みが大得意なんだな。

この内容で揉めたほうがマシだったな。現状よりは。



499 名前:デフォルトの名無しさん [2005/06/15(水) 18:51:24 ]
>>484
LISP専用マシンが何故必要とされたの?
今に例えると、例えば、 Ruby専用マシンみたいなものだよね?
全然考えられない!


500 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 19:15:09 ]
頭悪すぎ

501 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 19:26:30 ]
>>499
速いからだよ

502 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 20:16:45 ]
>>499
特定の言語を効率よく実行できる専用マシンは、昔のようにハードのオマケでソフトが在った時代には普通だった
ちなみに、今の御時世では Java 専用マシンがあったりする

別に不思議じゃない

503 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 20:27:33 ]
・当時、汎用機アーキテクチャの標準(IBM/360〜370)は姿を現していたが、
 それ以外のアーキテクチャはまだまだ未発達もしくは未普及だった。
 当時の汎用機アーキテクチャでは必ずしも効率的に実行できない処理のために、
 科学技術計算専用マシンや特定言語専用マシンの研究が始まりつつあった。

・MITのMacプロジェクトでLispアプリケーションを蓄積したが、
 実行には高価な中〜大型汎用機(ITS, GE Multics, DEC-10/20)が必要で、
 小回りが効かなかった。
 そこでPDP並みの価格で中〜大型機並みの性能を持つ
 Lisp用パーソナル・ワークステーションが開発された。

504 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 22:11:57 ]
>>499には時代という物が理解できないんだろうな。


505 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 22:22:50 ]
>>499
>>500-504まで、誰もわかってないようだからわからないことを気に病むことはないよ。
同時代のおっさんにはあまりに自明のことなんだが、
わかったからといって何かの足しになるわけでもなし。
スレ違いだし、このへんでひっぱるのはやめよう。



506 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 22:34:42 ]
最近見た中で一番ショボいハッタリだ

507 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 22:50:41 ]
20代のLISP使いだけど
おっさんネタはさっぱりわからんなあ

昔のPC板ってのがあるから
いいかげん懐古ネタは他所でやんなさいよ

昔のPC
bubble3.2ch.net/i4004/

508 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 22:54:22 ]
>>507
いやPCの話じゃないんだが…

と一応ツッコミは入れとくが、スレ違いということには同意



509 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 23:04:49 ]
>>507
ちらっとその板みたが、自分からみたらちっとも昔ではないのですな。
すでにPC前提ってあたりで昔ではないのですよ。

荒らすつもりじゃ無く純粋に懐古趣味としての昔話かと思って期待がはずれたのです。


510 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 23:42:23 ]
>>507
アホか。リアルタイムで知らない事でも、
文献やWebを駆使して勉強するもんだよ。
特にLispなんて80年代に最盛期を迎えた言語だからな

511 名前:デフォルトの名無しさん mailto:sage [2005/06/16(木) 19:36:39 ]
LISPの全盛期はいつだ? 80年代か? MLは今なんだよ…。

512 名前:デフォルトの名無しさん mailto:sage [2005/06/16(木) 20:28:40 ]
>>511
> MLは今なんだよ…。
いいえ。

513 名前:デフォルトの名無しさん mailto:sage [2005/06/16(木) 21:22:31 ]
80年代つーと洋楽だなあ

514 名前:デフォルトの名無しさん mailto:sage [2005/06/16(木) 21:24:57 ]
>>511
桜木君…

515 名前:デフォルトの名無しさん mailto:sage [2005/06/16(木) 22:03:41 ]
いいかげんにしろ、スレ違いだ。

516 名前:デフォルトの名無しさん mailto:sage [2005/06/16(木) 23:46:50 ]
そ /                  _r  、    、   .ヽ、 R
| L_   , - ´  ̄ ̄ ` ヽ 、   ',ヽー/_ヽーヽ/ヽイ _) u
な < /           ヽ,  /     λ       ヽ. b
の //    イ      ヽ   .i く  チ\イ_レヽ_/ルノヽ ) y
か \! !イ-/─レイ、ル─ヽ, / >i .レイ ,r=、   ,.-=ゝiイ  ヽ, y
| .| ̄i /イ,r=-、   ,-=ヽiミ}<] !レイレi { !_r!   i、_r! リ  ) 最
,、 / .レ| i { i、r!   i、_r!} ア   |   | !,""  ___ "" ! !  く. 高
 `   | i,""  ____  "" | | | .|  ! i ヽ、 !   j  ,イレ  > ! !
     i リヽ、 !   `j   ,イ !|  | |ノル `レ ,_--_イiレ - 、/ ̄ヽ、
     レi レ`レ ,--_イ レ、 リレ'    rイくi-/ / , ---ヽ、/__
人/ヽ、_    ,イくi--//__人__人_   ,く,_[><]__//_(⌒)-、i,_ ノ
はあ /  / i  (>Y<) ) 最R今 (   ,ヽi  '    (_ゝ_ヽ_ノノノ ´
はは i  / .!   `´  ). 高u 夜 (  ./ .!      ヽ、___ノ
はは > / イ、    ヽ, ! b も (  / <、_ 、     _ く
はは < /  ヽr----─> ! y  ( / /  /      ヽ\

517 名前:516 mailto:sage [2005/06/17(金) 00:33:33 ]
誤爆しました

518 名前:俺の学生時代はi386でGoferかな mailto:sage [2005/06/17(金) 00:36:23 ]
>>516
さっさと氏ねよ

>>511-512
定理証明系の開発は70年代
SML/NJの開発は80年代半ば
その後87〜98がHaskell標準化・・・もしかして進歩止まってるやん



519 名前:デフォルトの名無しさん mailto:sage [2005/06/17(金) 00:39:16 ]
>>518
スレ違いのお前もな

520 名前:デフォルトの名無しさん mailto:sage [2005/06/17(金) 00:42:57 ]
>>519 はぁ?煽りやり過ぎて、話題がスレ違いかどうか判断もできなくなってるのか。

521 名前:デフォルトの名無しさん mailto:sage [2005/06/17(金) 00:44:16 ]
>>520
どこからどう見てもスレ違い

522 名前:デフォルトの名無しさん mailto:sage [2005/06/17(金) 00:45:07 ]
キチガイが粘着中

                まともな人はしばらくお待ち下さい

523 名前:デフォルトの名無しさん mailto:sage [2005/06/17(金) 00:47:39 ]
やっぱりこのスレでLISPとRubyの話は厳禁だな

524 名前:デフォルトの名無しさん mailto:sage [2005/06/17(金) 03:45:37 ]
MLじゃないの?

525 名前:デフォルトの名無しさん mailto:sage [2005/06/17(金) 20:09:56 ]
>>523
ではmallocとfreeについて話そう。

526 名前:デフォルトの名無しさん mailto:sage [2005/06/17(金) 20:11:36 ]
>>525
やっぱこのスレではコンパイラについて話さないとな

527 名前:デフォルトの名無しさん mailto:sage [2005/06/17(金) 21:22:29 ]
lambda liftingについて分り易く教えてください

528 名前:デフォルトの名無しさん mailto:sage [2005/06/19(日) 04:50:11 ]
荒らしがいなくなるとスレが止まるんだなぁ。
つかLispもMLも禁止の言語処理系スレって…。

>>526
コンパイラの定義を教えてくれ。

>>527
foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?lambda+lifting



529 名前:デフォルトの名無しさん mailto:sage [2005/06/19(日) 09:55:44 ]
LALR(1) を勉強するのにお勧めの書籍かサイトありましたら
教えて下さい。


530 名前:デフォルトの名無しさん mailto:sage [2005/06/19(日) 11:02:50 ]
・コンパイラの構成と最適化 中田 育男
 www.amazon.co.jp/exec/obidos/ASIN/4254121393/


531 名前:デフォルトの名無しさん mailto:sage [2005/06/19(日) 15:27:01 ]
>>528
よくわからない
変数が増えただけに見えるorz
引数渡しにするってことかな?

532 名前:デフォルトの名無しさん mailto:sage [2005/06/19(日) 16:10:29 ]
だいたいLispやMLの全盛期の話のどこがスレの趣旨に沿ってるんだよ?
そんな話はLispやMLのスレでやれよ

533 名前:デフォルトの名無しさん mailto:sage [2005/06/19(日) 16:52:39 ]
>>531
処理系を作る立場で考えてみると良いんじゃないかな。

534 名前:デフォルトの名無しさん mailto:sage [2005/06/19(日) 18:01:40 ]
>>530
それって最適化でしょ?メインは


535 名前:デフォルトの名無しさん mailto:sage [2005/06/19(日) 19:57:38 ]
>>529
Dragon Bookでいいんじゃないの。


536 名前:デフォルトの名無しさん [2005/06/19(日) 20:34:44 ]
>>530
良書には違いないが、LALRつーわけどもないだろ。


537 名前:デフォルトの名無しさん mailto:sage [2005/06/19(日) 20:56:36 ]
>つーわけどもないだろ。


538 名前:デフォルトの名無しさん mailto:sage [2005/06/19(日) 21:05:16 ]
>>536をparseするのにお勧めの書籍かサイトありましたら
教えて下さい。





539 名前:デフォルトの名無しさん mailto:sage [2005/06/19(日) 21:08:06 ]
>>538
・コンパイラの構成と最適化 中田 育男
 www.amazon.co.jp/exec/obidos/ASIN/4254121393/

540 名前:デフォルトの名無しさん mailto:sage [2005/06/19(日) 21:13:07 ]
>>538
Dragon Bookでいいんじゃないの。

541 名前:536 mailto:sage [2005/06/19(日) 22:33:02 ]
スマソ、「つー訳でもないだろ」の誤りorz


542 名前:デフォルトの名無しさん mailto:sage [2005/06/20(月) 00:02:19 ]
>>536
> LALRつーわけでもないだろ。

 ?
 コンパイラ本の一つも読まずにアフォレス、とても痛い小学生だな


543 名前:デフォルトの名無しさん mailto:sage [2005/06/20(月) 07:23:45 ]
>>541を意味解析するのにお勧めの書籍かサイトありましたら
教えて下さい。


LALRの良書っていうわけでも無いだろ
ってことか?
じゃあ>>541がLALRの良書を薦めてくれ。

544 名前:デフォルトの名無しさん mailto:sage [2005/06/20(月) 17:15:35 ]
そもLALR一つに絞った本が良書と言えるのか?

545 名前:デフォルトの名無しさん mailto:sage [2005/06/20(月) 19:51:09 ]
>>544
それってyaccの入門書のレベルな希ガス

546 名前:デフォルトの名無しさん mailto:sage [2005/06/20(月) 21:58:07 ]
>>545
いや、案外その手の本は扱ってない。


547 名前:デフォルトの名無しさん mailto:sage [2005/06/20(月) 22:17:16 ]
はぁ?
LALRわかんなきゃyacc/bisonは使えないじゃん

548 名前:デフォルトの名無しさん mailto:sage [2005/06/20(月) 22:28:32 ]
>>547
理屈ではそうだけど、実際はそうじゃないんだよ。




549 名前:デフォルトの名無しさん mailto:sage [2005/06/21(火) 01:20:40 ]
全然自慢にならねぇ主張だな。
わけわかんないけど使ってるって?へ

550 名前:デフォルトの名無しさん mailto:sage [2005/06/21(火) 01:31:52 ]
紳士的に解釈すれば、ツールの使い方がわかれば
LALRアルゴリズムの詳細なんて知らなくても良い
ということじゃないかなあ。
いや、ある程度は知ってないとまずいかな。
yaccの作成するテーブルがどういう理屈で作成されてるかぐらいは・・

551 名前:デフォルトの名無しさん mailto:sage [2005/06/21(火) 01:33:23 ]
いやちゃう。
単にyaccが吐いたコードにアクション追加したり文法をデバッグするのが無理

552 名前:デフォルトの名無しさん mailto:sage [2005/06/21(火) 04:07:32 ]
>>550
どうだろう?yaccって結構簡単に使えるけど、それとLALRの理解は別だと思う。
極端な話し、関数電卓ぐらいのパーサならLALRの知識なんて必要ないし。

ちがうかな?


553 名前:デフォルトの名無しさん mailto:sage [2005/06/21(火) 04:29:04 ]
それで結局、今出てるyacc/lex本のLALRの解説は充実してるのか?

554 名前:デフォルトの名無しさん mailto:sage [2005/06/21(火) 09:30:36 ]
何するつもりか知らないけど、
LALRだけ勉強しようというのは効率が悪いから
普通の文法解析の教科書では一通りの文法を説明している。

・再帰下降パーサで書ける文法
・LALRパーサじゃないと書きにくい文法
・その他、演算子順位文法、属性文法
とか知っておくと、扱いたい文法が上記のいずれに近いのか、
素早くもしくは効率的に実装するには、どうすれば良いか
判断できるようになると思う。


555 名前:デフォルトの名無しさん mailto:sage [2005/06/21(火) 11:58:26 ]
[課題Q]3角形の底辺の長さ,高さをキーボードから読込み,その面積を計算するプログラムを作成しなさい.
ただし,底辺の長さ,高さ,面積の値を入れる変数名をそれぞれteihen, takasa,mensekiとし,いずれも実数型(double型)とする.


void main( void )
{
double teihen, takasa, menseki;

printf( "底辺は?\n" ); /* 入力を促すメッセージを表示 */
scanf( "%d", &teihen );

menseki = teihen * takasa / 2;
printf("%f\n",menseki);
}

これ誰か完成させてくれ

556 名前:デフォルトの名無しさん mailto:sage [2005/06/21(火) 12:28:11 ]
>>555=スレ違いのキチガイ

557 名前:デフォルトの名無しさん mailto:sage [2005/06/21(火) 13:09:35 ]
次スレから「相談室」ってのを外そうよ。
この文字だけ見て書き込んでいるとしか思えない致傷多すぎる。


558 名前:デフォルトの名無しさん mailto:sage [2005/06/21(火) 13:24:09 ]
>>555は単なる構ってチャンだろ。キチガイはさっさと逝け



559 名前:デフォルトの名無しさん mailto:sage [2005/06/21(火) 21:03:15 ]
標準入力から直接入力すると、行末の改行が削れてしまうんですが、
それを考慮すると行番号の計測ってどうやるんでしょうか

560 名前:デフォルトの名無しさん mailto:sage [2005/06/21(火) 21:13:37 ]
>>559 スレ違い。初心者向け相談室へ逝け

561 名前:デフォルトの名無しさん mailto:sage [2005/06/21(火) 23:43:16 ]
LALRの話しもすれ違い???


562 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 01:15:48 ]
構文解析の話なんてつまらんだろ

563 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 01:24:54 ]
おれはおもしろいと思うよ。
むしろ他人の作った完成品を貶したり褒めたりするのはよそでやってほしい。

564 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 04:10:23 ]
文法なんて結局は宗教戦争みたいなもんじゃん。
他人の作った完成品の工夫を見て学ぶのもおもしろいよ。
つか、このスレはいつまでたっても構文解析か荒らしの話しかしてないし…。

565 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 13:00:54 ]
字句解析・構文解析 ⇒ つまらん。話したくない
意味解析・目的コード生成 ⇒ 各々の機械語スレへどうぞ
各種言語に依存した…… ⇒ 厨は引っ込め


このスレは、何について話すスレなんだ?

566 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 13:20:55 ]
>>565
実装レベルの話はどうでもいい。

567 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 13:21:16 ]
>>565
というか厨はお前だろ。

568 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 16:42:34 ]
>>565
うーん、そこで「他でヤレ」っつってるのは、
単なる荒らしだと思うよ。相手にする必要なし。

つか荒らし被害者のフリして荒らすなって(笑



569 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 18:08:49 ]
>>1
> 字句解析・構文解析から,データフロー解析,ループ並列化,タスク並列化,SSA変換,
> CPS変換,レジスタ割付,命令スケジューリング,ソフトウェアパイプライン等各種最適化,
> それにVM,GC,JIT,リンク時最適化,動的バイナリ変換などなど。
> 意味論に関する話題も歓迎です。

字句解析・構文解析以外にも沢山話題はあるじゃない。

570 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 18:12:09 ]
じゃとりあえず話題をどうぞ(マジ

最近、プログラミング言語系の開発とかやってないなぁ〜(遠い目


571 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 18:17:23 ]
んじゃ制御フローの話題でも。
最近は制御フロー解析はstructuralな手法に移りつつあるようだけど、reducibleでないループ
はどうしてる? そこだけ古典的な方法でやってる?

572 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 18:20:19 ]
質問するときは、まず相手を探し、次に質問を選ばなきゃ。
>>570に書いたとおり、俺はスルー

573 名前:572 mailto:sage [2005/06/22(水) 18:23:37 ]
つか俺、ドラゴンブックの和訳出る手前で
コンパイラーに関する体系的な勉強が止まってる。
ドラゴンブックに型変数の話がちょこっとしか載ってなくて、興味が萎えたんだよなぁ。


574 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 18:33:58 ]
subset型が欲しいなと思うときはある。
y : { x in Int | P(x)}みたいな感じで。
ただしimpredicativeなものは勘弁。

575 名前:デフォルトの名無しさん [2005/06/22(水) 18:34:32 ]
Matz召還して議論したらどぉーお?

576 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 18:52:50 ]
>>574
Pascalの範囲型みたいな話だね。
構文上の判りやすさはさておいて、
そーゆーのはObject指向で解決できるのでわ?
(constractorや各種演算子で範囲型を外れないようにチェックして、
 もし外れたら例外発生、とか)

577 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 18:55:32 ]
オブジェクト指向と型は何の関係もない

578 名前:デフォルトの名無しさん [2005/06/22(水) 19:10:02 ]
オブジェクト指向のクラスを型とみなす事「も」できる。
通常のOOプログラミングでは、型とクラスの相違は曖昧にされる事が多い。
理論では識別したがるみたいだけどw



579 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 19:12:12 ]
なんで区別したがるんだっけ?
何度か読んだ覚えがあるけどど忘れした

580 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 20:13:18 ]
俺も教えて欲しい

581 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 20:31:22 ]
Haskellなんか、クラスと型は別もんだけど
そういう意味じゃないの?

582 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 20:32:48 ]
クラスがあるのに静的型が無い言語とか、そもそもクラスが無い言語とかもあることから来たのでは?

583 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 21:06:03 ]
言語処理系に関する研究の進展によって、
それまで言語処理系の内部機構だったものが、
言語ユーザに安全かつ判りやすい形で開放される事がある。
・・・メモリー・アロケーション然り、ユーザ定義型しかり。型変数、型推論も。

Lispとか、OOとか、そーゆー「開放」を前倒しした形で試すには、
良いプラットフォームなのでわ?と

584 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 21:11:57 ]
>>583
日本語でお願いします

585 名前:583じゃないが mailto:sage [2005/06/22(水) 21:15:44 ]
言語として本格的に実装する前の実験段階の実装には、LISP や OO を使うと良いのではないか?


って読んだ

586 名前:デフォルトの名無しさん [2005/06/22(水) 21:21:16 ]
お前の日本語力、理解力が低いのは、よく判った。

これまでの言語処理系発展の歴史の中で、
それまで言語処理系内部の仕組みとしてユーザの立ち入りを禁止していた機構
  例えば:メモリーの動的アロケーション、型の追加定義、型を推測する仕組み
が、簡潔かつ安全な形でユーザに開放されてきた。

・Lispのように高階関数で言語の実行機構を弄る事ができる言語、
・オブジェクト指向言語のように、データと操作をカプセル化して新しい型を定義しやすい言語、
は、上記のような「新しい機構のユーザへの開放」を実験するのに適しているのではないか?

                                                       以上


587 名前:583=586 [2005/06/22(水) 21:22:41 ]
>>585
介錯かたじけないっす。
>>586>>584宛ての熱いラブレターでつ・・・

588 名前:583じゃないが mailto:sage [2005/06/22(水) 21:25:17 ]
読みにくいです



589 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 21:28:39 ]
はい。反省。
さっき翻訳の真似事で下訳してたから、
むちゃくちゃな語順の日本語をしゃべってるかもしれない・・・

590 名前:デフォルトの名無しさん [2005/06/23(木) 00:07:11 ]
>>586
アフォ


591 名前:デフォルトの名無しさん mailto:sage [2005/06/23(木) 00:11:25 ]
哀れな奴

592 名前:デフォルトの名無しさん mailto:sage [2005/06/23(木) 02:12:10 ]
字句解析はできる
コンパイルも通って実行もできる
でも実行した結果は意味不明

そんな感じの文章

593 名前:デフォルトの名無しさん mailto:sage [2005/06/23(木) 04:16:57 ]
重箱の隅つつくだけ

594 名前:デフォルトの名無しさん mailto:sage [2005/06/24(金) 04:24:43 ]
>>553
O'Reilly の Lex & Yacc には少なくても無い。
用語の説明コーナーに出ているだけ


595 名前:デフォルトの名無しさん mailto:sage [2005/06/24(金) 22:01:28 ]
bison でのエラーメッセージの出し方で質問です。

スクリプト言語を作ろうとしてて
入力にエラーがあったときに詳細なエラーメッセージを出したいんですが
どのようにしたらいいでしょうか?

例えば
if x != 0 {
^
'(' expected.
とか出したいんですが、そもそも「if文の途中」というのが
取れるんでしょうか?

また、現在注目しているトークンの値(yylexからの戻り値)
はどこかに格納されてるでしょうか?


596 名前:デフォルトの名無しさん mailto:sage [2005/06/24(金) 22:08:57 ]
まあ>>595くらいのレベルがこのスレにちょうどあってる気がする

597 名前:デフォルトの名無しさん mailto:sage [2005/06/24(金) 23:12:59 ]
見てると、LispとRuby、両方ともアンチが厨なだけに見える。
厨だから、ちょっとこの二つが出てくるとすぐ暴れだして
荒れる。

598 名前:デフォルトの名無しさん mailto:sage [2005/06/24(金) 23:18:57 ]
>>597
わかってないな。
何かを貶す時の基本は度外れに褒めまくること。
そうすれば>>597のようなアホがほいほいつられてくれる。



599 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 00:32:42 ]
>>595
lexerはどうしてるの?
Lex等を使わずに自分で書いたのなら、どこまで処理してるかは把握してるのでは?

lookahead tokenの値は変数yycharにおさめられてます。


600 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 01:21:33 ]
>>595 bisonのオプション
#define YYERROR_VERBOSE 1 /* Enable verbose error messages. */
マニュアルにも出てるはず

> そもそも「if文の途中」というのが
> 取れるんでしょうか?
bison の error を使えば if文の途中でパース失敗した
ときのアクションとか付けられる
なんか説明しづらいけどマニュアルのサンプルに出てそう

601 名前:デフォルトの名無しさん [2005/06/25(土) 09:59:34 ]
>>595
すれ違い。

Lisperより


602 名前:595 mailto:sage [2005/06/25(土) 10:03:24 ]
みなさんありがとうございます。これから試してみようと思います。

>599
flexを使ってます。bison側で「@x」と書けば、トークンの位置が取れると
www1.kcn.ne.jp/~robe/pf/pf012.html
に書いてあったんですがまだ試してません。yycharですか、ありがとうございます。

>600
YYERROR_VERBOSE は試してみました。多少わかりやすいエラーメッセージが
yyerrorに与えられるようになったんですが、自動生成じゃなく自分でエラーメッセージを
決めたいんです(Cコンパイラが出すような)。

error は今のところトップレベルでやっちゃってるんで、
そこを文それぞれにもってかないとだめなんですね。


603 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 12:44:21 ]
>>601
死ね。


604 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 19:51:54 ]
>>601 ってなにもの?
Lisp 屋からみてもはずかすぃんだけど...


605 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 22:03:06 ]
>>604
おまぃLisp屋を騙ってる素人だろ。
Lispはプログラムとしていきなり構文木書かせるから、
文法パーサ(yacc, bison, Rie)はイラネェ〜んだよ

だから、「コンパイラ/スクリプトの話題に文法パーサはイラネェ」
プログラミングに精通してる人向けのジョークなんじゃねぇ?
;; あ、素人の人には判らない話だから、
;; そこの人、ムキになって否定しないように・・・



606 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 22:06:14 ]
よく分からんが、>>605 が素人だということはよく分かった

607 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 22:15:28 ]
はいはい、わかったわかった(苦笑

608 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 22:16:27 ]
まあ、大体はあってるんじゃないか。
全くいらないってわけじゃないが、他と比べて
簡単であることは間違いない。



609 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 22:19:30 ]
文法パーサ・ジェネレータは 使わない。
S式に関する文法は      ある。

妙に関心してるのも出てくる始末(苦笑
素人相手にジョーク飛ばすのも大変だなぁ。


610 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 22:22:26 ]
なるほど。
>>605 みたいにスーパーな Lisp 屋ならば、
SICP の超循環評価器なんてイラネェ〜んだろうな。


611 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 22:42:27 ]
>>609
なんだ、お前は「文法パーサ」って言葉でツールの類を指してたのか。

612 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 22:49:41 ]
601でギャグを言ったつもりだったっぽいなw

613 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 22:50:45 ]
yacc の検索結果のうち 日本語のページ 約 17,600 件中 1 - 10 件目 (0.15 秒)

構文解析器 の検索結果のうち 日本語のページ 約 10,200 件中 1 - 10 件目 (0.23 秒)

パーサ の検索結果のうち 日本語のページ 約 53,700 件中 1 - 10 件目 (0.19 秒)

パーザ の検索結果のうち 日本語のページ 約 8,720 件中 1 - 10 件目 (0.04 秒)


文法パーサ の検索結果のうち 日本語のページ 約 24 件中 1 - 5 件目 (0.22 秒)


614 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 22:58:59 ]
久しぶりにに揚足鶏取れたんで、大喜びか。
下らない人間だ


615 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 23:00:52 ]
「LALR文法パーサ」=構文パーサの一種

バカは覚えときな。

616 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 23:06:07 ]
LALR文法パーサに該当するページが見つかりませんでした。

検索のヒント
- キーワードに誤字・脱字がないか確かめてください。
- 違うキーワードを使ってみてください。
- より一般的な言葉を使ってみてください。
- キーワードの数を少なくしてみてください。


617 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 23:13:04 ]
荒らすなよ

618 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 23:14:09 ]
Googleで検索できない単語は間違っていると信じている、
痛い素人が粘着しているな。哀れな奴



619 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 23:27:41 ]
以前、LALR(1)の書籍orサイトを尋ねたものですが、
なかなかLALRのみっていうのは無いんですね。

ところで、皆さんはどうやって学習されましたか?
学習されたときの書籍とか覚えていましたら、教えて下さい。


620 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 00:25:28 ]
>>604
おまぃLisp屋を騙ってる素人だろ。
Lispはプログラムとしていきなり構文木書かせるから、
文法パーサ(yacc, bison, Rie)はイラネェ〜んだよ

だから、「コンパイラ/スクリプトの話題に文法パーサはイラネェ」
プログラミングに精通してる人向けのジョークなんじゃねぇ?
;; あ、素人の人には判らない話だから、
;; そこの人、ムキになって否定しないように・・・


621 名前:デフォルトの名無しさん [2005/06/26(日) 00:31:50 ]
>>620 が素人なのはよくわかった。


622 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 00:32:51 ]
はいはい、わかったわかった(苦笑


623 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 00:34:45 ]
別に文法パーサって言葉自体はいいだろ。
ただし、yaccなどのジェネレータを「文法パーサ」と言ってしまってるから
誤解を生むってこと。
なお、googleで検索してる奴はほっとけ。

624 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 00:36:46 ]
en.wikipedia.org/wiki/LALR_parser

625 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 00:38:46 ]
>>624
で?w

626 名前:デフォルトの名無しさん [2005/06/26(日) 00:42:29 ]
いいですか〜

yaccはパーサではありません。
yaccはパーサを作ってくれるものです。

はい、ここ!試験に出ますよ〜
良い子は覚えておきましょうねぇ〜

627 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 01:14:56 ]
>>626
foo.yを解釈するパーサと言えなくもないけどな

628 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 01:41:04 ]
俺の頭はパッパラパーさ(parser)!



629 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 02:09:28 ]
>>619
旧DragonBook。
あれを読んでたのは大学のころだな。みんなで輪講して、手でLR(0)itemを列
挙して、lookaheadを求めて、表を作成して…とかやった覚えがある。

ところで、LRパーサーの生成方法を知りたいの?
それともyaccの使い方を知りたいの?
前者だったらやっぱりDragonBookを熟読。読んでるだけでは意味不明でも、
簡単な文法(足し算だけの電卓プログラムとか)のLR表を手で生成して
みるとわかってくるよ。

後者ならO'Reilly本で足りるでしょう。


630 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 05:31:33 ]
>>627
yacc全体をそうは言えない。パース以外の仕事もするから。

631 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 10:31:04 ]
「パーサ=構文解析器」だから「文法パーサ」って馬から落馬系じゃなければ
*.yなどの文法をパースするパーサのこと。
609の「文法パーサ・ジェネレータ」は「コンパイラ・コンパイラ・コンパイラ」って意味だな。

632 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 14:18:10 ]
yaccは内部にパーサを持ってはいるんだろうけど、
lispはパーサが要らないんだ!って文章を強引に正しくするために
それを持ち出すのは苦しすぎる。

633 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 14:21:07 ]
yaccは、*.yをパースしたあと、その情報を使って
新たなパーサを作り出すツールであって、
ただ仕事の過程でパーサを使ってるだけ。
だから、yacc=パーサとは普通いわないし、誤解を生むだけ。
間違ってるといえるかもしれない。


634 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 21:28:17 ]
yaccはパーサージェネレーターだろ

635 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 21:30:42 ]
lisp にはパーサは要らないって言っているけど、
「んじゃパーサ無しでどうやってS式をパースするんだい」 って話になるんだけどどうしよう

636 名前:デフォルトの名無しさん [2005/06/26(日) 21:31:30 ]
>>629
ちょっと横レスすまんが、

> 旧DragonBook。

って何?新ドラゴンってあるの?
それとも21世紀本のこと?

> 後者ならO'Reilly本で足りるでしょう。

どうだろうね。俺もその本持ってるけど、
あんまり役に立つとは思えないんだけど。


637 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 23:05:19 ]
相変わらず変なのが粘着してるスレだな。

638 名前:デフォルトの名無しさん mailto:sage [2005/06/27(月) 00:20:14 ]
>>636
初版は1977年、もう絶版だから今の若い人は知らんか。

Principles of Compiler Design
Alfred V. Aho, Jeffrey D. Ullman
Addison Wesley
ISBN 0-201-00022-9

Amazonにも画像が無かったが、ぐぐってみたら
www-users.cs.york.ac.uk/~susan/bib/nf/a/alfredvh.htm
の上から二番目にあるな。





639 名前:デフォルトの名無しさん mailto:sage [2005/06/27(月) 04:44:46 ]
ああ。その本なら随分前に培風館から出ていたな、Winston Lisp第一版と同じシリーズで

640 名前:636 mailto:sage [2005/06/27(月) 21:02:19 ]
>>629
失礼いたしやした。
大変参考になりやした。

m(_ _)m


641 名前:デフォルトの名無しさん mailto:sage [2005/06/28(火) 21:23:10 ]
素人です。

相乗り質問で恐縮ですが、LALR(1) の1って先読みトークンの数ですよね?
このことは、YACCにシフトされているシンボルの数の最大値が1ということにはつながらないのですか?



642 名前:デフォルトの名無しさん mailto:sage [2005/06/28(火) 21:26:35 ]
素人です。

>>641
知りません。

643 名前:デフォルトの名無しさん mailto:sage [2005/06/28(火) 21:27:41 ]
っていうかマジレスすると

>YACCにシフトされているシンボルの数の最大値が1

は合っているんだっけ?

644 名前:デフォルトの名無しさん [2005/06/28(火) 22:19:16 ]
ヒロシです。
分からんとです。


645 名前:デフォルトの名無しさん [2005/06/29(水) 00:10:28 ]
>>641
そうです。
LR(k)、LL(k)のkは、高々k個の先読みでパースできる文法(のクラス)を表しています。


646 名前:619 mailto:sage [2005/06/29(水) 06:55:18 ]
>>629

> 旧DragonBook。
> あれを読んでたのは大学のころだな。みんなで輪講して、手でLR(0)itemを列
> 挙して、lookaheadを求めて、表を作成して…とかやった覚えがある。

情報ありがとうございます。
でも、もう手に入らないんですね。

> ところで、LRパーサーの生成方法を知りたいの?
> それともyaccの使い方を知りたいの?
|
> 後者ならO'Reilly本で足りるでしょう。

パーサー自体の生成方法までは、とても考えが及びません。

目的としては、後者です。だとすると、
やはり、O'Reillyの本が定番なんですかね。

入手して、若い頃のようにじっくり勉強してみたいと思います。 (^^;
ありがとうございました。


647 名前:デフォルトの名無しさん mailto:sage [2005/06/29(水) 07:47:49 ]
>>646
O'ReillyってLALRの説明まではしてなかったような。
とりあえず使いたいならO'Reillyでいいけど、
yaccを使いこなしたいなら、LALRをきちんと勉強したほうがいい。
コンフリクトしたらシフト優先とか、
自分で変な書式の式を追加するときに、%left とかがどう動くのかとかは
LALRを知らないと理解できない。

648 名前:デフォルトの名無しさん mailto:sage [2005/06/29(水) 08:05:26 ]
>>641
LALR(n)だと、
「シフトするトークンは1つだけど、n個先読みしてからシフトするか還元するか決める」
という考え方と
「最大n個シフトしてみて、ダメだったらシフトしなかったことにして還元する」
という考え方ができそう。



649 名前:デフォルトの名無しさん mailto:sage [2005/06/29(水) 12:40:16 ]
LALR(k): k-token LookAhead, Left-to-right parse, Rightmost-derivation,
LL(1):   Left-to-right and Left-most Parsing

650 名前:デフォルトの名無しさん mailto:sage [2005/07/01(金) 21:58:05 ]
>>647
で、貴方のお勧めは?


651 名前:デフォルトの名無しさん [2005/07/02(土) 21:06:34 ]
りん(ry


652 名前:デフォルトの名無しさん mailto:sage [2005/07/02(土) 21:52:02 ]
…………… く ず れ す ……………

653 名前:デフォルトの名無しさん [2005/07/04(月) 19:03:27 ]
>>652
恐らく lisper w


654 名前:デフォルトの名無しさん mailto:sage [2005/07/04(月) 20:28:29 ]
↑間違いなくアンチLISPer w

655 名前:デフォルトの名無しさん mailto:sage [2005/07/04(月) 21:55:27 ]
…………… き ち が い ね ん ち ぁ く ち う 。 よ う ち ゅ う い ……………

656 名前:デフォルトの名無しさん [2005/07/05(火) 00:54:08 ]
>>655
お前が一番の粘着だw


657 名前:デフォルトの名無しさん [2005/07/06(水) 21:55:12 ]
VC++でlexファイル(lex.yy.c)をコンパイルすることはできますか?
Windows版のflexとbisonは見つけたんですが、よく考えたら
gccで-ll(flexなら-lfl)オプションを付けないとコンパイルすることができない・・・

そもそも、gccがlflで何を取り込んでいるのかがわからず。
windowsでflex&bisonを使っているひとがいれば、教えていただけないでしょうか。

658 名前:デフォルトの名無しさん mailto:sage [2005/07/06(水) 21:58:34 ]
>>657
lfl は付けなくても平気。中に入っているのは確か main 関数だけだった筈だから



659 名前:デフォルトの名無しさん [2005/07/07(木) 12:19:19 ]
>>657 >>658

yywrap()も入ってるよ。
以下の関数定義をどっかに入れれば大丈夫。

int yywrap(void)
{
return 1;
}


660 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 18:00:12 ]
PHPやPerlでは、変数を $var のように表します。
「$」と「var」のあいだにはスペースを入れることができません。
ということは、字句解析でトークンに分解するときに、「$」と「var」の2つに分解するのではなく、
「$var」というひとつのトークンとして認識しているのでしょうか。
(字句解析が「$」と「var」の2つに分解すると、間にスペースを入れられると思うから。)

「$var」を認識するのに、字句解析で1つのトークンとして認識するのがいいのか、それとも
2つに分解して構文解析時に「$var」であると認識するのがいいのか、迷ってます。

661 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 18:26:38 ]
>>660
1トークンでいいと思うが。2トークンにするメリットが特に見当たらんし。

662 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 20:03:51 ]
1トークンと考える方が不自然。
2トークンでしょう。(Perl/PHPのソース確認してないけど)

理由:
1. Perlの場合、変数名の前に異なるプリフィクスを使う場合がある。
   例)配列宣言    @array、 配列参照    $array[index]
     連想配列宣言 %assoc、連想配列参照 $assoc{key}
 左側(配列コンテキスト)と、右側(スカラーコンテキスト)を、異なるトークンと認識したら、
 変数名管理上、トークンからプリフィクス(@, %, $)を外した名前を切り出す必要があり、
 トークンの扱いとして不自然。

2.プリフィクス(@, %, $)と、識別子(var, array, assoc)の間に空白を許すか否かは、
 単なる構文定義上の問題であり、2トークンで空白を許さない定義が可能。

                                                   いじょ

663 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 20:23:45 ]
PHPに@や%ないじゃん

664 名前:660 mailto:sage [2005/07/09(土) 20:27:10 ]
>>661
ありがとうございます。そんな気はするんですが、いまいち確信がなくて。

>>662
1.の場合でも、プリフィックスと変数名は別々に渡しませんか?
今はトークンを取得する関数gettoken()と、文字列を取得する関数getvalue()を用意していて、次のようにしています。
入力   gettoken()     getvalue()
------------------------------
'foo'   STRING      "foo"
100   INTEGER     "100"
3.14   DOUBLE     "3.14"
x     NAME       "x"
$var   VAR_SCALAR  "var"
@var   VAR_ARRAY  "var"
%var   VAR_ASSOC  "var"

(最後の2つはつけくわえてみました。)
特に不自然ではないと思うのですが、どうでしょう。自信もないですが。

2. について、「2トークンで空白を許さない」ためのうまい方法がよくわかりません。
よろしければ教えてください。

665 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 20:34:41 ]
空白もトークンとして切り出せ

666 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 21:59:11 ]
>>665
空白をトークンにするぐらいなら、プリフィクス込みでトークン切り出して、
プリフィクスを取り除いたシンボル名でシンボルテーブル検索した方が
楽だと思うけどなぁ。

まぁ、どっちでも動けば構わんので、あとは趣味の問題だが。

667 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 22:27:32 ]
>>663
PHPにも
$hoge = 1;
$varname = "hoge";
echo $$varname; // => 1

とかあるけどな!


668 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 23:13:32 ]
Perlで$$は、ポインターの値参照だったっけ



669 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 23:38:16 ]
ああ、そうか。

Perl5 だと参照使えるから ${$foo->{'a'}} なんてのもアリなんだな。それだと
確かに字句解析レベルではプリフィクスとシンボル名を分けた方が無難だ。

670 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 00:40:01 ]
>>665
ええっー、空白をトークンとするんですか。
構文解析がかなり面倒になるんですけど。

>>669
「$」のあとに英数字が続けば変数名、それ以外なら「$」であるというのじゃだめでしょうか。

671 名前:デフォルトの名無しさん [2005/07/10(日) 00:44:50 ]
>>664
了解。1トークンで充分だと思う。

Perlの

672 名前:671 mailto:sage [2005/07/10(日) 00:46:02 ]
>>664
了解。1トークンで充分だと思う。

Perlの $って、Cのポインタ演算子みたいな扱いするから、誤解した。

673 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 00:47:00 ]
>>670
そもそも「Perl5 のようなスカラー・配列・ハッシュ、さらにその参照を任意に
組み合わせてデータ構造を作れるような言語にするのか?」ってトコロから
考える必要があるかと。

単に $foo, @foo, %foo, $$foo ぐらいで済む程度の文法なら 670 の案や
1トークン方式で良し。Perl5 フルコンパチにしたければ変数関係だけで
{}, [] の のネストが発生するので、ネストは正規言語では処理できない
ことを考えると、ある程度は構文解析に逃がした方が楽そう。

674 名前:デフォルトの名無しさん [2005/07/10(日) 21:13:41 ]
いずれにせよ、スレ違い
Li(ry)


675 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 21:17:02 ]
LISPなら字句解析も構文解析も要らないのに。

676 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 21:24:23 ]
すまん。素でわかんないんだが、「LISP は字句解析が要らない」ってのは
    1.0
ってのが出てきたとき、それがシンボルか数値かリストかどうかを判断しなくても良いってことなのか?

あと、「LISP は構文解析が要らない」ってのは、カッコの対応が取れて無くても気にしないってことなのか?

677 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 21:27:15 ]
>>675-676 ネタ決定

678 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 21:56:58 ]
字句解析がいらない
→入力をreadするとS式が出てくる

構文解析がいらない
→S式をevalすると結果が出てくる



679 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 22:00:33 ]
それは要らないんじゃなくて、組み込みになってるだけじゃないの
自分で一から作るなら、どっちも必要でしょ

680 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 22:15:01 ]
自分で一から作るつもりならLISP必要ないよ

681 名前:676 mailto:sage [2005/07/10(日) 22:25:03 ]
なんかよく分かった。そりゃ必要ないよな LISP 側で全部用意してもらえてるんだし

682 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 22:32:57 ]
あえてLISPを使う意味は中間形式としてS式で処理できるからじゃないかと
S式に優位性を感じないなら必要ない

683 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 22:34:15 ]
昔prologスレで見た流れだ。
prologインタプリタをprologで書ける人とCで書ける人ではどちらが優れているか?

684 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 22:44:38 ]
>>678
つまんねぇネタ。

685 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 01:56:10 ]
ネタに見えるのか。

686 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 03:28:22 ]
>>685
お前が言わんと欲する所が、あまりに陳腐過ぎて、
細かい説明するのが面倒つうこと。

687 名前:デフォルトの名無しさん [2005/07/11(月) 06:30:49 ]
Lisper は他でやってくれ


688 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 11:37:21 ]
そのLIPSぐらいしか話題ないってことなんじゃないの。



689 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 16:37:20 ]
>>688
燃料投下(>>674)までの流れを見た上で言ってるのか?

690 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 18:35:40 ]
燃料に見えるのか。

691 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 18:55:26 ]
688はキヤノン社員

692 名前:デフォルトの名無しさん [2005/07/11(月) 19:22:03 ]
ここはLisp擦れ


693 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 19:49:05 ]
内部イテレータのある言語を設計してみたいと思ってるんですが、
Ruby以外に内部イテレータを持ってる言語って何がありますか?
Rubyの内部イテレータではなく、一般に内部イテレータとは
匿名関数と本質的にどの点で違うものなんでしょうか。

694 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 20:15:01 ]
「Rubyの内部イテレータ」について説明してくれたら答えられるかも。

695 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 21:29:03 ]
>>693
>Ruby以外に内部イテレータを持ってる言語って何がありますか?
このスレでさんざん出てきてるLISPというやヴぁい言語のインライン関数が元ネタ。
Rubyで内部イテレータとわざわざ限定してるのは対象データの
コンテナを抽象化して取り出すことを目的にしてるからじゃないかと。

>一般に内部イテレータとは匿名関数と本質的にどの点で違うものなんでしょうか。
質問の意図が不明だけど、まず役割が違うでしょ。
内部イテレータに匿名関数(ブロック)を渡してぶん回すんだし。
匿名関数側は取り出す要素の構造以外知らなくていいし、
内部イテレータはぶん回すコンテナの構造以外知らなくていい。
外部イテレータとの違いはここにある。


696 名前:デフォルトの名無しさん [2005/07/11(月) 22:43:27 ]
つまり、Ruby>Lisp ってことですか?


697 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 22:54:58 ]
mapとどう違うんだ?

698 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 23:07:43 ]
mapが何か関係あるのか?



699 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 00:25:21 ]
ここはLispとRubyの話は禁止
どうしてもやりたいのなら別スレ立ててそっちでやってください

700 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 00:25:38 ]
>>693
Smalltalkにはブロックという概念があり、これがちょうどRubyの内部イテレータ(ブロック)に相当します。
Lispのmapとも似ていますが、どちらかというとSmalltalkのほうに似ているんじゃないでしょうか。
Smalltalkとの違いは、Rubyでは基本的にメソッド1つにつき1つのブロックしか渡せませんが、Smalltalkは複数のブロックを渡すことができることです。

なおRubyでは、昔は本当にイテレータとしてのみ使われていましたが、今は他の用途にもよく使われるため、現在ではブロックと呼ばれることが多いようです。
また「内部イテレータ」というのは使われ方の名称であって、機能としては「クロージャ」というのがプログラミング言語一般の用語です。
(「クロージャ」という機能を「内部イテレータ」として使うということ)

701 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 01:06:35 ]
実装的にはイテレータとしてのみブロックを渡す場合は、
真面目にクロージャを作る場合よりも省略できる部分が、
結構あるんだよね。
あと、内部イテレータと外部イテレータにはそれぞれ、
長所と短所がある。簡便なのは内部イテレータだが、
複雑なイテレーションの場合は外部イテレータのほう
が良い場合もある。
個人的なオススメはクロージャが扱えるオブジェクト
指向言語なら外部イテレータを基本に設計して、内部
イテレータはライブラリで用意する、というやり方。


702 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 02:56:11 ]
>実装的にはイテレータとしてのみブロックを渡す場合は、
>真面目にクロージャを作る場合よりも省略できる部分が、
>結構あるんだよね。

詳細きぼんぬ

703 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 03:01:01 ]
>>702
環境をスタックからヒープに移すタイミングの問題。


704 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 04:07:52 ]
特殊用途向けに制限掛かったクロージャ?

705 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 07:33:41 ]
>>693
構文に関して言えば、
内部イテレータに特化した構文(だったものも含む)を持ってる言語は
俺の知ってる限りでRubyとSmalltalkだけかな。
他になんかあったっけ?

706 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 09:26:54 ]
>>705
SmalltalkのCollection関係の
 aCollection do:[each: 一件ごとの処理].
とかは言語組込みの構文じゃなくてクラスライブラリの命名ルールだよ。


707 名前:デフォルトの名無しさん [2005/07/12(火) 21:43:33 ]
つまり Ruby が最高言語ということでファイナルアンサ?


708 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 21:54:55 ]
ここの連中はRubyとLISPの名前を出せばほいほい釣れるよ。



709 名前:デフォルトの名無しさん mailto:sage [2005/07/13(水) 08:56:12 ]
あたしのために喧嘩なんてしないでッ

710 名前:デフォルトの名無しさん mailto:sage [2005/07/14(木) 20:44:00 ]
                         .,Å
                      .r-‐i'''''''''''i''''‐-、
                    o| o! .o  i o !o
                    .|\__|`‐´`‐/|__/|
                     |_, ─''''''''''''─ ,、 /
                    、-'      u   -、  
                  / U          0 \
                 /          /     i
                 |   ● ,,.   .,, ●      | 
      __   .      !    (_人__)        ノ
  /´ ̄       `!.      丶_   u        U ノ
  |  `にこ匸'_ノ .       '-、、,,,,,,_______,,,,,,、、-'
  ノ u  {                 _.. -―| :{   ,/ /   \
. / l   | __  / ̄ ̄`>'´   ノ'    ´ {、    \
/ |/     {'´    `ヽ. " ̄\ U `ヽ.    __,,.. -‐丶 u  ヽ
| / ヾ、..  }      u' 〉、    }    `ー''´  /´ ̄ `ヽ '" ̄\
! :}  )「` ノ、     ノ l\"´_,,ニ=-― <´  ヽ{  ノ(   `、  |
l   、_,/j `ー一''"   },  ノ ,  '''''""  \   ヽ ⌒ヾ      v  |
ヽ   _         /   } {. { l ┌n‐く  ヽ/ ``\        ノ
  `¨´    `¨¨¨¨´ ̄`{ 0  `'^┴'ー┘|ヾ    }、 u'   `  --‐r'′ キングヤッタス!!



711 名前:デフォルトの名無しさん [2005/07/14(木) 22:08:03 ]
>>709
リンゴタン?


712 名前:デフォルトの名無しさん [2005/07/15(金) 22:18:25 ]

LALR age


713 名前:デフォルトの名無しさん [2005/07/16(土) 18:07:28 ]
現在確認されている厨

・RUBY厨
・LISP厨
・りんご厨
・LALR厨



714 名前:デフォルトの名無しさん mailto:sage [2005/07/16(土) 18:13:11 ]
上から3番目のは、昔かたぎのFlash職人(元Macromedia Director職人)か?

715 名前:デフォルトの名無しさん mailto:sage [2005/07/16(土) 18:22:18 ]
>>713
LALRもダメでつか

716 名前:デフォルトの名無しさん mailto:sage [2005/07/16(土) 19:13:12 ]
りんごってVIPのことだろ

717 名前:デフォルトの名無しさん mailto:sage [2005/07/16(土) 21:10:41 ]
ここで暴れてる荒らしは、荒らしな上にアンチLISPにアンチRubyに
アンチLALRか。
救いようがねぇなw


718 名前:デフォルトの名無しさん mailto:sage [2005/07/16(土) 21:13:59 ]
志村坂上



719 名前:デフォルトの名無しさん [2005/07/18(月) 15:40:14 ]
すいません超初心者なんで的外れなことを覚悟で質問します。

bison/flexではいたコードってVCでコンパイルできますか??

720 名前:デフォルトの名無しさん mailto:sage [2005/07/18(月) 15:50:45 ]
>>719
やってみればいいじゃん

721 名前:デフォルトの名無しさん mailto:sage [2005/07/18(月) 16:57:29 ]
ってゆーかRUBY最強

722 名前:デフォルトの名無しさん mailto:sage [2005/07/18(月) 17:30:55 ]
>>708

723 名前:659 [2005/07/22(金) 02:50:23 ]
>>719

>>657-659 読め。

bison/flexで吐いたコードをVC++でコンパイルした経験は、俺はある。


724 名前:723 [2005/07/23(土) 23:01:08 ]
>>723
ありがとうございます。よく読んでいませんでした。

とりあえず原田賢一著 コンパイラ構成法という本を購入しました。
これから勉強します。

725 名前:719 mailto:sage [2005/07/23(土) 23:01:49 ]
すいません719です

726 名前:デフォルトの名無しさん mailto:sage [2005/07/25(月) 02:13:48 ]
LexやYACC等のツールを使わないとコンパイラ作れない奴なんざ
雑魚だろマジで。


727 名前:デフォルトの名無しさん mailto:sage [2005/07/25(月) 02:15:53 ]
>>726
字句解析とか構文解析とか、単純なんだから別に自動生成でいいやん。
ていうか、こういうツールだって、どういうことやってるのか理解できない人には使えないと思うよ。

728 名前:デフォルトの名無しさん mailto:sage [2005/07/25(月) 14:06:30 ]
>>726
rubyの作者を雑魚あつかいですか?



729 名前:デフォルトの名無しさん mailto:sage [2005/07/25(月) 15:05:00 ]
>>726のようなことを言う奴はコンパイラのバックエンドをろくに書けない奴に多い。
たぶんフロントエンドだけがやっとで挫折したんだろう。


730 名前:デフォルトの名無しさん mailto:sage [2005/07/26(火) 10:08:34 ]
LexやYACC等のツールを使わないとコンパイラ作れない奴が雑魚なら、
LexやYACC等のツールを使わずにコンパイラを作る奴はフジツボ。
LexやYACC等のツールを使えない奴はプランクトン。

731 名前:デフォルトの名無しさん mailto:sage [2005/07/26(火) 12:20:11 ]
ここは酸っぱい葡萄が多いインターネットですね。

732 名前:デフォルトの名無しさん mailto:sage [2005/07/26(火) 20:48:40 ]
イソップ童話キタ━━━━━(゚∀゚)━━━━━ !!!!

733 名前:デフォルトの名無しさん mailto:sage [2005/07/26(火) 21:15:44 ]
言語鍛冶が覆面で議論するスレはここですか?

734 名前:デフォルトの名無しさん [2005/07/29(金) 11:04:33 ]
JavaScriptのコンパイラコンパイラが欲しいんだけれど、調べた限りではないみたいなので、
これを機会に時間のあるときに作ってみようと思ったのだけれど、
コンパイラコンパイラ実装の参考文献で良書はありますか?英文和文問いません。

735 名前:デフォルトの名無しさん mailto:sage [2005/07/29(金) 22:56:38 ]
ネタとしてスルー。

736 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 01:54:03 ]
JavaScriptでかかれたコンパイラコンパイラ?(まさか〜)

でも文脈からだとJavaScriptの構文を理解するbisonコードくさいんだけどさ。


737 名前:デフォルトの名無しさん [2005/07/30(土) 02:03:01 ]
コンパイラコンパイラが生成するコードがJavaScriptのものなんじゃないの?

738 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 02:04:06 ]
Mozillaのソースとか・・・・・・・・



739 名前:734 mailto:sage [2005/07/30(土) 02:13:44 ]
>>737
そう、そういう意味です。
JavaScriptで出来たコンパイラコンパイラなんてあれば面白いけれど…

740 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 06:12:34 ]
>>734>>734


741 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 06:52:32 ]
ドライバだけJavaScriptなら簡単なんじゃん?

742 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 07:54:28 ]
CからJavaScriptに変換するトランスレーター作れよ

743 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 17:52:12 ]
>>734
LALRパーサージェネレータでよければ、kmyaccでサポートしてます。
www005.upp.so-net.ne.jp/kmori/kmyacc/index.html

こうした方がいいという意見も歓迎。

JavaScriptで書いたデモの例
www005.upp.so-net.ne.jp/kmori/kmyacc/calcdemo.html


744 名前:734 mailto:sage [2005/07/30(土) 19:50:44 ]
>>742
それは良いアイデアですね。
JavaScriptの言語的機能は制限されるのが残念ですが、
とにかく使いたいだけならそれは良さそうです。

>>743
おお、これはそのまま使えますね!ありがとうございます。
早速使ってみます。助かりました。

745 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 21:10:39 ]
>>744
使うにあたってはプロトタイプを手直しした方がいいでしょうね。

ところで、JavaScriptでは入力を得る手段が限られていると思うのですが、
どんな対象をパースするのか、さしつかえなければ教えてもらえませんか?


746 名前:734 mailto:sage [2005/07/30(土) 23:40:21 ]
>>745
助言ありがとうございます。
JavaScript ObfuscatorをJavaScriptで書こうかと思っていました。

747 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 23:57:26 ]
>>746
ようするにスクリプトを読まれたく無いと。
ただそれだけ?



748 名前:734 mailto:sage [2005/07/31(日) 00:11:31 ]
>>747
そういうわけじゃないですよ。どちらかといえば趣味です。

その時は手動で構文解析を作りましたけれど、
チェスの掲示板に棋譜を読み込むためにPGNファイルのフォーマットをパースするなど、
JavaScriptでコンパイラコンパイラが作れればいいなーと思うことは稀にありました。



749 名前:デフォルトの名無しさん [2005/08/03(水) 12:01:25 ]
ちょっと趣旨が変わってしまいますが…
状態遷移を扱うのに適するエンジンってありませんか?

やりたいことは、入力を受け付けて、新しい状態を出力するモジュールです。
その状態遷移ルールは何らかの自作エディタでペトリネットやUMLの
アクティビティ図のように記述しておきます。

単にゴリ押しで、定義データに各遷移ルールを記述しておき、制御モジュールで
パターンマッチングで次の状態を探すだけでも可能ですが、トークンのJoinとか
考えると、いろいろ内部情報を保持する必要があります。

普通のスクリプトやゲームのシナリオなんか参考になる気もしますが、今回の場合、
有限状態機械に特化したもので十分です。
また、状態遷移図の定義の変更は頻繁に行われます。

もし、美しいアーキテクチャがあるなら、ゴリ押しのエンジンを作り直したいと
思っているのですが、オブジェクト指向で機械の内部状態とか定義方式を美しく
表現している設計って、どこかにないでしょうか?

750 名前:デフォルトの名無しさん mailto:sage [2005/08/03(水) 13:04:20 ]
>>749
>オブジェクト指向で
限定しない方が良いよ。OO に限定するとステートパターンしか出てこないから

751 名前:デフォルトの名無しさん mailto:sage [2005/08/03(水) 13:10:40 ]
状態遷移を美しく表現する設計は興味があるな。
世の中ではどんな形なんだろう

752 名前:デフォルトの名無しさん [2005/08/03(水) 21:01:28 ]
オブジェクト1つが、1つの有限状態機械だと思ってる。
UMLでもステートチャート図あるし
状態遷移をオブジェクト指向で表そうとするのは適切でないような気がするけど

753 名前:デフォルトの名無しさん [2005/08/03(水) 22:18:27 ]
う〜ん、でも、オブジェクトを入出力とするエンジンって有り得ないですかねぇ。
事前の状態遷移定義に従って、オブジェクトAがエンジンによってBに変えられるような。

別にオブジェクト指向に拘る訳じゃないですが、オブジェクト指向を例にとると、
1つのオブジェクトが、エンジンに渡されると、2つのオブジェクトに分岐したり、
その逆に2つのオブジェクトが揃ったら、1つのオブジェクトに合流したり…
さらに、その合流待ちの状態が無限って訳にはいかないだろうから、生存時間が決まってたり。

こういうのって、昔から学術的には扱われてると思うのですが、
実際に実装するとなると、どういう定義記述方法にして、どんな内部状態を持たせるのかなぁと。
もしかして、何か美しい設計が、すでにあるのかと思った次第です。

今なら、定義はXMLになるのかなぁ…

754 名前:デフォルトの名無しさん mailto:sage [2005/08/03(水) 22:40:13 ]
>>753
まさか…oさん?

755 名前:デフォルトの名無しさん mailto:sage [2005/08/04(木) 00:07:42 ]
CodeProject に XML を利用したステート・マシンのサンプルがあったような気が・・・
気のせいだったかも

756 名前:デフォルトの名無しさん mailto:sage [2005/08/04(木) 05:06:54 ]
要求に合うかどうか判らないけど、
Object指向でPush-down automatonならFinate State Machine。
尚、定義ファイルのパースは別途必要です。

757 名前:デフォルトの名無しさん [2005/08/04(木) 16:54:55 ]
>>754 いいえ違います。

>>755
www.codeproject.com/csharp/xmlfsm.asp
キャ━━━(*´∀`*)━━━ !!!!!
と思いましたが、よく見ると、これ、現状のコードとスタート地点同じ気がします…
この先、アクティビティ図とか、ペトリネットレベルまで拡張していくと、
ごちゃごちゃしてきて、もっと美しい設計無いのかと思った次第です。
だから、この先にある、汎用性のあるものが知りたいと…
我侭で申し訳ありません。

>>756
有限状態オートマトンの汎用エンジンに、興味あります。
Radiumさんの過去ログに記述ありました。月末の2日分です。
www.radiumsoftware.com/0401.html

このEventStudioというものが、なんか実現してるっぽいです。
www.eventhelix.com/EventStudio/
少し詳しく読んでみたいと思います。


758 名前:デフォルトの名無しさん mailto:sage [2005/08/05(金) 23:48:44 ]
boost::fsm...



759 名前:デフォルトの名無しさん mailto:sage [2005/08/06(土) 22:01:29 ]
>>750
StatePatternで何か不都合があるのか?

760 名前:デフォルトの名無しさん [2005/08/07(日) 00:27:31 ]
www.eventhelix.com/RealtimeMantra/HierarchicalStateMachine.htm

これは、どの辺がいいの?解説求む。

761 名前:デフォルトの名無しさん [2005/08/17(水) 09:13:09 ]
Windows上で、JITで生成したnative codeを、
DLL形式でファイルに保存して実行するのではなくて、
メモリに保存して実行する方法を教えてください。

762 名前:デフォルトの名無しさん mailto:sage [2005/08/18(木) 02:30:07 ]
誰かC++の関数スタックを活かしながらSchemeの継続を実装する方法を教えてください。
……できそうにないのはわかっているけど、あきらめるのはちょっとくやしい……

763 名前:デフォルトの名無しさん mailto:sage [2005/08/18(木) 03:50:57 ]
>>762
大域脱出のみに使われるような継続であることがSchemeのプログラム
を解析して証明できる場合なら、setjmp/longjmpでいけるんじゃね?
Schemeコンパイラ関連の文献読むと、色々ヒントが書いてあるよ。

764 名前:デフォルトの名無しさん mailto:sage [2005/08/19(金) 00:42:56 ]
やっぱり脱出方向だけにしてsetjmp/longjmpぐらいしかないか……

真面目に継続使いたかったら(自前でstack作ったりして)継続を管理するしかないのかな。
……Commandパターン使って少しでも手を抜くとするか……

765 名前:デフォルトの名無しさん mailto:sage [2005/08/19(金) 03:04:24 ]
>>764
SchemeをCPSでCにコンパイルする方式。
home.pipeline.com/~hbaker1/CheneyMTA.html

C関数はreturnしないので、スタックはヒープとして使う。
いっぱいになったらcopying GC。


766 名前:デフォルトの名無しさん [2005/08/19(金) 23:28:22 ]
自作言語に正規表現libをなんとかして融合しようと思ってるんだけど
リテラルとして組み込むと内部で正規表現objectと文字列リテラルの切り分け
みたいなのが別途必要っぽいし、ライブラリとして組み込むと呼び出し手順が
複雑になって結局使われないんじゃないかとか色々考えても良さげな方法が
みつからなかった。

つーかrubyみたくperlの真似して/〜/にすると//という1行コメントと勘違いする
かもしんないし、/はそもそも割り算に使ってるし。
独創的な構文にしすぎてメンテする俺自身忘却するようなの作っても
それはそれで意味ないし別に/〜/でもいいけどよ、出現位置によってトークンの
意味が変わるのって言語として変な気がするんだけどおまえらどうですか?


767 名前:デフォルトの名無しさん mailto:sage [2005/08/19(金) 23:53:09 ]
馬鹿の考え休むに似たり

768 名前:デフォルトの名無しさん mailto:sage [2005/08/19(金) 23:54:27 ]
正規表現を捨てて、MLのようなパターンマッチ構文導入がトレンド(大嘘)



769 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 01:38:30 ]
>>766
個人的には Perl6 のパターンマッチングが好きだ。


770 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 01:57:23 ]
コメントが//なら
|〜|にする。

771 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 07:53:05 ]
とりあえずm4みたいにリテラルの前後変更できるようにしてさっさと組んじゃえば。


772 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 09:12:02 ]
>>766
独自の記号から作ってもいいんじゃない?
「この言語で開発するときのフォント」って感じで
フォントと文字コードの定義から言語にしちゃうの。

そうすれば、紛らわしい記号に悩むことないし、
今まで2文字使っていた演算子も1文字ですむし
区別もはっきりするし、いいことずくめ

昔と違ってPCの性能はあまるぐらいなんだし
フォントぐらい共有しない独自のだって大丈夫だよ

773 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 12:57:10 ]
orz〜orz
にしようよ

774 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 13:07:40 ]
>>772
APLって知ってる?
独自記号の演算子だらけの言語。
MLやBBSなんかにコードをコピペできないとかいろいろ不便すぎて、
結局普通の文字コードの範囲で表現するほうがいいというのが結論。

例えばこのスレにもコードを貼れないよ。


775 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 15:41:01 ]
>>774
そっか、そういうのがあるのかぁ。

でもその結論が出た時点とも今は違うんじゃない?
あ、Unicodeのワイド文字なら使ってもよさそう。

HTMLのエンコードみたいに&lt;とかで内部表現しとくとか。

776 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 15:51:47 ]
1. ワイド文字を持ったフォントを使ってるとは限らん
2. コペ時に表現が変わったら読みづらくてかなわん。
 昔のSmalltalk(Squeakは今でも)はフォントがいじくられてて、
 代入記号に←を使っていたが、コペると_になってダサダサだった。

777 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 16:15:04 ]
日本人なら積極的に漢字を使おうぜ。
『置換「 」を「 」に。』
これでどうだ!
なんかひまわりの二番煎じっぽい気もする。

関係ないけど、'コペる'って斬新だな。
どこか間の抜けた響きで気に入った。

778 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 16:31:39 ]
コペる21



779 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 20:11:25 ]
最近、変数名、関数名、クラス名とかに漢字遣ったほうがわかりやすい気がしてきた。

780 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 20:26:16 ]
補完やってくれるなら。
IMEのネックがあるかぎり漢字は受け付けないなあ。
名前考えるの面倒とは思うけど。

781 名前:デフォルトの名無しさん mailto:sage [2005/08/21(日) 00:09:23 ]
>>766
使うひとのことを考えて、できればリテラルで。
JavaやPHPのようにライブラリとしてしまうと、正規表現を文字列で指定しなきゃならん。
そうなるとエスケープがすごく面倒で、使う人にとってよくない。
リテラルとして言語仕様に組み込めば、おまえがしんどいだけで、使う人はハッピー。

構文はPerlやRubyをまねしたほうがよい。
使ってもらうことを考えたら、よほどの利点がない限りは他の言語と同じにしたほうが、使う人にとって敷居が低い。
おまえの独自言語のウリは正規表現にあるわけじゃないだろ、きっと。
ウリになる部分は独創的にしてかまわんが、ウリにならない部分はオーソドックスにしとけ。

コンテキストによって記号の意味が変わるのは、確かに悩ましいところだが、お前が苦労すればいいだけのこと。
使う人に苦労をさせるな。勉強しろ。
それでも「昔の仕様をひきづって変なコードになるのはイクナイ!」と思うなら、そうだな、「@/rexp/」とか「./rexp/」にでもしとけ。
まあRubyはPerlをまねただけで、Perlはsedをまねただけで、sedはviやedをまねただけで、edは割り算記号なんかなかったから問題なかっただけなんだけどな。よく考えたらそんな昔の仕様を今でもひきずるのはおかしい気がしてきた。


782 名前:デフォルトの名無しさん mailto:処理系の名前はあえて伏せるよsage [2005/08/21(日) 00:18:13 ]
>>781
同意。
例えば正規表現リテラルが #/rexp/ の言語処理系も実際あるわけだし。
このくらいだと違和感なく使える。

783 名前:デフォルトの名無しさん mailto:sage [2005/08/21(日) 12:05:31 ]
スラッシュの代わりに別の文字を使えるようにするのも忘れるなよ〜
これ便利だから

784 名前:デフォルトの名無しさん mailto:sage [2005/08/21(日) 23:38:39 ]
主な括弧の場合は対応する閉じ括弧で終われるようにね


785 名前:デフォルトの名無しさん mailto:sage [2005/08/21(日) 23:44:59 ]
>>765
これを実装したSchemeコンパイラは公開されてるんでしょうか?


786 名前:デフォルトの名無しさん mailto:sage [2005/08/22(月) 01:43:41 ]
>>766
プリプロセッサで関数呼び出しに置き換えちゃうとか

787 名前:デフォルトの名無しさん mailto:sage [2005/08/22(月) 02:52:36 ]
プリプロセッサだと実際の行番号がわからんという不具合を抱えることになる
まあやり方次第かもしれないけど

788 名前:デフォルトの名無しさん mailto:sage [2005/08/25(木) 03:42:41 ]
>>785
Baker本人はもちろん実装してるんでしょ。
ほかにこんなのもあるようです。
Chiken Scheme Compiler
www.call-with-current-continuation.org/

しかしすごいドメイン名。





789 名前:デフォルトの名無しさん mailto:sage [2005/08/25(木) 12:04:31 ]
あるかどうかじゃなくて公開されているかどうかでは?


790 名前:デフォルトの名無しさん mailto:sage [2005/08/25(木) 23:53:57 ]
>>789
リンク先見てから言ってくれ。




791 名前:デフォルトの名無しさん mailto:sage [2005/08/26(金) 01:39:26 ]
リンク先を見ろという前にchikenが785の質問に合致するかどうかを説明すべきでは?




792 名前:デフォルトの名無しさん mailto:sage [2005/08/26(金) 05:00:15 ]
この話の流れで実は合致しないというオチだったらびっくりだな。

793 名前:デフォルトの名無しさん mailto:sage [2005/08/26(金) 08:19:29 ]
>>791
いたれりつくせりを要求してんな

794 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 22:12:59 ]
おまいら日経ソフトウェアがきましたよ
software.nikkeibp.co.jp/software/backno/2005/0510indexc.html


795 名前:デフォルトの名無しさん [2005/08/31(水) 22:38:04 ]
>Part4 Javaで作るオリジナル言語
>  〜やさしいLispインタプリタの作り方

オワタw

796 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 22:50:42 ]
JavaでLISPなんて泥臭い部分全部端折ってるじゃん

797 名前:デフォルトの名無しさん mailto:sage [2005/09/01(木) 00:02:08 ]
testや最適化という一番泥臭い部分が残ってます。

798 名前:デフォルトの名無しさん mailto:sage [2005/09/01(木) 01:26:34 ]
test?はよくわからんが、最適化なんて枝葉だからどうでもいい



799 名前:デフォルトの名無しさん mailto:sage [2005/09/01(木) 01:35:23 ]
>>798
世の中のコンパイラ屋さんが泣いています

800 名前:デフォルトの名無しさん mailto:sage [2005/09/01(木) 12:22:04 ]
lispでtestって無茶簡単なような

801 名前:デフォルトの名無しさん mailto:sage [2005/09/01(木) 16:18:08 ]
>>799
いや、雑誌の件はインタプリタだから(w
正直java製のLISPインタプリタでタイトルに「簡単」とか書いてあると、
読まずに中身が解ってしまう気がするのは俺だけじゃないと思う。
バイトコードにコンパイルするとかならもの凄くおもしろそうなのに。

802 名前:デフォルトの名無しさん mailto:sage [2005/09/02(金) 08:14:28 ]
>>801
コンパイルは雑誌記事ではちと荷が重くないかい?
特集で3回くらい組まないと、紙面ではあるていどちゃんと説明できないだろうし。


803 名前:801 mailto:sage [2005/09/02(金) 14:23:52 ]
>>802
確かに、雑誌では重いのは大変よくわかります、はい802氏の言うとおりです。
でもLISP(Schmeの方がより良いと思いますが)のネイティブ(バイトコード含む)へのコンパイルと最適化って
書籍では見かけた事が無いのですよ(国内しか調べてません、英語文献があれば教えてくれると嬉しい)
で、結局皆どこを見に行くかと言うとACMとか、各大学の論文とかなんですよ。
情報工学出じゃないと検索すら泣ける結果が多いから、日本語で書籍で出せば結構なインパクトあると思うのですがね。

中田先生の書籍は関数型言語より手続き型言語の物だけだしorz


804 名前:802 mailto:sage [2005/09/02(金) 17:25:05 ]
>>801
コンパイラについて体系立った形で書籍として提供されれば、漏れも買うな。
しかし、話の流れは雑誌だし。
Lispのコンパイラについては、昔々にKCL(古っ)のソース読んだりして独学したけど、
あれは出力がCだし。

最近の処理系では、
dmoz.org/Computers/Programming/Languages/Lisp/Scheme/Implementations/
なかんじなのだろうか。いくつかコンパイラもあるようだから、ソース読んでみるかね。



805 名前:デフォルトの名無しさん mailto:sage [2005/09/03(土) 14:23:24 ]
>>803を読む限り、Lispに特化した最適化や高度な最適化というより、
関数型言語のコンパイルと最適化の基本を知りたがってるように感じた。
もしそうならLispに限ることないんじゃないかな。
多分mincamlとか見るといいと思う。
min-caml.sourceforge.net/

806 名前:デフォルトの名無しさん mailto:sage [2005/09/03(土) 15:57:02 ]
>>805
そこでAppel先生ですよ

807 名前:デフォルトの名無しさん [2005/09/03(土) 23:50:18 ]
オイオイ、好い加減LISPの話はよせ。
おまえらつられすぎw

リンゴタソ、ハァハァ


808 名前:デフォルトの名無しさん mailto:sage [2005/09/03(土) 23:53:42 ]
>オイオイ、好い加減LISPの話はよせ。
なんで?
きみが嫌いなだけか?
理由でも書いてくれると話が広がるんだが。



809 名前:デフォルトの名無しさん mailto:sage [2005/09/04(日) 00:41:31 ]
もともとは日経プログラミングの記事の話題なんだっけ

810 名前:デフォルトの名無しさん [2005/09/04(日) 01:01:50 ]
質問です。
デザインパターンのInterpreterパターンはLL(1)文法しか
記述出来ないのでしょうか?
LALR(1)文法をInterpreterパターンで実装することは可能でしょうか?



811 名前:デフォルトの名無しさん mailto:sage [2005/09/04(日) 13:20:17 ]
>>808
だから807は広げたくないんだろw

812 名前:デフォルトの名無しさん mailto:sage [2005/09/04(日) 18:47:46 ]
807=811
コテハン名乗ってくれ
透明化するから

813 名前:デフォルトの名無しさん mailto:sage [2005/09/04(日) 19:11:24 ]
つNG word: w

814 名前:デフォルトの名無しさん [2005/09/04(日) 19:41:39 ]
ついでに、LALRも金句らすい


815 名前:デフォルトの名無しさん mailto:sage [2005/09/04(日) 19:52:42 ]
>>810
可能だよ。
Interpreter パターンの LL(1) 解析部を LALR(1) に改造すれば良い。
再帰下降方にする事だって出来る。

しかも Interpreter パターンであることに変わりは無い。

816 名前:デフォルトの名無しさん [2005/09/04(日) 21:25:29 ]
Interpreter パターンと Visitor パターンを混ぜて
どうこうするのって妙にわかりにくいというかしっくりこないと
いうか
オブジェクト指向の中に無理やり詰め込んでるような気がするのは
俺だけだろうか??

817 名前:デフォルトの名無しさん mailto:sage [2005/09/04(日) 21:29:56 ]
つ[pc8.2ch.net/test/read.cgi/tech/1119158274/l50]

……っていうかお前マルチやんか

818 名前:デフォルトの名無しさん [2005/09/04(日) 21:56:59 ]
つりんごタソ



819 名前:デフォルトの名無しさん mailto:sage [2005/09/04(日) 22:08:26 ]
>>815
ありがとうございます。
まずはLL(1)で簡単なものを作ってみて
その後LALRに変えていこうかと思います。

820 名前:デフォルトの名無しさん [2005/09/08(木) 20:45:28 ]
アフォ?
なんで、llからlalrにかえんのw


821 名前:デフォルトの名無しさん mailto:sage [2005/09/08(木) 20:58:17 ]
出来ないことを出来るようにするため

822 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 01:41:01 ]
>>820
馬鹿かお前?

823 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 05:41:33 ]
理由を書かないお前が馬鹿なのは明白ですw

824 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 11:24:47 ]
本人じゃないから本当のところはわかんないけど、
LLでは扱えない構文を導入するのかもしれないし、
単に勉強のためなのかもしれない。
そんなことも思いつかずにアフォ呼ばわりするお前の成績は不可。

825 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 12:51:03 ]
要するに、何も特定できないのに横からしゃしゃり出てきて
煽ってるだけってことですね。みっともないw

826 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 00:27:02 ]
つーか普通にLLだと左再帰の問題があるだろ?

827 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 00:34:45 ]
粘着にレスするのいいかげんやめようよ……

828 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 08:59:05 ]
そうだな。以降>>827は放置で。



829 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 09:35:36 ]
C++の名前空間ぽくしようと思ったけど
面倒くさすぎてやめた
やぱモジュール形式かな

830 名前:名無しさん@そうだ選挙に行こう [2005/09/10(土) 20:27:29 ]
>>829
ひとりごとは、他でやってくれ。


831 名前:名無しさん@そうだ選挙に行こう mailto:sage [2005/09/10(土) 21:14:14 ]
敵幹部「名前空間にひきずりこめ〜」
宇宙刑事「うわ〜」

832 名前:名無しさん@そうだ選挙に行こう mailto:sage [2005/09/10(土) 22:24:33 ]
>>831
何その間抜け時空

833 名前:名無しさん@そうだ選挙に行こう mailto:sage [2005/09/11(日) 01:05:32 ]
よーしスーパーササニシキだ

834 名前:デフォルトの名無しさん [2005/09/12(月) 00:11:02 ]
質問です。文法がLR(1)かどうかというのを、状態遷移図を完全に書かずに判断できますか?
たとえば、

S→V$
V→(L) | x
L→V | V;L

という文法があった場合、直感的にはLR(1)文法であると思われますが、理由が説明できません。
証明のためにLR(1)項集合の状態遷移を全部書くと結構な量になりそうです。
すべての状態遷移を書かずに証明する方法は無いものでしょうか。

835 名前:デフォルトの名無しさん mailto:sage [2005/09/12(月) 09:39:12 ]
>状態遷移を書かずに
ここを楽にしたいならyaccにでも食わせたら?
正確にはLR(1)じゃないけど

836 名前:デフォルトの名無しさん [2005/09/12(月) 22:56:28 ]
>>835
天才w

うまいやり方ですね。
LISP房には思いつかんでしょうなw


837 名前:デフォルトの名無しさん mailto:sage [2005/09/12(月) 23:03:10 ]
またLISPを目の敵にした馬鹿出現ですか?

838 名前:デフォルトの名無しさん mailto:sage [2005/09/12(月) 23:05:29 ]
だーかーらー
そうやって脊椎反射するから、わいてくるんだってば
いい加減スルーしようよ



839 名前:デフォルトの名無しさん mailto:sage [2005/09/12(月) 23:05:48 ]
NGワード:w

840 名前:デフォルトの名無しさん mailto:sage [2005/09/12(月) 23:07:29 ]
毎日いるみたいだな
LISP下手に導入して失業したか

841 名前:デフォルトの名無しさん mailto:sage [2005/09/12(月) 23:08:59 ]
834ですが、誓って836ではありません。

やっぱり正確なLR(1)であるかどうかを判断するには、
実際に状態遷移を書いてみるのが正攻法なのですね。
怪しそうなところだけ手でチェックして、見つからなければ…
自分でチェックプログラムを作るのがよさそうですね。
ありがとうございました

842 名前:デフォルトの名無しさん mailto:sage [2005/09/13(火) 02:45:54 ]
形式数学なら、大学のソフトウェア資材に証明チェッカとかいう
くだらないソフトあるはずだからそれでしらべてみ。
あとは普通に1階述語論理でかけるべ?

843 名前:デフォルトの名無しさん [2005/09/13(火) 16:17:21 ]
つ834==836


844 名前:デフォルトの名無しさん mailto:sage [2005/09/15(木) 16:32:08 ]
ttp://mono.kmc.gr.jp/~oxy/hiki.cgi?rtype


845 名前:デフォルトの名無しさん mailto:sage [2005/09/16(金) 00:44:06 ]
↑ブラクラ

846 名前:デフォルトの名無しさん mailto:sage [2005/09/16(金) 02:07:56 ]
>>845
少なくともそういうデマ系の嘘はやってはいけない事だと思うがどうよ。

847 名前:デフォルトの名無しさん mailto:sage [2005/09/16(金) 02:16:36 ]
URLだけ貼り付けるのも悪質

848 名前:デフォルトの名無しさん [2005/09/16(金) 11:07:58 ]
>>846
そんな無駄口たたくなら、お前が説明した文書でもかいたらどうだ?





849 名前:デフォルトの名無しさん mailto:sage [2005/09/16(金) 11:38:40 ]
なにこの小学生レベルの居直りw

850 名前:デフォルトの名無しさん mailto:sage [2005/09/16(金) 12:10:03 ]
なんだとコラ
小学生に失礼だ!

851 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 00:21:04 ]
↑クソスレ

852 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 00:23:50 ]
はいはいろりすろりす

853 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 01:24:13 ]
←ブラクラ

854 名前:デフォルトの名無しさん [2005/09/17(土) 01:32:57 ]
おまえらつられすぎw
まるでLIS(ry


855 名前:デフォルトの名無しさん [2005/09/17(土) 03:19:13 ]
Targetを指定したディレクトリに作成できません

SRC=/topdir/src

/topdir/obj/hoge.o : $(SRC)/hoge.c
cc -g -c $(SRC)/hoge.c

makeするとカレントディレクトリにhoge.oが作成されてしまします。
/topdir/obj/配下にhoge.oを作成したい場合どおすればよいのか
アドバイスお願いします。

856 名前:デフォルトの名無しさん [2005/09/17(土) 03:19:45 ]
Targetを指定したディレクトリに作成できません

SRC=/topdir/src

/topdir/obj/hoge.o : $(SRC)/hoge.c
cc -g -c $(SRC)/hoge.c

makeするとカレントディレクトリにhoge.oが作成されてしまします。
/topdir/obj/配下にhoge.oを作成したい場合どおすればよいのか
アドバイスお願いします。

857 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 03:48:09 ]
コンパイル後にmvで移動させちゃえば?
つか、なんでここで聞く?

858 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 04:05:40 ]
/topdir/obj/をカレントにしてください
/topdir/obj/にシムリンク貼ってください
/topdir/obj/配下にお届けください
呼んでる-g -cの意味を教えてくれたらお礼に教えます




859 名前:デフォルトの名無しさん [2005/09/17(土) 14:40:38 ]
おまえ、Lis*erか?
gcc -o で指定しる!



860 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 15:03:29 ]
池沼がわいてるな

861 名前:デフォルトの名無しさん [2005/09/17(土) 21:57:48 ]
下向き構文解析を手でがりがり書くときに、
シンボルテーブルに追加する変数のスコープって
どうやって管理してる?
Cライクなヤツを勉強がてら作ってるんだけど
俺は宣言された変数とかをそれが宣言された関数名とネストのレベルで
テーブル検索できるようにしたけど・・・

あと、シンボルテーブルってグローバルに一個持っておく感じでも
よいの?


862 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 23:32:48 ]
>>861
変数表(グルーバル) -> 変数表(スコープA) -> 変数表(スコープB)

こんな感じでスタックを使うのはどうだろう?

863 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 23:35:44 ]
グルーバルって寝ぼけているなorz
グローバルです。

864 名前:デフォルトの名無しさん mailto:sage [2005/09/18(日) 00:22:47 ]
グローバルのみハッシュ表みたいなのでO(1)で管理すれば効率よくなるはず。
名前空間あるとやっかいだけど。

865 名前:デフォルトの名無しさん mailto:sage [2005/09/18(日) 03:19:52 ]
ちっと前Cっぽいの実装したけど全部のブロックにIDつけると楽だったよ。
[0]void f[1](int a)[2]{ for(;;)[3]{...}; while(1)[4]{...}}
int main[5](int argc, char** argv)[6]{ ... }
わかりづらいけどこんな感じね([n]がID)。
で、記号表を同名登録可能にして、登録のときは名前=>ID,情報として、
検索のときはHITした集合から可視スコープのIDで絞り込む。
可視スコープはスタックで管理してね(上の例ではwhileの中なら[4,2,1,0]、
whileから出たら[2,1,0])。

あと、まっとうな言語なら記号表は1個でいいと思うよ。
Cは構造体とかが別ネームスペースだから複数あったほうが実装しやすいけど。

866 名前:デフォルトの名無しさん mailto:sage [2005/09/18(日) 06:15:58 ]
class Table {
 Table(Table parent);
 Object get(String ident) { 自分が持ってなければ親を検索 }
}

// 再帰的下向き構文解析
void statement(Table t) {
 varDecl(t)かblock(t)かexpr(t)か……を呼び出す
}
void varDecl(Table t) {
 tに登録
}
void block(Table t) {
 t = new Table(t);
 ブロックの終わりまでstatement(t)を呼び出す
}
 :

867 名前:デフォルトの名無しさん mailto:sage [2005/09/18(日) 06:26:34 ]
>>865
(名前,ID)=>情報
ではなくて?
構文解析終わったブロックの情報を捨てないんだとすると、
最後のほうでは、i を検索すると大量にヒットする予感。

868 名前:デフォルトの名無しさん mailto:sage [2005/09/18(日) 14:22:28 ]
Cで開発された、Cのコンパイラのソースで、サンプル的なものってあります?



869 名前:デフォルトの名無しさん mailto:sage [2005/09/18(日) 14:25:40 ]
>>868
手当たり次第のスレで聞きまくってるな

870 名前:デフォルトの名無しさん mailto:sage [2005/09/18(日) 14:31:17 ]
>>869
いや、初めてここで聞いてるんだが

871 名前:デフォルトの名無しさん mailto:sage [2005/09/18(日) 14:37:35 ]
>>868
gcc

872 名前:デフォルトの名無しさん mailto:sage [2005/09/18(日) 15:35:14 ]
gccはいいサンプルですね。

873 名前:デフォルトの名無しさん mailto:sage [2005/09/18(日) 16:00:28 ]
gcc 肥大化しすぎて わけわかめ

874 名前:デフォルトの名無しさん mailto:sage [2005/09/18(日) 16:14:36 ]
読むとこなんてすぐわかるだろうが
何のためのモジュール化だっちゅーの

875 名前:865 mailto:sage [2005/09/19(月) 00:12:52 ]
>>867
確かにそっちの方がずっと効率いいですね。
今度からそうしますわ

876 名前:デフォルトの名無しさん mailto:sage [2005/09/23(金) 10:02:46 ]
                                 _i―-..、
                             _.. ---- ..,,/i,.ゝ''、 `''、
                  ._   ,..r冖''″     .匸、 .ljニ;;-..,.l,
                    ,''| .|ヽ/                ゙''ヒ|、\`''ミ.l、
                    匸 コ         i ''、 .l.l  .l.l\.ヽ ゙.lL
                 l゙ .!ッ″      ''li,゙''i、ll, .''n llli 丿!ヽ.ヽ..l  .l゙''‐
                 ! /  / !.i l.、   ll,.l.l! !,,-,,./|,/ ,lヽ / ..'','',  '',
                   |│ l ! |、 ''li'',i、  !. .;;'''''';;;;`ll l, ゙/゙''ミ/、 !l、 !
                :| l ! | lヽ,,''ミ゙=... |   `,;;;;′. ! l ,! .! ゙l  │
                 ! .liリ.レ. ゙lii|" 、'';;;l           | .|" │ .|  l,|
   Compileマダー?     .| .l |.|  .}.l''v゛"'''' /       '''' .,! .|  .! ,!  l,!
            _   ,,. l! |l゙  !│.l   ~ −''    /] !  ,!. .il  .!′
        ./゙r''" .゛  .`l" ヽ..l リ .''l, .l ! /-、、     ._ ;;二八 .l   ! /.| .l
    †丶 /」川!; .ハ.、i ||.「 l l,   ll, U !  .`゙''ニ;;アレ゛ ,, ー.l,!  .l/ .l゙ /
  彡ヾミ;.,|.!゙` !,.ゞ゙⌒巛|| i;.} .l.  .lく.lLミ''''ー''゙,゙..ー゙ネ.!ー'' ̄´゛     l /
†ヽ. 彡''ミ;.|. `l l. ̄. ̄ l,l''゙l.〃  ヽ  l.゙l/''l广''"゛  C/C           .iゞ
~\\  ''ミ;`ヽlケcYc"ノヽ{゙     \ .l,      /
  \\..''ミ;,;;lΛ_ .人 __,}"|      `''、,ヽ     ノ|
    \\/;,,/〔/ i .l ,,,, . i.l       `''ゝ
      .○'' /二''lミ.''く、 .゛.ゝ
      . i‐゙/゙''.;;;;;ゝ''゙''゙テ〜.!
      . ゙‐''l′  .|''⌒''''/┘
        `--.'' `- -.′


877 名前:デフォルトの名無しさん [2005/09/29(木) 01:00:47 ]
並列化コンパイラを作ることになりました。
コンパイラについては全くわかりません。
>>5にあるような本を読んで勉強しようと思います。
どのほんがおすすめですか?

878 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 01:06:07 ]
>>877
大学の授業か?したから2冊目以外全部読んでみれば?



879 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 01:06:18 ]
なんで突発的に並列化コンパイラ作りたくなる奴が多いんだろうか。

880 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 02:27:40 ]
>>878
並列だと院か卒論だと思うが卒論にしては遅いので院か?


881 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 08:47:57 ]
院にもなって>>877はありえないと思うがどうか

882 名前:877 [2005/09/29(木) 12:38:48 ]
卒論です。

883 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 12:48:49 ]
こっそりで良いから、どこの大学のどの研究室か言ってみ?

884 名前:sage [2005/09/29(木) 13:59:47 ]
いえません

885 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 16:14:13 ]
今の時期卒論で並列ってきつくね?
俺だったら泣きそう。


886 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 16:17:49 ]
もう間に合わないだろう。
そっとしておいてやれ。

887 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 17:17:11 ]
学部時代ちゃんと勉強してきたやつなら、まだ3ヶ月もあるから
卒論レベルの並列Cコンパイラ程度は書けるだろうし、
実際似たようなことしたやつは何人もいる。
また、卒研を冬学期になってから始める大学も多い。

だが、>>877のような書き込みしてるやつには無理だろうな。

888 名前:デフォルトの名無しさん mailto:sage [2005/09/30(金) 16:40:37 ]
てか、車輪の再発明みたいなことしても・・意味なくねぇ?



889 名前:デフォルトの名無しさん mailto:sage [2005/09/30(金) 16:48:38 ]
>>888
さすがに作るだけじゃなくて、なにかあるんじゃない?

890 名前:デフォルトの名無しさん mailto:sage [2005/09/30(金) 19:47:58 ]
卒論という事以上のなにかが?

891 名前:デフォルトの名無しさん mailto:sage [2005/09/30(金) 19:57:04 ]
おまいら学部生の卒論に夢持ちすぎ…

892 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 00:34:54 ]
血や肉となりゃいいんでないの?

893 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 01:34:11 ]
大学に行ってコンパイラ作りを学んで
将来はマイクロソフトか日立・富士通などに
入って世界に通用するエースコンパイラーに
なりたいと思ってます。

そうなるにはどれくらいの実力が必要でしょうか。
何の資料も見ずに鼻歌交じりでCコンパイラを
書けるくらいでないとだめでしょうか。

894 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 01:35:18 ]
とりあえず、某ランドが出てこなかったのは致命的

895 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 01:40:58 ]
>>893
とりあえず>>1-6あたりの事が知識として持っているか

896 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 06:04:12 ]
>>893
まずは学力上げて良い大学いけるようにしろ。


897 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 09:08:11 ]
むしろコンパイラになりたいらしい

898 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 09:12:20 ]
>>893
あんた素人じゃないだろw



899 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 12:04:42 ]
Cコンパイラは鼻歌交じりに書いたけど
無職です

900 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 15:28:41 ]
8bit時代にCコンパイラをアセンブラで書いたけど
フリーターです

901 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 17:00:06 ]
OpenMP仕様に基づいて自動並列化するコンパイラは書いたけど
ニートです

902 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 17:26:58 ]
真実が混じってそうでマジコワスww

903 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 17:35:02 ]
ちなみにわたくしは茶色の長髪ですが、包茎です。

904 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 00:53:14 ]
すいません、ちょっと教えて欲しいのですがJavaScriptでセッションに値を格納したり
セッションから値を取ってくると言った事はできるのでしょうか?
ググッてもサーブレットやphp、JSPなどがヒットしてJavaScriptで出来るかどうかがよくわかりません。
例えばこんな感じです

<script>var a ="あ";</script>

この変数aをセッションに格納したいのですが

905 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 01:00:06 ]
>>904
なぜここでその質問したのか聞かせてもらおうか

906 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 01:10:16 ]
なぜといわれてもjavascriptで板を検索しても該当スレがないので
スクリプトという文字がスレタイに入ってるこのスレを除いてみると
javascriptについての話題がいくつかあったので質問させてもらったのですが

907 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 01:12:44 ]
凄い論理だ。マジレスすると、クッキー使って何とかするべし。

908 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 01:21:27 ]
クッキー?・・・・・・要は使えないってことですか・・・



909 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 01:22:29 ]
>>906
多分。スレ内javascriptで検索して幾つか引っかかったから良くも見ずに質問したんだろうが。
ここはプログラミング全般の質問やらをする場所じゃなくて、コンパイラやスクリプトを作る為の情報を交換するスレだよ。

910 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 01:39:02 ]
ついでに言うと、サーブレット・PHP・JSP とも、サーバ側で処理されるが、
JavaScript はクライアント側で処理されてる。つまり根本的に仕組みが異なる。

911 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 06:45:43 ]
>>908
JavaScript に cookie を読み書きする API がある。
スレ違いもいいとこなのでこの話はこれで終わりで。

912 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 09:54:07 ]
つか板違いだなWebProg板池

913 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 11:01:12 ]
>>906
小学生じゃないんだから、そんなアホな理屈が通るとでも思っているのか

914 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 11:18:46 ]
サーバサイドJavaScriptってのもあったような気はするけどな。
>>904 がその話をしとるとは思えんし、JavaScriptがどこで動くかも
知らんような奴に満足にWebアプリが書けるとも思えんな。

>>909
>コンパイラやスクリプトを作る為の情報を交換するスレだよ。

だからボクはスクリプトを作ろうとしているのに! とか思ってそうな悪寒。
ここはJavaScriptなどのプログラミング言語で何かを作るための相談室じゃなく、
JavaScriptなどのようなプログラミング言語の処理系を作るための相談室だよ。

915 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 17:20:13 ]
なんだこのスレ・・・・www
クッキーなんて間抜けなことほざいてるから軽く流したんだが
それに輪をかけて偉そうな住人には思わず苦笑しちまったよwww

916 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 17:50:34 ]
>>915
まあその中でも君のレスが一番偉そうだけどな

917 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 18:08:11 ]
>>916
よくある質問者の逆切れだよ。スルーしる

918 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 19:29:34 ]
>>917
JSPスレでも馬鹿さらしてた池沼だった。




919 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 19:35:37 ]
自演乙w

920 名前:う゛ぉいど mailto:sage [2005/10/02(日) 22:21:38 ]
と言うことにしたいのですね。


921 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 22:23:45 ]
うん。

922 名前:デフォルトの名無しさん [2005/10/02(日) 23:29:01 ]
# りんごタンの本は初心者にはお勧め!
# ただし、あまり深く突っ込まないことw

ところで、中田先生の本だけど、最適化がメインってなってるけど、
そうとも思えないんだけどなぁ。コンパイラ全般についてうまく書かれて内科医?

923 名前:デフォルトの名無しさん mailto:sage [2005/10/03(月) 08:49:48 ]
>>922
Yes。
目次はこんな感じ。
www.k.hosei.ac.jp/~nakata/aCompiler/CompilerIndex.html

924 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 22:32:39 ]
BNF記法って似てるんだけど色々な書き方があって悩む。
これぞスタンダードっていう書き方はどれですか?

925 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 22:50:39 ]
BNFのスタンダードはとっても簡単。::=と|と<>しかない。


926 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 22:54:19 ]
>>924
つ[RFC 2234]

927 名前:う゛ぉいど mailto:sage [2005/10/05(水) 23:51:51 ]
>>926
だがおのおの拡張したBNFはそれなりに便利だと言う罠があるのであるよ。

ようするに自分の言語仕様を記述しやすいように皆が改変するからいかんのである(w


928 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 23:52:33 ]
やべ、昔ちゃちゃ入れた時の名前が記憶されてるでやんの(がーんw




929 名前:sage [2005/10/06(木) 00:35:34 ]
>>922
次スレでは、テンプレ変更した方がいいな。


930 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 00:40:10 ]
相談室ということで、相談させてください。

実は、何処のコンパイラを使うかで妻と喧嘩してしまって、
もう何年も夫婦生活がありません。
フェ○もしてもらってません。どうすればいいですか?


931 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 00:44:29 ]
>>930
離婚して古の言い伝えどおりに
「女房と畳は」以下略


932 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 01:38:02 ]
>>930
君にはこっちの方が役に立つかも

pc8.2ch.net/test/read.cgi/tech/1111363360/

933 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 10:24:28 ]
>>876
リンゴたんに中田氏 ハァハァ

934 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 13:52:50 ]
gccとnasmでコンパイルしたものをくっつけて一つにして実行したいんですが
makefileにどう書けばいいですか?

935 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 13:57:08 ]
>>934
pc7.2ch.net/pcqa/

936 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 21:00:15 ]
四則演算の算術式を処理するコンパイラのサンプル的なものはありますか?
ちなみに、言語はCです。

937 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 21:09:57 ]
ありません

938 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 21:14:48 ]
最近、学校の宿題の丸投げと思われる
レベルの低い質問が多くて萎えるな。
なんかこう、とんでもないコンパイラを作ってる
大物からの高度な質問はないもんかな。



939 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 21:22:12 ]
がんばれ。いいだしっぺ。

940 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 22:15:53 ]
大物はこんな場所に(ry

941 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 22:34:01 ]
>>936
スクリプトでよければこの辺とかどうよ?
ttp://kmaebashi.com/

942 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 23:01:05 ]
>>923
日本語で読めるコンパイラ系の技術書で、これ以上のものってありますか?


943 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 23:04:16 ]
りんご畑

944 名前:デフォルトの名無しさん mailto:sage [2005/10/07(金) 04:41:57 ]
ありません

945 名前:デフォルトの名無しさん [2005/10/07(金) 18:10:18 ]
>>940
ワロタw


946 名前:デフォルトの名無しさん [2005/10/07(金) 21:23:19 ]
なんか、何だかんだといっても、
隠れ?リンゴファンは結構いるみたいだなw


947 名前:デフォルトの名無しさん mailto:sage [2005/10/07(金) 21:37:53 ]
>>946
そりゃAppleマニアは][以降結構いるわけであるからして(違

948 名前:デフォルトの名無しさん [2005/10/08(土) 18:03:49 ]
それに比べ、Rub(ry




949 名前:デフォルトの名無しさん [2005/10/08(土) 20:05:37 ]
新しい言語は新しいパラダイムの中で産まれる。

古い言語=抵抗勢力

みたいなもの。


950 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 20:35:27 ]
Lingoは古い言語だろ。

951 名前:デフォルトの名無しさん [2005/10/08(土) 22:02:12 ]
りんごタソに、ルビーの宝石をプレゼントしたい。


952 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 22:03:02 ]
>>950
関係ないけど、ビンボーとかいう言語なかった?
ちょっと思い出した。

953 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 22:24:29 ]
limbo じゃなくて?

954 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 23:56:37 ]
あっと、それだったかなぁ?
Plan9とかいうOSに乗ってたような気がする。


955 名前:デフォルトの名無しさん [2005/10/09(日) 07:24:08 ]
limbo -> Inferno
Alef -> Plan 9
でも、使ったことない・・・
いや、それ以前にわざわざ使う必要のあるOSなのか?
それも、デスクトップOSとして・・・

956 名前:デフォルトの名無しさん mailto:sage [2005/10/09(日) 20:26:53 ]
>>955
TNX ビンボーでなくリンボーか、しかもos
も違ってた、

ひとの記憶なんてあてにならんな。すまそ>>ALL


957 名前:デフォルトの名無しさん [2005/10/10(月) 23:59:34 ]
中田先生の書籍なんだけど、テンプレにかいてあるやつの他に
あと 2 冊、本屋にあったんだけど?

テンプレの本が、あとの二冊を含むようなイメージでいいのですか?
(時期的にも、あとだし、量的にも多いし。。。)


958 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 08:30:09 ]
中田先生の本を読んだだけの初心者ですが、質問させてください。
JavaCCでECMAScriptの文法を仕様書にしたがって書いたのですが、
そのままでは多数のエラーが出て使えませんでした。

左再帰に関しては中田先生の本にも書いてあったので回避出来たのですが、
"Choice conflict involving two expansions at ..."
などのエラーの回避の仕方がわかりません。
ConflictについてはJavaCCでLOOKAHEADを使って回避しましたが、
本当にそれで正しく回避できているかどうかの自信はありません。

質問はそのエラーについてではなく、一般的な文法の書き方についてです。
実際に文法を書く人が知っておくべき常識は一体どこで身につければよいでしょうか?
和文英文問いませんので、何か参考資料があれば是非教えてください。よろしくお願いします。



959 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 08:44:56 ]
>>942
日本語の本だとトップは中田本かドラゴンブックかだと思う。
>>957
いいよ。

960 名前:957 [2005/10/11(火) 18:32:27 ]
>>959
ありがとうございます。
テンプレの本を購入&読破して

なんとか、技術を身に着けたいと思います。


961 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 20:09:41 ]
>>958
conflictは文法が曖昧だということを意味するので、
エラーメッセージから文法のどの部分が曖昧なのかを調べ、
それを書き換えて曖昧さを除けばいいわけですが。

そもそも、LL文法とLR文法の違いは理解していますか?



962 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 20:22:01 ]
>>961
それは理解している、と思っています。少なくとも本に書いてあるレベルでは。
ただ、左再帰みたいに曖昧さはこうやれば毎回確実に解消できる、
もしくはある程度パターンが決まっていて普通はそのどれかに変換できる、
というようなものがあるのではないかと思ったのです。

一応コンフリクトの部分は自分で解析してまず問題ないと思う形に書き直しましたが、
書き直した形が書き直す前の形と確実に一致している自信がなく、
すべてのパターンのテストの方法もいまいちわかっていないので質問しました

963 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 20:49:14 ]
>>962
つ 書き直す前と後で受理する入力列が等しいことを構造帰納法で証明

964 名前:デフォルトの名無しさん [2005/10/12(水) 21:42:40 ]
りんごたんは何の仕事してるの?
コンパイラのプロ?


965 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 22:21:23 ]
りんごたん、りんごたんてよく出てくるけど、なんのこと?

966 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 22:34:37 ]
>>965
ttp://apple.jpn.ch/

967 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 23:26:46 ]
>>965
中田先生のお弟子さんが書いたコンパイラ本の中でたとえ話が全部りんご農家で語られているからです。


968 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 23:34:28 ]
あーつまんね



969 名前:デフォルトの名無しさん [2005/10/12(水) 23:55:30 ]
いろんな意見があると思うけど、普通の本やに並んでるというのは
凄いとおもうよ。ある意味、中田先生でもできなかったこと。


970 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 23:58:31 ]
中田氏とりんごの話したい奴は別スレ立ててくれ
うざい

971 名前:デフォルトの名無しさん mailto:sage [2005/10/13(木) 00:42:33 ]
>>967
それか。俺もそれ買ったわw

972 名前:デフォルトの名無しさん mailto:sage [2005/10/13(木) 01:48:45 ]
>>969
中田先生の本は学術書に入るから普通の本屋においてあるはずもないでしょうに(w


973 名前:972 mailto:sage [2005/10/13(木) 01:49:53 ]
おいてあたらその本屋尊敬すると思う(というか専門店かと瞬間思うに違いない


974 名前:デフォルトの名無しさん [2005/10/13(木) 13:52:35 ]
専門家の皆さんに質問です!
浮動小数点定数を正規表現とCF文法で表すとどうなりますか?

975 名前:デフォルトの名無しさん mailto:sage [2005/10/13(木) 15:14:54 ]
>>974
宿題は!
自分で解こうね?

976 名前:デフォルトの名無しさん [2005/10/13(木) 19:00:36 ]
大物はこんなところに(ry


977 名前:デフォルトの名無しさん mailto:sage [2005/10/13(木) 21:10:46 ]
Rubyだと、中田本とか約にたたないの?


978 名前:デフォルトの名無しさん mailto:sage [2005/10/13(木) 22:45:39 ]
Rubyは機能を優先しすぎて破綻してて最適化どころじゃないからな



979 名前:デフォルトの名無しさん mailto:sage [2005/10/14(金) 08:15:50 ]
じじい避けには丁度いいw


980 名前:デフォルトの名無しさん [2005/10/14(金) 19:23:52 ]
いまからは最適化なんて過去の話題になるんだろうなぁ。。。


981 名前:デフォルトの名無しさん mailto:sage [2005/10/14(金) 19:59:36 ]
980を超えたので、新スレッドを立てました。

「コンパイラ・スクリプトエンジン」相談室7
pc8.2ch.net/test/read.cgi/tech/1129287390/

です。

982 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 00:14:33 ]
まあ、その、なんだ
埋めようか

983 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 01:51:29 ]
埋め

984 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 02:15:56 ]
梅は〜、咲いたか〜、桜ぁ〜はまだかいな。


985 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 02:36:33 ]
無駄に埋めるな
980超えれば時間がくれば自動的に落ちる

986 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 06:32:15 ]
>>985
それはしらなかったが、そうだとしても無駄に埋めると何か逆効果があるの?

987 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 06:37:31 ]
1000まで行かないと外部の有力な過去ログサイトに収集されない

988 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 08:15:17 ]
>>987
どこ?それ。



989 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 09:42:09 ]
うめ

990 名前:デフォルトの名無しさん [2005/10/15(土) 18:38:57 ]
りんご


991 名前:デフォルトの名無しさん [2005/10/15(土) 19:04:44 ]
1000ならビルゲイツの財産は俺のもの

992 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 19:51:06 ]
たけ

993 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 20:05:11 ]
じま

994 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 21:53:00 ]
かん

995 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 22:13:07 ]
チャンカン

996 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 22:18:33 ]
次の人>>986に答えて


997 名前:デフォルトの名無しさん mailto:sage [2005/10/16(日) 01:17:30 ]
おまいらの貴重な人生を無駄にしている

998 名前:デフォルトの名無しさん mailto:sage [2005/10/16(日) 01:32:43 ]
てst



999 名前:デフォルトの名無しさん mailto:sage [2005/10/16(日) 01:33:04 ]
てst

1000 名前:デフォルトの名無しさん mailto:sage [2005/10/16(日) 01:33:58 ]


1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






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

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

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