「コンパイラ・スクリ ..
[2ch|▼Menu]
430:デフォルトの名無しさん
04/12/23 00:59:14
マジでコンパイラ作りたいと思っているのなら、最初はアセンブラから始めるのではなくて
自分の言語→C言語へのトランスレータを作って、system関数か何かを使ってCコンパイラを呼び出してコンパイルするのがいい。
C++なども最初はそのようにして作られたし、元々Cはそのための言語として開発された経緯があるから良い感じで実装できる。
Cのオプティマイザをそのまま借用できるのも便利だ。
もしアセンブラも知っていれば、自分の実装した機能を効率よく実装できる命令が見つかるかもしれない、
そのときにネィティブコンパイラを作ってみようという動機が発生する。

目的が現在の言語の性能が気に入らんから、言語はそのままでより良いオプティマイザを実装しようというなら
いきなりアセンブラで行けというところで。

431:デフォルトの名無しさん
04/12/23 01:43:13
今んとこ最強の成書↓
URLリンク(www.amazon.co.jp)
amazon.comで古本買ったほうが安いかもしれん。
ただしちょっと古い(1997)

FORTRANなら↓
URLリンク(www.amazon.com)

物好きには↓
URLリンク(www.amazon.com)
持っているといばれる。

432:デフォルトの名無しさん
04/12/23 02:00:43
ドラゴンブックは今日では読む価値はほとんどない。
記述が難しい上に古い本なので初学者にも上級者にも無用。

新中田本は記述が簡素すぎるので、結局は元の論文を読むはめになる。
ってゆっか、教科書ではなくサーベイだな。

初学者なら佐々本がベストだと思う。
古い本だが、ある程度のレベルを保ちつつこれ以上わかりやすい本は
他には知らない。


433:デフォルトの名無しさん
04/12/23 02:19:14
URLリンク(www.amazon.com)
lccは全く実用にはならないのだが、
この本はかなりおもしろく、また、類書が全くないので一読の価値あり。

434:デフォルトの名無しさん
04/12/23 04:21:30
吉里吉里とかコンパイルすると、シナリオファイルの中身が読めないファイルに変換されていますが、
あれはどうやっているのですか?

(ここではスレちがい?)


435:デフォルトの名無しさん
04/12/23 08:10:26
スクリプトの実装ではなく設計の哲学などを扱った書籍はありませんか?

436:デフォルトの名無しさん
04/12/23 08:50:48
>>434
暗号化してるだけだろ

437:デフォルトの名無しさん
04/12/23 09:18:34
暗号化っちゅうか、
コンパイルってことは普通バイナリファイルにするわけで、
バイナリになったら普通人は読めないだろ。

438:デフォルトの名無しさん
04/12/23 11:04:46
>>432
ドラゴンブックが古い本なのは確かだが、コンパイラ理論の基礎なんて
ドラゴンブックの時代から変わってないから問題ないよ。

佐々本は読んだことないから、そっちの方が良いという意見は否定しないが。

439:デフォルトの名無しさん
04/12/23 13:37:39
ドラゴンブックは原書でしか読んでないが、古めかしさ的には
佐々本と大差ないと思われる(属性文法あたりの差分はあるけどね)。
日本語で読みたいなら、佐々本の方が良い。1冊にまとまっているし、
なによりドラゴンブックの日本語訳はヤバい。

中田本はちゃんと読んでいないので何とも言えないが、元の論文
読む羽目になるのは仕方ないんじゃないか? というか、中田本を勉強
しなきゃいけないやつは、どうせ元論文だけでなくもっと新しい論文を
読まなきゃ仕事にならんでしょ。

440:デフォルトの名無しさん
04/12/23 13:54:43
>>431
"Advanced Compiler Design and Implementation"
この本は主にどの言語で書かれていますか?
C? C++?

441:デフォルトの名無しさん
04/12/23 14:13:41
>>440
漏れは431ではないが、アルゴリズムの説明などで用いられている擬似言語はpascal風。
とはいっても内容は全くプログラミング言語に依存しない。というか、コンパイラの本で内容が
特定のプログラミング言語に依存するものってあまりないと思う。

ベクトル化コンパイラの本はFortran向けに書かれていることがよくあった気もするが。

442:デフォルトの名無しさん
04/12/23 16:36:55
>434

Javaと同じと考えていいんでない?

443:デフォルトの名無しさん
04/12/23 17:08:20
How to WSDL convert to SOAP?


444:デフォルトの名無しさん
04/12/23 17:19:36
>>443
HTML や XML は正規表現を憶えてツリー型のデータ構造を憶えれば完成だから、
正規表現のスレッドや初心者相談系のところにいったらいいよ。

445:デフォルトの名無しさん
04/12/23 17:22:18
URLリンク(yaneurao.hp.infoseek.co.jp)
↑のソースは参考になる?

446:デフォルトの名無しさん
04/12/23 20:22:14
コンパイラを作りたいのですが、どうしたらいいんでしょう
私は、Lispの入門書を読み終えた程度です。


447:デフォルトの名無しさん
04/12/23 20:26:03
じゃLISPコンパイラ作れ

448:デフォルトの名無しさん
04/12/23 20:29:51
>>446
lex yacc または bison flex といった所をやる
オライリーの動物本でもどうぞ
もしCができないなら先にそっちをやる。
Cが分らないとツール群の使い方が理解できない。

449:デフォルトの名無しさん
04/12/23 20:31:29
>448

Cでなくて、C++でもいいんでない?


450:デフォルトの名無しさん
04/12/23 20:34:07
>>449
Cが分らないならC++をやるのはただの遠回り、そこまでやらなくてもツールは使える。
C++で使うにはかなり詳しくC++を知る必要があるから、そんな所に迷い込んだら永久にできなくなってしまう。
大規模になってくれは必然的にC++やる事になるのだから、そのときで十分。

451:デフォルトの名無しさん
04/12/23 20:41:23
yaccとかbisonって、構文解析と字句解析に使うんだろ?


452:デフォルトの名無しさん
04/12/23 20:41:51
Lispのコンパイラを作るのにlex+yaccはいらんなあ。
バイトコードに落とすLispのコンパイラを作るのは結構簡単なわりに面白いよ。


