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
467 名前:デフォルトの名無しさん mailto:sage [03/03/13 23:28] >>466 > これって大変ですか? 最初からそんな感想を抱いているようでは、新言語を作るのは無理だと思われ。
468 名前:デフォルトの名無しさん mailto:sage [03/03/13 23:42] 言語処理系は作るだけなら、実は大して難しくない。 式の展開さえ出来れば、あとは出来たも同然。 問題は「使える」言語にしようと思うと、ライブラリの整備が 大変な事。
469 名前:デフォルトの名無しさん [03/03/13 23:56] >>468 なるほど、参考になった。 rubyなども、結局はライブラリが揃ってるから使われるんだよねぇ。。。
470 名前:デフォルトの名無しさん mailto:sage [03/03/14 08:46] ライブラリ整備が面倒なら、 COMコントロール使えるようにしとけば VBAのコントロールそのまま使えるから楽だよ。 あるいは、ゲーム用ならHSPのDLLを使えるようにしとくとか
471 名前:デフォルトの名無しさん mailto:sage [03/03/14 10:54] >rubyなども、結局はライブラリが揃ってるから使われるんだよねぇ rubyは美しすぎる言語仕様(少なくとも日本人の感性からすれば)が大きいと思う。
472 名前:デフォルトの名無しさん mailto:sage [03/03/14 11:16] それは信じない(w 比較相手がPerlなら同意だが
473 名前:デフォルトの名無しさん mailto:sage [03/03/14 11:24] >>472 ネタニマジレスカコワルイ
474 名前:デフォルトの名無しさん mailto:sage [03/03/14 11:41] bisonが出力した y.tab.c を g++ でコンパイルすると パースエラーが出るんですが 回避方法はないのでしょうか? VCではコンパイルできるのですが( ファイル名は y.tab.cpp に替えてコンパイル)。
475 名前:デフォルトの名無しさん mailto:sage [03/03/14 11:50] どういうエラーだよ。
476 名前:デフォルトの名無しさん mailto:sage [03/03/14 12:58] >>469 rubyは愛国精神からよく使われるのです
477 名前:デフォルトの名無しさん mailto:sage [03/03/14 13:21] >>476 確かに、rubyの場合、 「まつもと?ふーん日本人がやってるんだ。ちょっといじってみよかな。」 と思って始めたっての、俺の場合はあるよ。 で、逆に思ったんだけど、アメリカ(のようなコンピュータ大国の)人が、 「ふんふんよさそう。ん?なんか変な名前の作者だな。 おぃ{スカンジナビア製,インド製,日本製,韓国製,中国製...}かよっ!」 とか感じてやめちゃうことってあるのかな?それとも多民族国家だから そんなの全然キニシナイ!のかな?
478 名前:デフォルトの名無しさん mailto:sage [03/03/14 13:55] 日本製は、自動車やソニー等のこともあって、 他の国の製品とは若干扱いが違う。 それに助けられているかも。
479 名前:デフォルトの名無しさん mailto:sage [03/03/14 15:51] そもそも、Rubyってのは真っ赤な日の丸から連想して 名付けたらしい。 大日本帝國言語ルビー万歳!
480 名前:デフォルトの名無しさん mailto:sage [03/03/14 17:36] 日本語対応の点で安心できるってのはあるなぁ
481 名前:デフォルトの名無しさん mailto:sage [03/03/14 17:46] >>479 Pearl の次の誕生石だから。 寝たに混じれ酢。
482 名前:デフォルトの名無しさん mailto:sage [03/03/14 18:00] bison (GNU Bison) 1.875をつかっているのですが、 yyerrlab1: #if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__) __attribute__ ((__unused__)) #endif goto yyerrlab2; っていうコードを吐くのですが、g++(gcc version 3.2 20020927 (prerelease)) で コンパイルすると parse error before `goto' といってコンパイルが止まってしまいます。 ふみゅ〜ん。
483 名前:デフォルトの名無しさん [03/03/14 19:26] スクリプトエンジンってbison やlex/yacc 等が いるのですか??? 素朴な疑問でスマソ
484 名前:デフォルトの名無しさん mailto:sage [03/03/14 19:35] >>477 英語が通じそうにないから敬遠するというのはあるかも
485 名前:デフォルトの名無しさん mailto:sage [03/03/14 20:40] >>483 再帰下降でガンバレばいらないと思うよ。
486 名前:デフォルトの名無しさん mailto:sage [03/03/14 20:49] ;
487 名前:デフォルトの名無しさん mailto:sage [03/03/14 21:04] Delphi版 ギコBasicの アーカイブ一覧 www.geocities.co.jp/SiliconValley-Oakland/8522/data/059.lzh www.geocities.co.jp/SiliconValley-Oakland/8522/data/giko.ico www.geocities.co.jp/SiliconValley-Oakland/8522/data/gikob064.lzh www.geocities.co.jp/SiliconValley-Oakland/8522/data/gikobas.dcr www.geocities.co.jp/SiliconValley-Oakland/8522/data/gikobc02.lzh www.geocities.co.jp/SiliconValley-Oakland/8522/data/gikobc03.lzh www.geocities.co.jp/SiliconValley-Oakland/8522/data/gikobc04.lzh www.geocities.co.jp/SiliconValley-Oakland/8522/data/LucasTest.txt www.geocities.co.jp/SiliconValley-Oakland/8522/data/mformula.txt www.geocities.co.jp/SiliconValley-Oakland/8522/data/Script.txt www.geocities.co.jp/SiliconValley-Oakland/8522/data/ugikoscr.txt www.geocities.co.jp/SiliconValley-Oakland/8522/data/uSpliter.txt
488 名前:デフォルトの名無しさん mailto:sage [03/03/14 21:48] ギコBasicで2chブラウザ作れますか?
489 名前:デフォルトの名無しさん [03/03/15 01:23] 微妙に英文ライクで空白込みの名前も可、というオブジェクト指向言語を作りたい者です。 経験者の方にお聞きしたいのですが、下のサンプルコードのようなものですと、パーザを実装するのは難しいのでしょうか? //宣言部 private property string greeding head = "hello, ". public method say greeding (string name = "world") { output stream std out = system consore standerd out. this greeding head + arg name + "." outln to std out. } //使用する側のコードを一部抜粋 this say greeding ">>1 ".
490 名前:デフォルトの名無しさん mailto:sage [03/03/15 01:36] しるか
491 名前:デフォルトの名無しさん mailto:sage [03/03/15 01:51] (´-`).。oO(その言語でプログラムを書くのが難しいと思われます。。)
492 名前:デフォルトの名無しさん mailto:sage [03/03/15 01:53] つーか自分でBNFでも書いてみろよ。>489
493 名前:デフォルトの名無しさん mailto:sage [03/03/15 03:48] プログラムを自然言語ライクに書けるようなのが出来たとしても、 greeting を greeding と間違って書いてもちゃんと認識 してくれるようなシステムを作るのは難しい。
494 名前:デフォルトの名無しさん mailto:sage [03/03/15 09:17] C言語版、C++版ギコBasicもよろしく C言語版 page.freett.com/gikob/gikobw00047.zip C++版 page.freett.com/gikob/gbtl-beta3.zip
495 名前:デフォルトの名無しさん mailto:sage [03/03/15 09:32] >間違って書いてもちゃんと認識 勝手にそんなことされると意図と違って認識されたときにものすごく発見困難なバグの原因になりそうだ
496 名前:デフォルトの名無しさん mailto:sage [03/03/15 11:06] Ada95@gccってば、エラーメッセージ中でスペルミス指摘してくれるのだが、そういうのじゃなくて?
497 名前:デフォルトの名無しさん mailto:sage [03/03/15 11:15] >>489 例えば事前にstring nameという定義があったりすると、 private string name x. とか書かれると、「string name」「x」なのか「string」「name x」なのか曖昧なので、 識別子に空白を含められるようにするなら、区切りの記号か予約語を入れるようにしないと。 普通ならPascalっぽく ":" 使うところだけど、英文ライクということなので、isなりasなり入れれば? private property greeding head is string = "hello,". とか。 もっとも、曖昧さも含めて楽しむような仕様にするなら、それはそれで。
498 名前:デフォルトの名無しさん [03/03/15 20:57] そんな言語、情報処理にはむかんなぁ(w まぁ、曖昧な処理にはいいかも?(w
499 名前:デフォルトの名無しさん mailto:sage [03/03/15 21:00] COBOLの路線で行きたいって事でしょ
500 名前:デフォルトの名無しさん mailto:sage [03/03/15 23:21] /ノ 0ヽ _|___|_ ヽ( # ゚Д゚)ノ 下がってろウジ虫ども! 。 | 个 | 訓練教官のハートマン先任軍曹が500をgetする! ノ| ̄ ̄ヽ ∪⌒∪ >>501 貴様!俺の海兵隊をどうするつもりだ! >>502 口でクソたれる前と後に「サー」と言え! >>503 ふざけるな!大声だせ!タマ落としたか! >>504 貴様には両生動物のクソをかき集めた値打ちしかない! >>505 アカの手先のおフェラ豚め! >>506 まるでそびえ立つクソだ! >>507 タマ切り取ってグズの家系を絶ってやる! >>508 じじいのファックの方がまだ気合いが入ってる! >>509 ベトナムに行く前に戦争が終わっちまうぞ、アホ!
501 名前:デフォルトの名無しさん [03/03/18 22:28] そういえば、最近はスクリプト言語の時代らしいんだけど、 ろくな言語ないよなぁ〜、 コンパイル言語のときは、Cがあったけど なんていうかパールは暗号みたいだし、 AWKはフィルタ専門だし、(SEDも) ルビーはOOだし、 なんかみんな極端なんだよねぇ。。。
502 名前:デフォルトの名無しさん mailto:sage [03/03/18 22:30] HSPがあるよ!
503 名前:デフォルトの名無しさん mailto:sage [03/03/18 22:31] >>501 > そういえば、最近はスクリプト言語の時代らしいんだけど、 > ろくな言語ないよなぁ〜、 > コンパイル言語のときは、Cがあったけど (w > ルビーはOOだし、 これがオチですか?
504 名前:デフォルトの名無しさん mailto:sage [03/03/18 22:32] >>501 じゃあどんなのがいいんだよ
505 名前:デフォルトの名無しさん mailto:sage [03/03/18 22:33] cintがあるやん
506 名前:デフォルトの名無しさん mailto:sage [03/03/18 23:49] >>504 純粋関数型のスクリプト言語
507 名前:デフォルトの名無しさん mailto:sage [03/03/19 00:05] Haskell
508 名前:デフォルトの名無しさん mailto:sage [03/03/19 00:28] インタプリタがほしけりゃghciでいいじゃん
509 名前:デフォルトの名無しさん [03/03/19 01:08] >>502 win用じゃん(w os2用もあるらしいが。。。(w 畑違い、ハゲ稿!
510 名前:デフォルトの名無しさん [03/03/19 01:18] >>505 ヨサゲだけど、絶版ですか? ちょっと残念(本)
511 名前:デフォルトの名無しさん [03/03/19 01:23] >>507 なんか難しい論文ばかりで、学者○カ向け?
512 名前:デフォルトの名無しさん [03/03/19 01:24] >>ghci なにそれ?
513 名前:501 mailto:sage [03/03/19 01:51] やっぱりHSPが最高だね、アハハハハハ
514 名前:デフォルトの名無しさん mailto:sage [03/03/19 05:14] >>489 スペルミスの多さからしてネタだろ。
515 名前:デフォルトの名無しさん mailto:sage [03/03/19 05:20] >>482 cygwinのが1.875bで手元では一番新しかったんで試してみたけど、そんなコー ドは吐かないな。
516 名前:デフォルトの名無しさん mailto:sage [03/03/19 11:20] とりあえず付箋紙ベースのスクリプトエンジンを作成しようとおもいますた。 Basicインタープリターは別なところでできてるんだけど、アイデア暮れ。
517 名前:デフォルトの名無しさん mailto:sage [03/03/19 13:32] 付箋紙?
518 名前:デフォルトの名無しさん mailto:sage [03/03/19 14:43] >>509-512 =日下部
519 名前:デフォルトの名無しさん mailto:sage [03/03/20 01:06] 結局ライブラリをどうするかなんだよ。スクリプト作る時間よりも、 ライブラリ用意する手間の方がでかい。特にOO系言語のクラスlib なんてもうみてらんない。シコシコ使うかどうかもわからんクラス階層 作ったりしてんの。バカみたい。クソインターフェース量産したりしても 誰もつかわねえよ(ププドキュメントも用意しないとわかんねえし、 忘れるし。そんなことしてる暇あったらデバッガ作れよ。 結局クラスがクソなら誰もつかわねえって。 時間の無駄だっつうの。
520 名前:デフォルトの名無しさん mailto:sage [03/03/20 01:58] >>519 Java の仕事がメインになったけど、Cばかりを組んできたから、うまく対応できなくて困っている 老人ですか? MFC はともかく、Javaは、ライブラリーの規模を考えれば、うまく設計されていると思いますが?
521 名前:デフォルトの名無しさん mailto:sage [03/03/20 05:25] 要するに標準入出力さえきちんとしてくれれば全てオッケー 言語はどうでもいい。 その分野を最も得意とする言語で書く。
522 名前:デフォルトの名無しさん mailto:sage [03/03/20 23:26] 言っていることは正しいし、激しく同意だが、すれ違いだ。
523 名前:デフォルトの名無しさん [03/03/21 18:19] これからの主流はスクリプト言語なんだろうか? なんか、パールとルビーの宝石コンビじゃいやだなぁ〜(w
524 名前:デフォルトの名無しさん mailto:sage [03/03/21 18:37] スレと無関係ない事書くなや、ここは死滅スレじゃねぇ
525 名前:デフォルトの名無しさん mailto:sage [03/03/21 21:20] >>524 スレタイトルがわるい
526 名前:デフォルトの名無しさん mailto:sage [03/03/21 21:27] >>525 > >>524 > スレタイトルがわるい 分かりやすくていいじゃないの? 何が不満なの?
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 んなことわかってるよ。 これじゃ話が進まないから催促してるの。