453:デフォルトの名無しさん
04/12/23 20:44:25
>452

おすすめのソースとかある?

454:デフォルトの名無しさん
04/12/23 21:00:41
>>9のやさしいLispの作り方はどう?

455:デフォルトの名無しさん
04/12/23 21:06:14
>454 
ありがd
Javaの復習にもいいね。

そろそろこのスレをまとめたサイトが欲しいね。

456:デフォルトの名無しさん
04/12/24 00:37:04
>>454
あれはS式をそのまま解釈するインタプリタなのでコンパイラは出てきませんね。
でも入門書を読み終えた程度って人なら処理系のイメージを軽くつかむにはいいかな。

Lisp/Schemeスレのテンプレに出てくる小さい処理系の中には
バイトコード仮想マシン+コンパイラという構成のものもあるのでそれがいいです。
Emacs使いならbytecomp.elがそのままコンパイラ。
ちょっと概要を掴むのに苦労するかも知れないけど。



457:デフォルトの名無しさん
04/12/24 10:19:57
>>420
俺と考えが違いますね

ソフトもプログラムも、頭の良い人が数人いて、いいものを作れば
終わっちゃう世界だと思うんですよ。
コピーすれば同じですし・・・
例えば、簡単なスクリプトを学生が趣味で作ってとしてそれを公開すれば
他の人は、そこまでの勉強が近道が出来ると思います。
頭の良い人はそこから更に良い物を作るって言うやり方が必要だと・・・

特許などに触れる部分や会社の売りである部分はさすがに公開できないでしょうが
その部分を省いた基本的な部分は全て公開する方が効率が良いと思いますし

アメリカやインドに比べてソフト開発力が低い?と言われてるのだから、
その部分を補う部分が欲しいと思いますね。


458:デフォルトの名無しさん
04/12/24 10:38:33
>>420 頭のいい人
>>457 口をあけて待ってるバカ


459:デフォルトの名無しさん
04/12/24 16:42:34
>>458
馬鹿で悪かったな・・・
C言語を覚えるのに、C言語の入門からマニュアルが一杯でてるだろ
おまぇはそれすら観なかったのかよ?

それからアルゴリズムも全部自分が考えたか?
データ構造とアルゴリズムを本やインターネットで覚えてないのか?
結局頭の良い人が見つけたプログラミングをお前だって恩恵受けてるだろ。

コンパイラだって頭の良い人が考えてプログラムの参考に自分の新しい
コンパイラを作るのだって在りだと思ってるんだよ

それとは別に人が作ったものを他の人がまた作るのもデジタルである
プログラムではもったいないと・・・

おまぇの考えはフリーでプログラムを提示してる人を真っ向から否定してるよな



460:デフォルトの名無しさん
04/12/24 16:44:18
>>458
こいつはコンパイラの本を見ずにコンパイラを自力で作れるすごい奴なのかも
しれないwww

461:デフォルトの名無しさん
04/12/24 16:47:26
別に凄くないと思うぞ

462:デフォルトの名無しさん
04/12/24 16:49:06
>>461
自力で作れる奴がここに来るのか??www

463:デフォルトの名無しさん
04/12/24 16:53:22
>>462
もし来ないと思っているなら、それは偏見だよ。
別にここでの書き込みに何か期待しているわけじゃない。
ただ、専門分野での雑談を楽しんでいるだけだよ。

464:デフォルトの名無しさん
04/12/24 16:57:04
>>436
彼はC言語のマニュアルしかみないでプログラマーやってる
スーパープログラマーだから、相手にしない方がいいな。

465:デフォルトの名無しさん
04/12/24 17:09:11
>>463
彼はすごいよ。
数学の数式や方程式も自分で考えたんだよ。

大学の勉強も教授に話しを聞かなかったと思うよ
何故ならスーパーだから・・・。

教授が自分の経験や頭が良い人の本や教科書を使った
授業だって彼にとっては無駄だもの

先人の発見した知識は彼には必要ないんだよ
彼は全部自分で考えて、自分で作れるんだから・・・www


466:デフォルトの名無しさん
04/12/24 17:09:49
俺はC言語なぞコンパイラのユーザマニュアルだけで使えるようになったけどな。
そういう人間は別に少なくないだろう。分布が偏在しているだろうとは思うが。
それはさておき>>457=>>459だろうが言ってることが滅茶苦茶だぞ。

>>457では成果物としてしか捉えてないからバカと言われて当たり前。
公開されてるものを眺めただけで改良できるようになるわけじゃないんだよ。
結局ものの設計や開発は一種の探索問題だから、その過程を理解しなければその設計に
至る必然性やどこに改良すべき点があるかとかわからん部分もある。

>>459でいってるアルゴリズムとかは経験(≒プロセス)から抽出された知識であって
成果物ではないのだから457の主張の論拠にはなり得ない。
457を補強するつもりでも結局459は420の補強にしかならん。

457を見て感じるのは、こいつには「頭のいい人」のものの考えは絶対理解できないだろうなということ。
自分をその範疇から外していて、そうなる意志もないだろうというのも感じる。


467:デフォルトの名無しさん
04/12/24 17:18:39
>>466
はぁ〜、まぁ〜いいや、プログラムだけでなく
方程式とかも自分で解いたんだろ、、全部。

おまえの言ってることは、本に書いてある知識や経験を
必要としないでやってきた人間だけが言える言葉だぞ。

例えば、英語の映画を観ただけで、英語を覚えられるとか・・・
誰かが、覚えた経験を元に英語の教科書や、専門書を
観ないで覚えたのか

授業で英語の教科書を見て英語覚えたのなら、
それは英語を覚えた経験した事を、本で覚えて
英語を覚えたことになるんだぞ。


468:デフォルトの名無しさん
04/12/24 17:19:23
誰かが、覚えた経験を元に書かれた英語の教科書や、専門書を
観ないで覚えたのか

でした

469:デフォルトの名無しさん
04/12/24 17:25:02
この話題で初めて書き込むが,
>>466 アホだな…
本や論文を読まずに〜というのは, 要するにその内容を完全に理解したから,
その文献を再び参照することなく, 新規性のある事ができる, という意味だろうに…

470:デフォルトの名無しさん
04/12/24 17:26:19
>>466
彼はエジソンだね。学校の授業は人の経験を教科書にして覚えると言う
行為だから・・・

授業など必要とせず、自分で経験したことだけで、スーパープログラマに
なったらしいから・・・

まさに、プログラマー界にエジソンだよ。

そういうスーパーな人は、新しい言語でも作って世の中で有名でもなって
ください。


471:デフォルトの名無しさん
04/12/24 17:28:38
>まさに、プログラマー界にエジソンだよ。
あなたはまず日本語を勉強しましょう

472:デフォルトの名無しさん
04/12/24 17:29:37
>>471
それくらいスーパーなプログラマなら脳内変換できないのか?

473:デフォルトの名無しさん
04/12/24 17:31:53
>>457
落ち着け。>>420

> 完成品なんてタダでくれてやればいい

と言ってるんだぞ。お前にソースは見せん、と言ってるんじゃない。

474:デフォルトの名無しさん
04/12/24 17:32:36
>>457
なんかフレーム引き起こしてますな、僕も420と同意見で
他人の作ったものをとってきて喜べるたちの人間ではないですね、
自分で何か作る事にのみ喜びを感じます、
アルゴリズムも自分で思いついてこそ楽しいのです。
作業効率なんてどうでもいいんですよ。
貴方の意見を読んでいるとプログラミングが恐ろしくつまらない作業の繰り返しに思えます。


475:デフォルトの名無しさん
04/12/24 17:35:18


476:デフォルトの名無しさん
04/12/24 17:36:12
>>457-476は役に立たない塊ですので透明あぼーんしましょう

477:デフォルトの名無しさん
04/12/24 17:38:14
>>474
プログラミング自体を楽しめるのなら良いが
作るという行為だけ楽しめる人もいるんですよ

プログラミングだけならアセンブラやC言語だけでいいじゃないですか
でも作る行為が楽しいと言う人がいるから、VisualBasicだってある。

問題は効率良く作業する為にはどうしたら良いかと

彼はライブラリも使わないと思うよ。
ライブラリだって人の作ったプログラムを使ってるんだから、スーパーな
プログラマは我慢できないんじゃないかな?

478:デフォルトの名無しさん
04/12/24 17:38:25
こっちに移動してください
スレリンク(tech板)


479:デフォルトの名無しさん
04/12/24 17:41:50
>ライブラリだって人の作ったプログラムを使ってるんだから、スーパーな
>プログラマは我慢できないんじゃないかな?
この辺りからして感覚が違う気がしますね、我慢できないのではなくて、中身が興味深そうなら自分も作ってみるのです。

480:デフォルトの名無しさん
04/12/24 17:47:58
結局、どこまでが基礎でどこからが応用かという問題だろ。

先人の経験を基礎に入るかってことで
どんな職業だって先人の経験を真似る部分もある。
確かに真似るだけでは駄目でそれを自分のものにしなくてはならない

ソースだけ開示するまでが基礎か
その考え方まで書いてあげてコンパイラというものを理解できるような
形にしてあげること(本やインターネットで)
までが基礎かの違い。

彼はソースだけは開示すると書いてあったのは理解できなくもない
本やインターネットでコンパイラについて書かれたことを全く
見ずに自分でコンパイラを作った人なら、他の人にもそれくらい
自分でやればと思うかもしれないから・・・

でも本やインターネットでコンパイラについて書かれた内容を理解した
人は、その本を読んで理解しろと言う場合と、もっと解りやすい本が
あればもっと簡単に覚えられたと思う人もいるだろ
簡単に言えば解りやすいコンパイラの本が日本語で出るだけで、新たな
言語が出る可能性が出て面白くなると思うけどね。


481:デフォルトの名無しさん
04/12/24 18:11:16
ここはdjbみたいな人が沢山いるインターネットですね。

482:デフォルトの名無しさん
04/12/24 18:14:03
LLパーサやDDA位なら自力でたどり着いた事あるぞ。
つかそのころコンピュータ書籍は英語で書かれている物以外は論文くらいしかなかったし、しかも俺は英語を習う前だったから読むもクソも無かった。

まさか当時は電算関係が生業になるなんて考えてもみなかったけど楽しかったぞ。



483:デフォルトの名無しさん
04/12/24 18:14:39
まあ>>457みたいな人が、自分の得た知識や経験をわかりやすくまとめて公開する
ことは絶対ないんだけどね。これはコンパイラに限らず。

484:デフォルトの名無しさん
04/12/24 18:17:28
ここはバカの壁が如実なインターネットですね。
読んでると壁の両側に綺麗にわかれていて面白い。


485:デフォルトの名無しさん
04/12/24 18:19:40
>>482
コンパイラ以外でも先人の経験を元にしなかった?
アルゴリズムの本を読んだり、会社の先輩にソースを見せて貰ったとか・・・
人の経験を全く真似ないで自分だけでやってこれたと言う人が
本当にいるのなら観てみたいね。

職業のプログラマーだけでなく、他のあらゆる事が先輩の真似から
入ることが多いでしょ。

486:デフォルトの名無しさん
04/12/24 18:21:49
>>484
彼も、先人達の経験を全く必要としない人らしい。
自分だけでやってこれたと思ってる人って素晴らしいね

自分なんて人のおかげで、色々と覚えられたと思ってるし・・・

487:デフォルトの名無しさん
04/12/24 18:27:42
相談室と書いていながらここは、単に本やインターネットを
みないでコンパイラを作れる人が、時々、本とかインターネットを
使って、コンパイラを作ろうとしてる人が書き込んだ人を馬鹿に
しようとする為にスレということが解ったよ。


488:デフォルトの名無しさん
04/12/24 18:30:14


相談室と書いていながらここは、単に本やインターネットを
見ないでコンパイラを作れる人が、時々、本とかインターネットを
使って、コンパイラを作ろうとして書き込んだ人を馬鹿にしようとする為の
スレということが解ったよ。

489:デフォルトの名無しさん
04/12/24 18:31:40
お前らクリスマスイブ暇だからって張り切りすぎ

490:デフォルトの名無しさん
04/12/24 18:36:08
クリスマスツリーにネコでも吊るして和んでください

491:デフォルトの名無しさん
04/12/24 18:41:20
決まりきったパターンだね。
人格攻撃に始まるって奴は負ry

492:デフォルトの名無しさん
04/12/24 18:46:23
>>487
スレは「ある」ものではなく「作る」ものだ。
君が親切な相談員になればいい。

493:デフォルトの名無しさん
04/12/24 18:48:45
そんなことより、もまいら今日の晩ごはんはカレーですよ。

494:デフォルトの名無しさん
04/12/24 18:49:23
>>492
俺が君ほどレベルが高くなく本と見てコンパイラを作れるレベルなんだよ
そのレベルの話で良ければ教えてもいいけどね。

495:デフォルトの名無しさん
04/12/24 18:52:52
ゲーム業界の話なんだが、アメリカは新しい技術を作られると
それを作ったクリエータ自ら、ゲーム業界の学会?みたいな
場所で発表するらしい。

アメリカではプログラム技術は共有の知的財産と思ってるらしく
それを、使って何を作るかが重視されてる。

日本は技術を自分で作ることが重視になってる。
技術を1から覚えないと、物を作る資格がないと思ってるみたいだ・・・

496:デフォルトの名無しさん
04/12/24 18:59:04
何度もすまないが

アメリカだとゲームは平気で人が作ったエンジンを使ってゲームを作る。
日本だと、1から作ることが職人だと思ってエンジンを使う所は少ないし
エンジンを提供する所も少ない。

アメリカは自分で作りたいものがどのような形で作られようが問題ないみたい
人が作ったものだろうが、それで自分が作りたいものが出来るのなら
問題なく使うけど、日本人は1から作らないと気がすまないみたいだ。


497:デフォルトの名無しさん
04/12/24 19:01:53
アメリカに劣等感を持つのは勝手だが
何の根拠もない妄想をここでやるなよw

498:デフォルトの名無しさん
04/12/24 19:08:50
はっきりいってエロゲーは日本の方がどの分野も進んでるぜ
URLリンク(www.illusion.jp)
URLリンク(www.teatime.ne.jp)

499:デフォルトの名無しさん
04/12/24 19:18:13
>>494
それ位のレベルの人が一番わかりやすく教えられるんじゃない?
学校の先生より家庭教師の説明の方がわかりやすいのと同じで。

500:デフォルトの名無しさん
04/12/24 19:21:01
ここは「コンパイラ・スクリプトエンジン」相談室です。
雑談はマ板でお楽しみください。

501:デフォルトの名無しさん
04/12/24 19:25:51
今日の雑談は↓スレへどうぞ
スレリンク(tech板)


502:482
04/12/24 19:52:04
先人の本なんかなかったよ、あったのはモトローラのMC6800マニュアル(英文)、しかも読めた(のか?)は電気回路の部分と命令表、
信号線は親に読んでもらった。
482で書いた事は自分が小学6年から中学1年に掛けての事だから本当に役に立つ書籍は無かった。
ちなみに石田晴久の「マイコン入門」が出たのが自分が中学2年か3年の時。

そういう時代なので読む物なんか図書館いっても見つからないのだ。



503:デフォルトの名無しさん
04/12/24 19:56:47
>>502
あぁ、あの東大のDQNね。

504:デフォルトの名無しさん
04/12/24 19:59:58
そろそろ板違いなんで↓に逝ってくれんか>年寄り
URLリンク(bubble2.2ch.net)

505:デフォルトの名無しさん
04/12/24 20:18:16
クリスマスだから気が立っているのか。愚かしいな。

506:デフォルトの名無しさん
04/12/24 20:26:24
この流れなら言える。

prologでコンパイラ作ってる人いますか?
パターンマッチ最適化や、高レベル中間語→低レベル中間語→アセンブリの変換等が
きれいに書けそうな気がするんですが。

507:デフォルトの名無しさん
04/12/24 20:37:20
>>495
共有するって感じかな?
どちらかというと自分の意見を学会にぶっつけて反応を確かめて
自分の方向性を決めるといった感じの印象を受けるのだが。
共有を目的にしている人は一部のオプソ狂信者(日本にも居るね)だけだと思うな。

508:デフォルトの名無しさん
04/12/24 21:11:17
>>506
きれいに書けませんよ。
嘘だと思うならやってみたら。

509:デフォルトの名無しさん
04/12/24 21:30:38
>>506
そういう研究はあり、確かにきれいに書ける。
ただし、prologでなく、より汎用的なlogical framework(twelfとか)を使うことが多い。

510:デフォルトの名無しさん
04/12/24 22:48:15
>>495
なんとなく納得。
なにげに日本の習慣って秘密主義なのかも。

511:デフォルトの名無しさん
04/12/25 00:55:40
>>510
チンケなプライドがあるために他人のツールを使えないだけ。
高卒のくせにな。

512:デフォルトの名無しさん
04/12/25 01:22:01
URLリンク(pc5.2ch.net)

513:デフォルトの名無しさん
04/12/25 11:20:12
>>511
自分やっているプログラムが詰んなくない?
それでストレス溜まって高卒ごときにムキになってない?
まぁ、最近そな人多いね、実際自分も仕事ではまるでベントコンベアの前にいるライン工の気分だしね。
嫌な時代ではある。

世の中生産性が全てではないと思うのだが・・・
せめて趣味の世界では爆発していたい。
プログラミングは爆発だ!!

514:デフォルトの名無しさん
04/12/25 13:39:45
ゆんゆん

515:デフォルトの名無しさん
04/12/25 14:12:07
やんやん

516:デフォルトの名無しさん
04/12/25 14:22:51
なんだろ
年末ずっとこの調子?この人

517:デフォルトの名無しさん
04/12/25 14:32:19
あのねのね

518:デフォルトの名無しさん
04/12/25 23:32:30
bison1.35をつかっていたんですけど、1.875ってのが出ているのに気づいたのですが、
どう変わったか知っている方いますか?

URLリンク(sourceforge.net)

519:デフォルトの名無しさん
04/12/25 23:46:51
そういうのは作者に問い合わせたほうが早いよ

520:デフォルトの名無しさん
04/12/26 01:00:46
ソースとってきてchangelogみりゃええやないの


521:デフォルトの名無しさん
04/12/26 01:37:01
構造化例外処理を自作言語に取り入れたいんですが、
VisualC++(というかmsvcrt.dll)の
_except_list _local_unwind2 _except_handler3
この辺を扱う資料ってないですか?
下の様なことがしたいので

FilterFunction() {
  printf("1 ");          /* this is printed first */
  return EXCEPTION_EXECUTE_HANDLER;
}

main() {
  __try {
    __try {
      RaiseException(1,    /* exception code     */
              0,    /* continuable exception */
              0, NULL); /* no arguments      */
    }
    __finally {
      printf("2 ");       /* this is printed second */
    }
  }
  __except ( FilterFunction() ) {
    printf("3\n");        /* this is printed last  */
  }
}

実行結果
1 2 3

522:デフォルトの名無しさん
04/12/26 04:06:36
正直、lexだのyaccだの使ってる奴はアホ。
一文字ずつswitchで入れ子にするのが速いし、メモリも食わないし、プログラミングも実は一番楽。

523:デフォルトの名無しさん
04/12/26 04:22:02
まあそれで書けちゃうぐらい単純なやつならそれでもいいでしょ。

524:デフォルトの名無しさん
04/12/26 04:40:08
>>522
ぜーたいありえネェ〜

525:デフォルトの名無しさん
04/12/26 04:49:54
>522
あー、つーか、単純なやつならそれで出来るかもしれんが、あまりにも世界が狭すぎ。
全てそれでいけると本気で思っているのなら、もう一度勉強し直してこい。

526:デフォルトの名無しさん
04/12/26 04:55:51
>>522
根拠が弱い

アホいうんなら、おまえの方法とlex、yaccを使う方法の
長所、短所ふまえてちゃんと説明してみんなを納得させろ

527:デフォルトの名無しさん
04/12/26 05:06:29
普通に釣りっぽい

528:デフォルトの名無しさん
04/12/26 05:11:03
>>522はビルゲイツ。

529:デフォルトの名無しさん
04/12/26 09:02:02
大漁大漁w

530:デフォルトの名無しさん
04/12/26 10:04:56
>>521
VC++固有のライブラリの使い方なら
VC++スレ行ったほうがいいと思う。
構造化例外を使いたいだけなら、
Structured Exception Handling
でぐぐればよさげ。

531:デフォルトの名無しさん
04/12/26 10:29:50
釣り師は>>529のような負け惜しみは書かん

>>529書いた時点で真性確定。

532:デフォルトの名無しさん
04/12/26 10:40:05
真性に釣られる馬鹿ハケーンw

533:デフォルトの名無しさん
04/12/26 10:48:11
w真性キタ━━━(゚∀゚)━━━ !!!!!

534:デフォルトの名無しさん
04/12/26 10:58:39
\  釣られたクマー
  \ 助けてクマー
   \∩_∩    今助けるクマー
    (;(エ); )∩_∩    ∩_∩
    ⊂. ⊂ |(・(エ)・; )_○ (・(エ)・; ).∩_∩ 頑張るクマー
    ⊂_⊂/⊂⊂___つ⊂⊂  |(・(エ)・; ).∩_∩
                   |    ⊂⊂   |(・(エ)・ )
                  ∪ ̄∪|   ⊂⊂   |  〜〜
                       ∪ ̄∪|    |○  〜〜〜
                            ∪ ̄∪  〜〜

535:デフォルトの名無しさん
04/12/26 14:11:12
>522
>プログラミングも実は一番楽
ありえねえ
自力で遷移状態管理しろ、つうたら泣けるなあ


536:デフォルトの名無しさん
04/12/26 14:14:31
LL(1)なら別にいいじゃん。

537:デフォルトの名無しさん
04/12/26 15:54:09
俺はschemeのreader書くのにlex/yaccのお世話になろうかと
真剣に悩んだよ。

結局、手で書いたが。

538:521
04/12/26 16:04:12
main() {
 // var parent_frame
 try_except_wind(
  lambda() { // try
   // var frame = parent_frame
   try_finally_wind(
    lambda() { // try
     RaiseException(1,0,0,0); }
    ,lambda(){ // finally
     printf("2 "); });
  }
  ,lambda() { // FilterFunction
   printf("1 ");
   return EXCEPTION_EXECUTE_HANDLER; }
  ,lambda() { // except
   printf("3\n"); });
}

例外ブロックを関数化してここまでは動作確認できました。
VCの__finallyや__exceptブロックは妙なトリック(ebpの持ち回り)使ってるから
フレーム統合するのは難しそうです。
別の手段考えます。

539:522
04/12/26 18:50:35
馬鹿だな。複雑な文法ほどそう書くのがいいんだよ。
人間が考えてる要領でうまくかける。
yaccだのlexだのはかえって難しいんだよ。
複雑な文法になるほどな。

540:デフォルトの名無しさん
04/12/26 19:07:18
飽きたからもういいよ。

541:デフォルトの名無しさん
04/12/26 19:08:26
                             |
                             |
      ∩___∩             |
      | ノ  _,  ,_ ヽ        ((  | プラプラ
     /  ●   ● |         (=)
     |    ( _●_)  ミ _ (⌒)   J  >>539
    彡、   |∪|  ノ
⊂⌒ヽ /    ヽノ  ヽ /⌒つ
  \ ヽ  /         ヽ /
   \_,,ノ      |、_ノ


542:デフォルトの名無しさん
04/12/26 22:32:01
>>538
Win32 Exception handling for assembler programmers by Jeremy Gordon
URLリンク(www.jorgon.freeserve.co.uk)

昔、参考にさせてもらったサイト。もう1ヶ所ぐらいあったんだけどURL紛失した。

543:デフォルトの名無しさん
04/12/26 23:41:12
でも、マジレスすると scanner は自主開発蟻としても
parserはyaccか互換ソフト以外実用プログラムでは使われていないからなぁ

お前ら、もっと現実を見ろ!


544:デフォルトの名無しさん
04/12/26 23:59:48
飽きたからもういいよ
どうせなら新しいネタにしようぜ

545:デフォルトの名無しさん
04/12/27 00:05:28
マジレスすると、
Java5.0はyaccだと難しい。

546:デフォルトの名無しさん
04/12/27 01:28:03
Rubyも確か、yacc廃止するような話が上がってるみたいだね。
PythonやPerlはどうなの?

547:デフォルトの名無しさん
04/12/27 02:46:19
なんか字句解析と構文解析の話ばっかりだな。
漏れが知りたいのはその先の話なのに。

548:デフォルトの名無しさん
04/12/27 02:52:11
522の言うことも一理あるかと
gccも最初はyaccだったが今は手書きらしいし

549:デフォルトの名無しさん
04/12/27 02:52:22
コード生成とか最適化の話がしたいとな?

550:デフォルトの名無しさん
04/12/27 02:53:03
みんな自動生成系で骨格作って手直しをしてという風ではないの?

551:デフォルトの名無しさん
04/12/27 02:57:43
中間言語にコンパイルする話はどの書籍に載ってるでしょうか。
googleで調べても見つからないので。

552:デフォルトの名無しさん
04/12/27 03:04:22
今おれが借りてる本に詳しく載ってるな。
中間言語と言っても色々レベルがあるけどな。

553:デフォルトの名無しさん
04/12/27 03:14:28
>>552
書籍名を教えてくださいYO!
ほとんど知識の無いままSchemeのインタプリタを書き始めたんですが
3日くらいで大体の機能が実装できました。
問題はGCと継続なんですが、CPSという中間言語を使うと継続が楽に
実装できるという噂をききまして、どんなものかなあと。
コンパイルしないと遅すぎるってことや実装が簡単すぎた(さすがScheme)
っていうのも動機なんですけど。

554:デフォルトの名無しさん
04/12/27 03:37:57
>>553
CPSは普通のコンパイラの教科書では余り取りあげられない。
本なら、Appelの「Compiling with Continuations」辺り。ただし、
これはMLベース。CPS自体はMLとは関係ないけど、中間言語
にコンパイルする話から知りたい人には難しすぎるかも知れない。
Schemeベースだと、Guy Steel Jr.のRabbitコンパイラとかKranz
らのORBITの論文(PLDI86)辺りを読むしかないんじゃないかな。
Rabbitコンパイラの論文が今簡単に入手できるかどうかは知らな
いが、ORBITの論文は今年出た「20 Years of PLDI 1979-1999: A
Selection」っていうACM SIGPLAN notices, volume 39, number 4,
april 2004に選択されて載っているから、これなら技術系の大学の
図書館辺りで見つけられるでしょ。

555:デフォルトの名無しさん
04/12/27 03:56:06
沢山の情報ありがとうございます。
CPSにこだわっている訳ではないんですけど、東大のコンパイラの授業
のページにのってたのでメジャーなのかと思ってました。
一般的に中間言語の話はどの本がいいんでしょうか。
とりあえずいろいろ調べてみます。

556:デフォルトの名無しさん
04/12/27 04:31:51
>>553
CPSは中間言語ではないよ。
それに直接速くなるわけでもない。
CPSというのは継続のたらいまわしで、実装が自ずと
スタックレスになり、末尾の検出が不要になることと
継続の抽出が単純(というか継続の抽出そのもの)になるというだけで。

Schemeは末尾呼び出しのフレームの縮小問題に
どう取り組むかで速度にかなり違いが出てくる。
これは仮にCPSにしても解決はできない。
それと(Schemeに限らないけど)、GCにぎりぎりまで頼らない
(ヒープに移さない)設計にするとか。

CPSについてはコンパイラの本より
むしろ関数型言語扱ってる古い本に色々載ってたけど、
そういうのは図書館で探したほうがいい。
CPSに変換する処理系もあったはず。

ちなみに借りた本は「コンパイラの構成と最適化」
CPSとはあんま関係ないね。

557:デフォルトの名無しさん
04/12/27 04:35:02
>>554
Steele 先生のってこれでよろし?
fURLリンク(publications.ai.mit.edu)
面白そう……だけど結構な分量だな。プリントアウトしたら大変そうだ。

558:デフォルトの名無しさん
04/12/27 04:37:47
>>555
中間言語の話題で一般的に良い本を挙げるってのは難しい。
というか、ソースから中間言語への変換辺りの話題だと、
ドラゴンブックで充分だし、最適化の話題よりのコンパイラの
教科書だとその辺りは大抵省略されている。

AppelのModern Compiler Implementation in {ML,Java,C}辺り
だとコンパイラについてlexer、parserからcode generationまで
一通り書かれていて、GCなんかも取りあげられているから良
いかもしれない(漏れはJava版しか読んだこと無いからMLや
C版の内容は知らない)。

559:デフォルトの名無しさん
04/12/27 04:46:49
>>557
凄いな。
こ れ が 修 論 か

560:デフォルトの名無しさん
04/12/27 13:53:09
_| ̄|○

561:デフォルトの名無しさん
04/12/27 19:21:59
あのな、CPSなんてきょうび流行んねーんだよ。ボケが。
得意げな顔して何が、CPSで、だ。
お前は本当にCPS変換したいのかと問いたい。問い詰めたい。小1時間問い詰めたい。
お前、スタック使いたくない だけちゃうんかと。
中間言語通の俺から言わせてもらえば今、中間言語通の間での最新流行はやっぱり、 A normal form、これだね。
大盛り一時変数。これが通の頼み方。
A normal formってのは制御フローが明示的に入ってる。そん代わり継続は暗黙的。これ。
で、それにtail call最適化。これ最強。
しかしこれを頼むと次からAppelにマークされるという危険も伴う、諸刃の剣。
素人にはお薦め出来ない。
まあお前、1は、型付きCPS変換でもしてなさいってこった。

562:デフォルトの名無しさん
04/12/27 20:54:34
不勉強なオレはいまいち面白さが分からないが、
メル欄ワロタ

563:デフォルトの名無しさん
04/12/27 21:14:55
せっかくなので A normal form ってのについて教えて下さい。
ポインタでもいいから。


564:デフォルトの名無しさん
04/12/27 21:30:10
>>509のlogical frameworkと関連した内容ですか。

565:デフォルトの名無しさん
04/12/27 22:19:26
URLリンク(www.google.co.jp)

566:デフォルトの名無しさん
04/12/28 00:11:56
コミックバンチの修論いきなり見せられてもA normal formのことサパーりでしょ。>>553

567:デフォルトの名無しさん
04/12/28 07:51:25
電気通信大学 情報工学科
渡邊(坦)研究室

言語・機種に非依存なオブジェクト最適化の研究
URLリンク(www.watalab.cs.uec.ac.jp)

はガイシュツですか?


568:デフォルトの名無しさん
04/12/28 10:14:44
>>567
何も新しいことは書かれていない気がす。
ドラゴンブックに出て来るレベルの最適化を実装してみました
ってやつですな。

569:デフォルトの名無しさん
04/12/28 19:11:25
>>567
学部生レベルの卒論としては合格

570:デフォルトの名無しさん
04/12/28 21:33:47
●コンパイラ 原理・技法・ツール 1&2
URLリンク(www.amazon.co.jp)
URLリンク(www.amazon.co.jp)
通称ドラゴンブック。バイブル。

●コンパイラ構成法 原田 賢一
URLリンク(www.amazon.co.jp)
URLリンク(www.hara.cs.keio.ac.jp) (ソース、正誤表のダウンロード)

●プログラミング言語処理系 岩波講座 ソフトウェア科学〈5〉 佐々 政孝
URLリンク(www.amazon.co.jp)
一冊で済ませたい人へ。

読む順番とかあるの?
なければ、『コンパイラ構成法 原田 賢一』を買おうと思っている。

571: ◆MWRLp2GQ3U
04/12/28 22:02:12
初心者の疑問なんですけど、言語処理系って
フリーの有名所(例gcc)や一部の超メジャー処理系(M$)
でないと全くダメダメなのななんででしょう?

職場の回りの人とかも、皆同じように思っています。

言語処理系以外なら、そんなことないと思うんですよねぇ
やはり、作り込みが難しいからですか???


572:デフォルトの名無しさん
04/12/28 22:06:00
既にフリーでいい物があるから、
わざわざ作る気も起きないってのも大きいでしょ

573:デフォルトの名無しさん
04/12/28 22:20:51
人生を言語処理系の作成に捧げる気があるなら
>フリーの有名所(例gcc)や一部の超メジャー処理系(M$)
これらにも対抗できるものが作れるんじゃねーの?(鼻くそほじりながら

574:デフォルトの名無しさん
04/12/28 22:51:37
>人生を言語処理系の作成に捧げる気があるなら
んで、できるかどうかは兎も角そんな連中がここに居るわけだ。


575:デフォルトの名無しさん
04/12/28 22:52:30
まあ面白いし

576:デフォルトの名無しさん
04/12/28 23:07:36
>>574
売り物レベルになるかはともかくを言ったら
処理系自体はちょっと時間あれば作れるしな

577:デフォルトの名無しさん
04/12/28 23:13:48
HSPぐらいならなんとかなるんじゃね?

578:デフォルトの名無しさん
04/12/28 23:20:19
HSPみたいな頭の悪そうな処理系思い浮かぶやつには無理だろw

579:デフォルトの名無しさん
04/12/28 23:39:36
Nスクよりマシかな。

580:デフォルトの名無しさん
04/12/28 23:49:46
2ch発の言語とかってないの?

581:デフォルトの名無しさん
04/12/28 23:51:50
>>580
いくつか過去にもスレは立ったけど成功したもんはなさそう。
ADVRUN…はちょっと違うか

582:デフォルトの名無しさん
04/12/28 23:56:58
>>580
ギコBASIC

583:デフォルトの名無しさん
04/12/29 00:04:36
少なくともHSPはそれなりにメジャーになりはした。

584:デフォルトの名無しさん
04/12/29 01:00:15
HSPはあの言語仕様なのに、それなりに流行っていることを考えると、
言語の良し悪しが、決定的なんじゃないということがよくわかる

585:デフォルトの名無しさん
04/12/29 01:28:09
Windowsでexeが作れて配布できる。
初心者でも簡単に使える。
初心者用ドキュメントがある。

こういう、ヲタク向けの言語では軽視されがちな部分が
大きいんじゃないかな。

586:デフォルトの名無しさん
04/12/29 12:09:18
>>585
剥げ同。

最先端言語技術や高度な理論よりも、リアルに使えることの方が
はるかに重要と最近日々感じる…


587:デフォルトの名無しさん
04/12/29 12:10:58
でも楽しくないよね。

588:デフォルトの名無しさん
04/12/29 12:20:45
楽しいよ
すぐに窓表示したり文字表示したり、コントロール作ったり、3DのDirectX画像が動かせるからね
すぐに目に見えて成果が現れるところがミソ

589:デフォルトの名無しさん
04/12/29 15:33:07
じゃあexeが作れない言語はクソ

590:デフォルトの名無しさん
04/12/29 15:41:27
>>589
世の中の全てが詰らなさそうな奴だな

591:デフォルトの名無しさん
04/12/29 17:28:43
>>589
MSと心中しとけ。

592:デフォルトの名無しさん
04/12/29 21:11:45
>>586
禿げ同

しかし初心者にはいいかもしれないけど、
プログラマとしては絶対使いたくない言語だよね。
そこんところがシームレスに使える言語があるといいのかなぁ。


593:デフォルトの名無しさん
04/12/29 21:17:31
初心者には取っつきやすく、高度な要求にも耐えられる言語か
難しいね

594:デフォルトの名無しさん
04/12/29 21:19:19
Java

595:デフォルトの名無しさん
04/12/29 21:22:47
組み込みHSP?
激しく嫌すぎる・・・

596:デフォルトの名無しさん
04/12/29 21:33:18
HSP使うぐらいなら素直にアセンブリ使うよ。

597:586
04/12/29 22:00:30
念のため行っとくけど、俺はHSPは使ったこともないからなw


598:デフォルトの名無しさん
04/12/29 22:13:25
どこ行くんだよw

599:デフォルトの名無しさん
04/12/29 22:28:36
お前ら
ありあまる暇があったら、
どんな言語・処理系作りたい?

600:535
04/12/29 22:59:15
HSPってなに?

601:デフォルトの名無しさん
04/12/29 23:09:47
>>592
このスレに居るなら、そう思ったら自分で作れ。

602:デフォルトの名無しさん
04/12/29 23:32:56
>>600
気にする程のものではない。
ゲームを書く為だけの簡易言語だよ。

603:デフォルトの名無しさん
04/12/30 01:05:59
>>599
汎用の処理系って作ったことないからなあ。
特殊用途のだけ。

なんで、手始めはやっぱりLisp系かな。
SICPみながらSchemeからだろうか。

604:デフォルトの名無しさん
04/12/30 01:09:17
>>603
minischemeのコード見てみなよ。
たった2000行程度だから。

605:デフォルトの名無しさん
04/12/30 04:50:37
>>602
ゲームだけじゃない
Windowsアプリが実に簡単に出来る
こういう面も人気の理由の一つ
普段MFC使ってる俺でも昔覚えたHSP使うことがたまにある
手軽だから

606:デフォルトの名無しさん
04/12/30 04:56:59
ここは既存の言語や処理系について、文句たれたり、布教活動したりするところなん?

607:デフォルトの名無しさん
04/12/30 05:08:58
大学生ならコンパイラ作るよな

608:デフォルトの名無しさん
04/12/30 05:13:59
やはり実際に物が作れるということと、敷居が低いことは重要だよな。
Cより言語仕様が優れた言語は腐るほどあるのに
結局Cより流行る言語はほとんどない。
一方では、お手軽にGUIやゲームなどが作れるというだけのことで、
糞仕様のHSPがそれなりに流行ったりする。


609:デフォルトの名無しさん
04/12/30 06:07:49
課題で必ず出るね

610:デフォルトの名無しさん
04/12/30 11:37:50
>>608
言語論争したいのならどっか別の所へ行け

611:デフォルトの名無しさん
04/12/30 13:43:53
そうではない
コンパイラを作るに当たってなにが大切かを述べてるにすぎない

612:デフォルトの名無しさん
04/12/30 14:29:03
>>611
ハァ?バカでね?

613:デフォルトの名無しさん
04/12/30 14:38:29
なんかレベル下がったなこのスレ

614:デフォルトの名無しさん
04/12/30 15:17:51
今までにレベルの高いレスなんてあったか?

615:デフォルトの名無しさん
04/12/30 15:30:59
HSP厨が紛れ込んじゃったんだろ。

616:デフォルトの名無しさん
04/12/30 16:03:47
なぁ、ここにいるやつらで2ch言語でも作ってみないか?


617:デフォルトの名無しさん
04/12/30 16:07:18
>>616
おまえが作れ

618:デフォルトの名無しさん
04/12/30 16:12:40
>>616
言語仕様のアイデアはあるのか?

619:デフォルトの名無しさん
04/12/30 16:20:02
板グループがオブジェクトで各板名がメソッドとか。

PC等.プログラマー("hoge);

620:デフォルトの名無しさん
04/12/30 16:21:50
あー、"閉じ忘れた。まあいいや。
エラーが出たときは

真・プロセスストッパー。。。( ̄ー ̄)ニヤリッ

と。

621:デフォルトの名無しさん
04/12/30 16:54:14
>>611
いらねーよ、言語仕様ってのは作り手の趣味の問題だ、他人にゴチャゴチャいう筋合いのものじゃねぇ。
そんなもん、そんな作りもしない何もしないクレクレ厨房の書き込みなんざ読んでもウザイだけだ。

622:デフォルトの名無しさん
04/12/30 17:00:43
>>619
そりゃ言語仕様じゃなくてライブラリの仕様じゃねえか

623:デフォルトの名無しさん
04/12/30 17:12:08
ここはネタすれじゃないんだから他でやれや>>616-622

624:デフォルトの名無しさん
04/12/30 17:23:05
言語仕様議論専用スレがあったほうがいいかね、建ててみるね。
「言語仕様と開発論法」でやってみてください。



625:デフォルトの名無しさん
04/12/30 17:23:50
「言語仕様と開発論法」
スレリンク(tech板)l50
ここです。

626:デフォルトの名無しさん
04/12/30 19:33:06
URLリンク(www.rubyist.net)
こんな短いプログラムで比較するのもどうかと思うのだが、 Rubyで書いたら絶対これより短くなる。
ということは、PHPではなくRubyを使えという話なのか。どうも、そうではなさそうだ。

よくいただく反論は「PHPでもできる」ということであって、同じくらい良い(動的)言語からPHPを選ぶ理由ではないはずだ。

PHPは決して速くないし、記述力が高いわけでもないし、たくさんの欠点が残っているように見えるが、
あちこちで「そのシステムPHPで書かないの」という質問が出るところをみるとそれなりに馬鹿には使われているようだ。

もっとも、PHP陣営から出てくる数字はmod_phpのインストール数とか、mod_phpのパフォーマンスと(mod_perl抜きの)perl
CGIとの比較とか、まったくフェアでない印象があるが。

あるいは「すでにPHPを覚えているので、いまさら他の言語を覚えたくない」ということなのかもしれない。
その気持ちはまあ理解できないでもない。
もしかすると、よく分からない初心者をイメージ先行で取り込んでしまい、
「いまさら他の言語を覚えたくない」という」意識でロックインしてしまうというのは、
初心者をターゲットにした素晴らしいマーケティング戦略なのかもしれない。

もしそうだとするならば、というか実際そうだろうし、Rubyは絶対にその戦略を取りたくない。
それくらいだったらマイナーなままでいてくれた方がずっと良い。
Rubyは最高の言語なのだから。

627:デフォルトの名無しさん
04/12/30 19:36:14
>>626
単純にRubyはマイノリティなだけ。
使われてないなら潜在バグの洗い出し率も低いだろうし
信頼性保守性等々で考えて業務に使う必然性がない。


628:デフォルトの名無しさん
04/12/30 19:44:24
>>627
禿同

629:デフォルトの名無しさん
04/12/30 19:47:21
Ruby以上のものを作ることのできない糞どもが何を言おうが無駄。
汚らしいRubyアンチは消えろ

630:デフォルトの名無しさん
04/12/30 19:49:30
と、言うことは>>629には そ れ な り に 普 及 し た プログラミング言語以上のそれの作成経験があると言うことになる。



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

5050日前に更新/228 KB
担当:undef