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には そ れ な り に 普 及 し た プログラミング言語以上のそれの作成経験があると言うことになる。
631:デフォルトの名無しさん
04/12/30 19:50:46
最高言語Rubyユーザ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> おのスレでしがない糞処理系を作ってる奴等ww
632:デフォルトの名無しさん
04/12/30 20:05:03
Perlでええやん。
633:デフォルトの名無しさん
04/12/30 20:11:53
HSP使ってる奴とRuby使ってる奴って
なんか共通点が有るな。
634:デフォルトの名無しさん
04/12/30 20:13:44
>>633
いいよなぁ。自分の価値観が万人の常識であるとか思ってる奴。
635:デフォルトの名無しさん
04/12/30 20:25:15
最高言語Scheme!!!!!!!
636:デフォルトの名無しさん
04/12/30 20:25:58
荒れるからHSP厨とRuby厨は >>625 のスレ逝ってよ。
637:デフォルトの名無しさん
04/12/30 20:29:09
やっぱ
日本発->他の言語より日本語の情報が多い->厨が増える
という流れなのだろうか。
638:デフォルトの名無しさん
04/12/30 20:32:13
単純になぜか安置が多いというお話。
たぶん同一人物が自作自演交えてやってるんだろうけど。
正直、俳優か小説家になれば大ブレイク。
こんなところで才能を食いつぶしている彼らが不憫だ。
639:デフォルトの名無しさん
04/12/30 20:36:40
単純になぜか厨が多いというお話。
たぶん同一人物が自作自演交えてやってるんだろうけど。
正直、俳優か小説家になれば大ブレイク。
こんなところで才能を食いつぶしている彼らが不憫だ。
640:デフォルトの名無しさん
04/12/30 20:38:18
>>639みたいなのが典型と言うことで。
641:デフォルトの名無しさん
04/12/30 20:44:36
どっちも根拠を挙げてるわけでもないし
どっちも典型でしょ。
専用スレが腐るほど有るんだしそっちでやってよ。
642:デフォルトの名無しさん
04/12/30 20:44:37
で、何かこのスレと関係あるのか?
643:デフォルトの名無しさん
04/12/30 20:47:44
URLリンク(www.rubyist.net)
Ruby>>>>>>>>>>>>>>>>Java>>>>>Python>>>>>C++>>>>>PHP>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>HSP>Perl
644:デフォルトの名無しさん
04/12/30 20:50:41
Perlに恨み骨髄という感じだな。
645:デフォルトの名無しさん
04/12/30 20:52:48
Rubyはレンタル鯖でつかえねーからダメ
ライブドアだけじゃん
646:デフォルトの名無しさん
04/12/30 20:53:31
Rubyって仕事で使えるほどフレームワークあったっけ?
647:デフォルトの名無しさん
04/12/30 20:56:14
コミュニティ文化の話なんてどうでもいい
技術の話をしないやつは(・∀・)カエレ!
お年玉で>8買って読んでから来い
648:デフォルトの名無しさん
04/12/30 20:58:18
貴様らがポチポチ作った処理系なんか自分以外誰が使うんだよ。
Rubyレベルのものが貴様らに作れるのか?
649:デフォルトの名無しさん
04/12/30 20:58:55
先生!お店に禿げたドラゴンブックした売ってません!!
650:デフォルトの名無しさん
04/12/30 20:59:32
Rubyの劣化コピーでしかない貴様らが
死に物狂いでRubyを不正で苦しさ晴れたち日をしているwwwwwwww
やはり劣等感である~~~ くすくす^^;
651:デフォルトの名無しさん
04/12/30 20:59:55
国産処理系
HSP、LGP、System3.x、Ruby
こうして並べるとRubyすげーのかどうか微妙だな
652:デフォルトの名無しさん
04/12/30 21:01:09
ドラゴンブック程度を読んで分かったつもりになった厨房が
メイジャーなRubyを必死に貶すことで憂さ晴らししているスレはココですか?
653:デフォルトの名無しさん
04/12/30 21:02:38
>>652
うっせー禿げ
654:デフォルトの名無しさん
04/12/30 21:02:52
ム板では NG ワードにプログラミング言語「るび」を指定することが
推奨されています。
655:デフォルトの名無しさん
04/12/30 21:03:09
>>626
その話題は
スレリンク(tech板)l50
にぴったりだ、一発ブチかまして良スレにしてやってくれ。
656:デフォルトの名無しさん
04/12/30 21:07:06
>>643 のリンク先見たけど開発者がこれでは…
ずっとマイナーなままなのそれなりに理由があるからだろ。
657:デフォルトの名無しさん
04/12/30 21:08:56
>>656
その理由を
スレリンク(tech板)l50
に書きなさい、ちゃんと議論してみろ。
658:デフォルトの名無しさん
04/12/30 21:09:13
matzはジョークのひとつも言ってはいけないのか……
659:デフォルトの名無しさん
04/12/30 21:11:10
面白ければ許可する
660:デフォルトの名無しさん
04/12/30 21:14:30
Rubyアンチに「じゃあ、Rubyの欠点を挙げてみろ」と言うとだんまりになってしまうのが面白くてしかないwww
661:デフォルトの名無しさん
04/12/30 21:16:29
マイナーすぎてレンタル鯖で使えない所が多い。
662:デフォルトの名無しさん
04/12/30 21:18:32
cgi.rbの 1.8 や 1.8.2 であった問題
663:デフォルトの名無しさん
04/12/30 21:19:39
Unicode、半角カナを含めた文字コードの扱い
664:デフォルトの名無しさん
04/12/30 21:19:45
>>661
今をときめくライブドアで使えますが?
665:デフォルトの名無しさん
04/12/30 21:21:28
>>661-663
ほら書き写してやった、向こうでつづけて書け。
666:デフォルトの名無しさん
04/12/30 22:41:49
Windowsでexeが作れない
667:デフォルトの名無しさん
04/12/30 22:49:56
自己記述ができない
668:デフォルトの名無しさん
04/12/30 22:55:43
開発者が
>それくらいだったらマイナーなままでいてくれた方がずっと良い。
って言ってるんだからマイナーなんだろ。
669:デフォルトの名無しさん
04/12/30 23:08:48
今度は厨が良い所を挙げてくれ。
670:デフォルトの名無しさん
04/12/30 23:59:16
BNF記法の正式な書き方ってありますか?
なんか検索して色々なサイト見るとそれぞれ
若干記述の方法がちがうんですよね。
あとEBNFについての書き方ってのは
調べても詳しく解説してるサイトがないんですよね。
識者の意見求む!
671:デフォルトの名無しさん
04/12/31 00:18:58
>>670
表記法は規格によって様々だけど、表す物は同じ
一番元になったAlgolの時点では、
<>で囲った物が非終端記号
::=が超記号
|がOR
の3つ。
EBNFになって
省略可能が[...]
0回以上の繰り返しが{...}
くくりが(...)
という書き方が可能になった
とコンパイラ構成法に書いてあります
672:デフォルトの名無しさん
04/12/31 00:24:06
Rubyで金取れる仕事ってできるの?(品質保証込み)わしバグとか怖くて使えんけどまじで
大丈夫なの?
673:デフォルトの名無しさん
04/12/31 00:28:41
おk
674:デフォルトの名無しさん
04/12/31 01:00:50
>>670
規格になってるのには、ISO/IEC 14977:1996 とか RFC2234 とかがあったり。
675:デフォルトの名無しさん
04/12/31 14:17:23
>>671 >>674
レスありがとうございます。
>>671が示してくれた記述方法は
↓と同じですよね。(この記述方法が一番読みやすい)
URLリンク(www.wormjp.umin.jp)
でも>>674が示してくれた標準となっている「ISO/IEC 14977:1996」では
↓のように若干記述方法が違うんですよね。
URLリンク(www.atmarkit.co.jp)
ま、この2通りを知っておけばいいって感じですかね?
676:デフォルトの名無しさん
04/12/31 14:31:23
どれも憶えておけば、折衷式俺定義BNFが出てきても読める。
677:デフォルトの名無しさん
04/12/31 15:22:22
>>676
すまん
678:Rubyist!
04/12/31 15:47:47
PerlやPythonのシンタックスはヘタレでかつ、醜悪
よく公開する気になれるものだなこんなもの
しかもはっきり言って便利でも何でもないよこんなの
こんなの好きだって奴はアホそのものだな、イラネ-
679:デフォルトの名無しさん
04/12/31 16:38:57
Rubyの汚いend end endよりはPythonのソース
の方が綺麗
680:デフォルトの名無しさん
04/12/31 16:40:20
このスレいたたたたたたたたた
漏れ儲でもなんでねねぇーけど、ここでRuby批判してる住人は妬みにしかみえねーな
『Windowsでexeが作れない』『自己記述ができない』『マイナーすぎてレンタル鯖で使えない所が多い』・・・
メイジャーになるだけの言語を作れないもしくは作る勇気も技術もない香具師の嫉妬だな
そこまでいうおまいらの作った処理系は超クオリティで馬鹿流行するんだろうなw
新言語開発ってのははじめからなんの保障もねぇーんだよ
それをさもお客様ヅラして能無しどもが偉そうに素人相手にムキになって評価してやがるイタタタタタタタタ
こんなところでネチネチ陰湿に文句いうくらいならさっさとRubyアンインストして忘れろよ
681:デフォルトの名無しさん
04/12/31 16:41:49
うかつにRubyのような画期的な言語をつくってしまうと
自意識過剰の能なし共の嫉妬を買うねぇ。
682:デフォルトの名無しさん
04/12/31 16:42:26
誰かが結果を出した途端
出し抜かれたというか、ズルい事でもされたような錯覚に陥るんかねぇ。
ありもしない自分の可能性を信じさせられる平等教育の犠牲者はかわいそうだなぁ。
アンチRubyの方々にはまことに同情するよ。
683:デフォルトの名無しさん
04/12/31 16:48:03
俺が作ったわけじゃいけどCやPerlやPythonの方が流行ってるよw
もしかしたらHSPの方が流行ってね?www
684:デフォルトの名無しさん
04/12/31 16:50:37
LarryやGuidoのような才能の無い人間が作った言語が流行るのは、勘違いクンが増えるので良くない。
つか、悪い。もはや悪事。奴等は恥を知れ。
685:デフォルトの名無しさん
04/12/31 16:54:15
>>683
俺はRuby信者じゃない。
批判のフリした罵りが見苦しいだけ。
第三者が読んで含蓄のある批判をしてみたまえよ、みっともない。
686:デフォルトの名無しさん
04/12/31 17:00:50
少なくとも俺にはまともな批判に見えるがな
メジャーじゃない
これは立派な不満点だ
お前の方が煽りに見える
687:デフォルトの名無しさん
04/12/31 17:02:51
この板もid欲しいな。
688:デフォルトの名無しさん
04/12/31 17:21:29
アンチも信者も評価軸は同一次元上にあるんだよ。
信者は何があろうと持ち上げるし、
アンチはなにがあろうとくさすからな。
どっちも同じくらい間抜けだし邪魔だ。
だがRubyの場合はただ煽りたいだけの馬鹿がいるのよな。
これRubyやmatzのせいか?
あとメジャーじゃない点は確かに批判になりうるが、
でもそれはお前、pointy-haired bossじゃねえかよ。
689:デフォルトの名無しさん
04/12/31 17:24:11
まー万人に好かれる物を作るってのは無理だろな
ここで叩いてる連中も自分で何か作ったら同じように叩かれるがいいさ。
690:デフォルトの名無しさん
04/12/31 17:29:32
別に叩かれても全然構わん。
それを見て精進するだけの話。
叩かれたからってファビョるなよな。
691:デフォルトの名無しさん
04/12/31 17:31:18
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
692:デフォルトの名無しさん
04/12/31 17:32:06
ここまで強烈なアンチを生み出したことをRubyは誇ってよいぞ。
693:デフォルトの名無しさん
04/12/31 17:36:25
厨も強烈なので誇っていいぞ。
680 名前:デフォルトの名無しさん 本日のレス 投稿日:04/12/31 16:40:20
このスレいたたたたたたたたた
漏れ儲でもなんでねねぇーけど、ここでRuby批判してる住人は妬みにしかみえねーな
『Windowsでexeが作れない』『自己記述ができない』『マイナーすぎてレンタル鯖で使えない所が多い』・・・
メイジャーになるだけの言語を作れないもしくは作る勇気も技術もない香具師の嫉妬だな
そこまでいうおまいらの作った処理系は超クオリティで馬鹿流行するんだろうなw
新言語開発ってのははじめからなんの保障もねぇーんだよ
それをさもお客様ヅラして能無しどもが偉そうに素人相手にムキになって評価してやがるイタタタタタタタタ
こんなところでネチネチ陰湿に文句いうくらいならさっさとRubyアンインストして忘れろよ
681 名前:デフォルトの名無しさん 本日のレス 投稿日:04/12/31 16:41:49
うかつにRubyのような画期的な言語をつくってしまうと
自意識過剰の能なし共の嫉妬を買うねぇ。
682 名前:デフォルトの名無しさん 本日のレス 投稿日:04/12/31 16:42:26
誰かが結果を出した途端
出し抜かれたというか、ズルい事でもされたような錯覚に陥るんかねぇ。
ありもしない自分の可能性を信じさせられる平等教育の犠牲者はかわいそうだなぁ。
アンチRubyの方々にはまことに同情するよ。
684 名前:デフォルトの名無しさん 本日のレス 投稿日:04/12/31 16:50:37
LarryやGuidoのような才能の無い人間が作った言語が流行るのは、勘違いクンが増えるので良くない。
つか、悪い。もはや悪事。奴等は恥を知れ。
694:デフォルトの名無しさん
04/12/31 17:38:02
Rubyは嫌いじゃないんだが痛い信者が居るのがいやなんだよなぁ。
695:デフォルトの名無しさん
04/12/31 17:46:10
この板で「Ruby最高!Perl,Python,etcはゴミクズ」と煽っているのは同一人物だろ。
Rubyコミュニティが何か他言語に排他的であるかのように印象操作するべく
アンチが自作自演を延々と続けているのは見ていて痛々しいな。
彼にとっては2chが全てなんだろう。暇なやつ。
696:デフォルトの名無しさん
04/12/31 17:50:07
def java_like_ruby(a)
sync |sock,a| {
...
}
end
697:デフォルトの名無しさん
04/12/31 18:03:42
//JavaのsynchronizedのよなことをRubyでやりたい
def sync_lock(a)
yield sync(a);
end
698:デフォルトの名無しさん
04/12/31 18:14:25
>>695
根拠も無しに都合の悪い事は全てアンチの仕業にしてるアンタも
見ていて痛々しいぞ。
699:デフォルトの名無しさん
04/12/31 18:15:51
,_ ,_ ___, _, __OO __ | | r― 、 _| |_ ,i~| ;―; ,_ _l~l__
| | | | 'ー―i | l^l | | 'ー― ,! | o c!二 二'i | ⊂⊃ | ~ー; ;―○ i二 ニ!i, i"i .| | | 'ー; ;―"
|_| | | i`iノノ ,|| | | _, // | 8εi ノ ! | ⊂⊃ | ノ / l~L、 く <フ,ノ i, V ,' | | ,| |_
,_ノ ノ ノ r'´ ノ ノ | |ノ,ノ | (__ ooooフ ○ヽ 、 | ⊂⊃ | `´i"σ;‐' ノ _ヽ、 > <、| | i"σ;‐'
`ー'" ー' `-'’ '-‐'" ゛ー‐' ー'くノ `・’ `―" `ー' `・´ `´ くノ^ヽ´ ー' `ー'
700:デフォルトの名無しさん
04/12/31 18:16:53
,_, ,_,. ,_, |~|
_| |_. | | | | 、__,. iニニ ニニ! _l~l__ ___
ー―; ノ. | L._ | | ゙ー―‐' __(ゝ| |ノ)_ ー;┌―‐' __ `ー―; |
_/ <、LL] ,_ | i‐-、>..| | .,、 ー; ・、―’ ,i i'ヽニフ ー- `! //
ー・'| |ヽ' __;i |. | | | | ヽー‐‐; i二ノ| |\二l | i i,ー・、 -' ノ | (_
ー’ 'ー ' ´ ー' ~  ̄ ̄ ー' ‐’  ̄~  ̄ ゛ー '
____
| ,__ _| | ̄| | ̄ ̄ ̄ ̄ ̄ ̄ ̄|
| |_| | __| |__, | | ̄ ̄ ̄ ̄ ̄| |
| ,__  ̄||__ __| ┌───┐ | |_____| |
| |_| | ̄ | | | ネット ヲ ::.| .:| _____ |
| ,__  ̄| i’ 'i, | ナメンナ! ::| .| | :| |
| |_| | ̄ i' 'i、 |_________:| :| |_____| |
|___ ̄|/ /^ヽ ヽ ヽ( ゚Д゚)ノ .| _____ .|
i-ii-ii-ii-i | | / ヽ ヽ ( へ) :| | | |
L.iL.!L!L.! | |/ く^\ ヽ ヽ く :| |_____| |
┌―' ,| \ノ ヽ/ .|_______|
└─―‐"
701:デフォルトの名無しさん
04/12/31 18:33:46
最早このスレを破壊したくてやっているとしか思えないな・・・
702:デフォルトの名無しさん
04/12/31 19:25:00
みんなスレたいを見てから書き込んでくれ
703:デフォルトの名無しさん
04/12/31 19:27:43
|ω・`)ソーッ
嵐が収まったようなので質問させて下さい。
boost::spiritでyaccの%left %rightに相当するような
結合・優先順位の設定は可能でしょうか?
やはりBNFで表現するしかないのでしょうか
704:デフォルトの名無しさん
04/12/31 19:54:27
,_ ,_ ___, _, __OO __ | | r― 、 _| |_ ,i~| ;―; ,_ _l~l__
| | | | 'ー―i | l^l | | 'ー― ,! | o c!二 二'i | ⊂⊃ | ~ー; ;―○ i二 ニ!i, i"i .| | | 'ー; ;―"
|_| | | i`iノノ ,|| | | _, // | 8εi ノ ! | ⊂⊃ | ノ / l~L、 く <フ,ノ i, V ,' | | ,| |_
,_ノ ノ ノ r'´ ノ ノ | |ノ,ノ | (__ ooooフ ○ヽ 、 | ⊂⊃ | `´i"σ;‐' ノ _ヽ、 > <、| | i"σ;‐'
`ー'" ー' `-'’ '-‐'" ゛ー‐' ー'くノ `・’ `―" `ー' `・´ `´ くノ^ヽ´ ー' `ー'
,_, ,_,. ,_, |~|
_| |_. | | | | 、__,. iニニ ニニ! _l~l__ ___
ー―; ノ. | L._ | | ゙ー―‐' __(ゝ| |ノ)_ ー;┌―‐' __ `ー―; |
_/ <、LL] ,_ | i‐-、>..| | .,、 ー; ・、―’ ,i i'ヽニフ ー- `! //
ー・'| |ヽ' __;i |. | | | | ヽー‐‐; i二ノ| |\二l | i i,ー・、 -' ノ | (_
ー’ 'ー ' ´ ー' ~  ̄ ̄ ー' ‐’  ̄~  ̄ ゛ー '
705:デフォルトの名無しさん
04/12/31 19:54:48
____
| ,__ _| | ̄| | ̄ ̄ ̄ ̄ ̄ ̄ ̄|
| |_| | __| |__, | | ̄ ̄ ̄ ̄ ̄| |
| ,__  ̄||__ __| ┌───┐ | |_____| |
| |_| | ̄ | | | ネット ヲ ::.| .:| _____ |
| ,__  ̄| i’ 'i, | ナメンナ! ::| .| | :| |
| |_| | ̄ i' 'i、 |_________:| :| |_____| |
|___ ̄|/ /^ヽ ヽ ヽ( ゚Д゚)ノ .| _____ .|
i-ii-ii-ii-i | | / ヽ ヽ ( へ) :| | | |
L.iL.!L!L.! | |/ く^\ ヽ ヽ く :| |_____| |
┌―' ,| \ノ ヽ/ .|_______|
└─―‐"
706:デフォルトの名無しさん
04/12/31 21:06:10
>>703
別にEBNFで表現しても大して難しくないんとちゃうの?
707:デフォルトの名無しさん
04/12/31 23:43:07
>703
マニュアルにはなかったよ。
708: 【270円】
05/01/01 03:18:11
709:703
05/01/01 03:28:14
>>706,707
レス㌧クス。
やはり無いですか…
spiritで書くと、正直な所あまり綺麗ではないし分かりづらいので、
行数節約出来るに越したことはないかな、と思ったのですが…
おとなしく構文で規定することにします。
クオリティ低い質問でスンマソン(;´Д`)
710:デフォルトの名無しさん
05/01/01 04:45:46
HSPが仕様がクソでそれで作る人が馬鹿でも構わないが、
どの辺がクソか?言うか、もっと良い仕様のスクリプトを作って
公開すれば?
711:デフォルトの名無しさん
05/01/01 05:19:57
> もっと良い仕様のスクリプトを作って
既存のもっと良いものを指摘するだけでも十分でしょ?
712:デフォルトの名無しさん
05/01/01 05:20:29
HSPは自作字句解析+再帰下降自作ですかね?
やっぱflex+bison?
713:Rubyist!
05/01/01 11:07:11
他人の創造的行為に横からごちゃごちゃ口挟めば
自分も何か価値のある行為をしてると勘違い出来る
安っぽいクズが、自分の発言を権威付けしたい欲望に駆られて
Ruby叩きの誇大妄想的な発言をしてるだけ。騙される奴はアホー
「じゃあお前がやってみろ」
これは創造的な行為をしてる人間やその作品に対して
足引っ張り以上の価値のないネチョネチョな難癖つけてる頭でっかちに対して、
その身の程を知らせるためにふさわしい切り返しだ。
最低最悪なのはどちらの行為なのかよく考えたらいい。
創造的な領域にまで昇華された批評も「例外的」にあるが、
すくなくともプログラミング言語へのもので
批評家の自意識過剰以外の何かが伝わる
創造的批評なんて、お目にかかったこと滅多にねぇ。
714:Rubyist!
05/01/01 13:48:38
今は批評に名を借りた単なる誹謗中傷にしか過ぎないシロモノが幅を利かせ過ぎな面があるって事だろうな。
批評本来の価値を貶めるようなものがね。
批評は創作に比較すれば容易に参加できるから、批評家の本質自体を問われやすい。
批評家は利害・好悪を離れたところの公正さやそれを機能させる自制心が必要だが、今の批評家には欠けてるって事だな。
本来の価値の高い批評を操れるにふさわしい批評家が増えて欲しいね。
715:デフォルトの名無しさん
05/01/01 13:52:52
>>713
じゃあお前が批評してみろ
716:デフォルトの名無しさん
05/01/01 13:54:54
俺が批判してやろう
717:デフォルトの名無しさん
05/01/01 14:27:42
∩___∩
| ノ ヽ
/ ● ● |
| //// ( _●_) ミ
彡、 ヽ(⌒ヽ/ Ruby、プッ
/ __ \ ヽ
(___) / `ー‐'
718:デフォルトの名無しさん
05/01/01 16:05:18
Ruby厨に「じゃあ、Rubyの良い所を挙げてみろ」と言うとだんまりになってしまうのが面白くてしかないwww
719:Rubyist!
05/01/01 16:18:21
↑コピペつまんね。OHP見ろ。
作品として公開されたものが批評されるのは当たり前の事だが、
批評する以前の問題(サンプルを見ただけ、もしくはインストールすらしない、とか。まあ大抵のUNIXには入ってるけどなw
窓厨には敷居が高いかもしれん(pu)な奴が多すぎだ。
食わず嫌いに「批評」はできるのかと。
720:デフォルトの名無しさん
05/01/01 16:21:01
少しはマトモな議論に戻ろうぜ
・Rubyの(言語としての)メリット
- オブジェクト指向の皮を被ったマルチパラダイム
- プロトタイプベースチックなクラスベース(特異クラス・メソッド)
-> 高い柔軟性を持つ
- 充実したシンタックスシュガー
・デメリット
- 実行パフォーマンスが悪い。スピード求めるならC&C++で。
- 作者(matz)が保守的すぎて新しいパラダイムを受け付けなくなっている。
- 構文が複雑。シンプル化も進まない。
(シンタックスシュガーが充実している反面でもあるけど)
かねえ。Ruby2.0でどうなるかだけど、進退窮まっている感じがするよね。
721:デフォルトの名無しさん
05/01/01 16:55:52
>>719
アンタの意見も根拠の無い妄想ばかりでつまらんのだけど。
722:デフォルトの名無しさん
05/01/01 18:04:37
HSP vs Ruby論争はこっちでやれ
言語仕様と開発論法
スレリンク(tech板)
723:デフォルトの名無しさん
05/01/01 18:21:35
むしろここでやれ
HSP vs Ruby
スレリンク(tech板)
724:デフォルトの名無しさん
05/01/01 18:24:57
いやここでやれ
725:デフォルトの名無しさん
05/01/01 18:27:58
ここもあるよ
【因縁の】DelphiVSHSPVSRuby【対決】
スレリンク(tech板)
726:デフォルトの名無しさん
05/01/01 18:28:39
ワロタwwwwwwwww
HSP厨もRuby厨も頭悪すぎwwwwwwwwww
727:デフォルトの名無しさん
05/01/01 21:12:29
>>726
HSP厨のアホさ加減は半端無いよなw
728:デフォルトの名無しさん
05/01/01 21:41:57
>>727
よくこういった書き込みみるけど、具体的な内容を指摘したものは
いまだかつて1度もないw
729:デフォルトの名無しさん
05/01/01 21:56:12
今時あんなBASIC風の古臭い言語が流行ってるのは
日本にとってかなりマイナスだと思う。
730:デフォルトの名無しさん
05/01/01 23:11:00
>>729
他の国のプログラマはオブジェクト指向言語から始めてるのかい?
731:デフォルトの名無しさん
05/01/02 00:45:30
無難にC/C++から始めてると思う。
スクリプトならPython+SDLのPygameとか。
URLリンク(www.pygame.org)
732:デフォルトの名無しさん
05/01/02 01:03:25
これで日本と海外のソフトウェア開発力の違いの原因が良く分かりましたね
733:デフォルトの名無しさん
05/01/02 01:07:51
初めての言語なんてその後ちゃんとオブジェクト指向を学べば関係ないだろ
N88BASICから始めた俺にはかなり不愉快
734:デフォルトの名無しさん
05/01/02 01:14:47
このスレでくだらん論争してる奴が馬鹿なのは間違いないな。
735:デフォルトの名無しさん
05/01/02 01:19:40
>>733
それはそういう時代だったからだろ。
俺も最初の言語はBASICだったし。
でも今あえてBASICみたいな言語から始める理由は無いと思うが。
HSPもCも覚える労力はそんなに差はないでしょ。
736:デフォルトの名無しさん
05/01/02 01:34:28
最初に何を覚えようがその後覚える技術は本人次第でいくらでも覚えられる
最初がCだろうがHSPだろうが関係ない
737:デフォルトの名無しさん
05/01/02 01:48:59
インタプリタなC++がいいってこったね('A`)
738:デフォルトの名無しさん
05/01/02 01:55:44
話は変わりますがparrotってどうですか?
739:デフォルトの名無しさん
05/01/02 01:58:27
Perl6のランタイムのこと?
740:デフォルトの名無しさん
05/01/02 02:00:21
Rubyなんてプッて感じ。
ブロック扱うためにイテレータとか言って特殊構文導入しちゃって必死すぎw
それでも全然自己記述出来ないのな。Lispには遠く及ばないな。
Smalltalkの統一性にも全然及ばないwww
ユーザーも各スレ荒らしまくって最悪だしな。
741:738
05/01/02 02:02:43
>>739
そうです。
なんか、「他の言語からも使ってもいいよ」みたいなことが書いてあったので、
どんなもんかなと思ったんですが。
742:デフォルトの名無しさん
05/01/02 02:10:32
>>741
不勉強にして知らなかったからちょっと調べてみた。
URLリンク(www.namikilab.tuat.ac.jp)
とりあえずPerl用に作られたVMなんすね。
この種のものってJVMじゃダメなのかな…
面白そうなのでもうちょっと調べてみます。いい拾い物をしたw
743:デフォルトの名無しさん
05/01/02 02:15:44
> 現在の Perl 5 の VM はスタックマシンだ(訳注:そうだったんだー)
そうだったんだ…
744:デフォルトの名無しさん
05/01/02 02:24:49
>print "String" とか、レジスタの値を表示するためにprint I3 とか、書けるけど、
>Parrot の演算は多態(polymorphic)ではない。
>アセンブラがちょっとトリッキーなことやって対応してる。
こういう変なHack入れるとグダグダになりそうな気がするんだけどなあ…
745:デフォルトの名無しさん
05/01/02 02:29:59
>>744
ただオペランドの種類で命令をリダイレクトしてるだけとちゃうの?
その程度ならさほど問題にはならなそうだけど
746:デフォルトの名無しさん
05/01/02 02:32:17
>>745
うん、ちょっと読み進めたらまさにそう書いてあったorz
747:738
05/01/02 02:41:58
URLリンク(www.parrotcode.org)
俺の受けた印象では、Groovyとか、違う言語からJavaバイトコードを
使おうってのとか、.NETのCLRとかも含めて、そういう
ものと似た動きに見えるんですがどうですか?
ならまじめに勉強して損はないかなと思うんですが。
最近そういう動きが盛んだな…
748:デフォルトの名無しさん
05/01/02 03:01:23
アプリケーションからハードは一切触らない、みたいな。それこそ
単純な加算などでさえも。
749:デフォルトの名無しさん
05/01/02 03:05:37
Parrot入れてみたんだが、SDLも既にバインドされてたりするのね…
750:デフォルトの名無しさん
05/01/02 03:10:26
これって出て来た?
URLリンク(www.namikilab.tuat.ac.jp)
751:デフォルトの名無しさん
05/01/02 04:31:04
>>750 >>742
752:デフォルトの名無しさん
05/01/02 12:50:19
C/C++で日本語プログラム作らないんだな、
753:デフォルトの名無しさん
05/01/02 12:53:20
、
754:デフォルトの名無しさん
05/01/02 14:53:29
parrotなんか糞
perl6はrubyの劣化コピー
755:デフォルトの名無しさん
05/01/02 16:27:28
Parser を正しく発音すると「パーサー」「パーザー」のどっち?
756:デフォルトの名無しさん
05/01/02 16:31:55
米語発音がパーサー。どっちも正しい
757:デフォルトの名無しさん
05/01/02 16:33:18
>755
URLリンク(dictionary.goo.ne.jp)
758:デフォルトの名無しさん
05/01/02 17:24:33
pythonの言語仕様は素晴らしいと思う。
759:デフォルトの名無しさん
05/01/02 18:26:43
>>758
言語仕様と開発論法
スレリンク(tech板)
こちらへどうぞ
760:デフォルトの名無しさん
05/01/02 19:30:46
>>747
流行ってるわけでも無いVMの勉強って
損得で言ったらどっちになるか微妙だとおもうぞ。
761:デフォルトの名無しさん
05/01/02 22:03:31
コンパイラ作る練習にいいかも
762:デフォルトの名無しさん
05/01/02 22:40:11
>>754
つInline::Ruby
763:デフォルトの名無しさん
05/01/03 11:29:03
>>760
やっぱ、やるならjavaのVMでつか?
764:デフォルトの名無しさん
05/01/03 16:44:26
どういう目的でVMの勉強したいのかわからんが
とりあえずJavaが無難じゃない?
765:デフォルトの名無しさん
05/01/03 17:25:44
いきなりJVMやるならアセンブラでも覚えたほうがいい
766:デフォルトの名無しさん
05/01/03 17:44:32
ここはやるスレじゃなくて作るスレなんで
767:デフォルトの名無しさん
05/01/03 18:22:40
作る前にやらんと意味わからん
768:デフォルトの名無しさん
05/01/03 18:23:39
そらそうだ
769:デフォルトの名無しさん
05/01/03 18:30:47
ここは作るスレじゃなくて相談室なんで
770:デフォルトの名無しさん
05/01/03 19:58:29
おまいら会話がエロすぎます。
771:デフォルトの名無しさん
05/01/03 21:26:12
作っちゃった時の相談もここ?
772:デフォルトの名無しさん
05/01/04 01:09:27
VBやDelphiなどの言語のコンパイラを
勝手に作ったら特許とかに引っかかりますかね?
773:デフォルトの名無しさん
05/01/04 01:10:53
>>772
先ず作ってから心配しろ。
774:デフォルトの名無しさん
05/01/04 01:11:52
>>773
作った後に駄目だったらキツイでしょ?
775:デフォルトの名無しさん
05/01/04 01:29:06
>>772
A.言語仕様自体は特許にならないから大丈夫。
ただし、付属しているライブラリは特許・著作権で保護されるので
そっちの回避法を考えておかないと駄目。
776:デフォルトの名無しさん
05/01/04 01:37:27
質問です。
コンパイラ本に良く載ってる実行時環境(スタックマシンとかレジスタマシンとか)っていうのは
何のためにあるんですか?最適化をしやすくするため?
実行時環境とか用意しなくても直接構文木を記号表と照らし合わせながら
実行コードに変換していく様な事はできないんですか?
777:デフォルトの名無しさん
05/01/04 02:16:26
↑自己解決しました。勘違いでした。
778:デフォルトの名無しさん
05/01/04 02:23:09
HSPくらいの言語なら簡単に作れますか?
779:デフォルトの名無しさん
05/01/04 02:24:06
>>778
あなたには無理です
780:デフォルトの名無しさん
05/01/04 02:24:16
最適化をあまり気にしなければ。
781:デフォルトの名無しさん
05/01/04 02:26:11
>>776
ただ単純に説明を楽にするためじゃないの?
「勘違いでした」って何を?
782:デフォルトの名無しさん
05/01/04 06:04:48
>>781
仮想マシンのスタックマシンと、CとかPascalのスタックベースメモリ割り当てを勘違いしてました。
783:デフォルトの名無しさん
05/01/04 11:38:53
>>775
ありがとうございます。
とりあえず勉強を兼ねてVBコンパイラ作ってみます。
784:デフォルトの名無しさん
05/01/04 16:17:36
LSI C-86 試食版
で、コンパイラをつくってみよ~
785:デフォルトの名無しさん
05/01/04 20:40:08
質問させていただきます。
bnfを使って出来ることって字句解析、構文解析までですよね?
意味解析、中間コード生成までを定義できるようなbnfにしたいのですが、
そのような拡張がされたbnfの構文というのはあるのでしょうか?
786:デフォルトの名無しさん
05/01/04 20:54:45
>>785
とりあえず属性文法を学ぶのが良いと思う。
787:デフォルトの名無しさん
05/01/04 21:31:27
>>785
わりと参考になった本を紹介しときます。(関係者じゃないですよ、念のため。)
URLリンク(www.amazon.co.jp)
788:デフォルトの名無しさん
05/01/04 21:57:33
Rie 属性文法
fURLリンク(ftp.is.titech.ac.jp)
789:デフォルトの名無しさん
05/01/05 05:27:11
なるほど属性文法ですか。
手元の本でちょっと調べてみましたが
意味解析以降は格段に難易度上がりますね。
ちょー難い!
790:デフォルトの名無しさん
05/01/05 06:15:19
属性文法(((( ;゚Д゚)))
791:デフォルトの名無しさん
05/01/05 22:42:48
普通は、構文解析以降は手書きじゃ???
792:デフォルトの名無しさん
05/01/05 22:57:49
何が普通なんだか…
793:デフォルトの名無しさん
05/01/05 23:24:54
>>791
つまり、bnfのような定義ファイルにはできないってこと?
794:デフォルトの名無しさん
05/01/05 23:33:32
すぐ上にあんじゃねーか
795:デフォルトの名無しさん
05/01/05 23:45:45
YACCに限界を感じて、そろそろというプロジェクトはいくつかあるが、
パーサ手書きというのは、実用的なソフトではほとんどナイ。
796:デフォルトの名無しさん
05/01/05 23:55:10
>>794
属性文法の書式を例を踏まえて教えれ。
797:デフォルトの名無しさん
05/01/06 00:05:13
>>795
最近のgccは手書き。
次期rubyも手書きの予定。
798:デフォルトの名無しさん
05/01/06 00:16:18
>>794
fURLリンク(ftp.is.titech.ac.jp)
799:デフォルトの名無しさん
05/01/06 00:39:55
属性文法使ってる処理系なんて聞いたことないぞ。
lexやyaccまでなら聞くけど。
構文解析以降は手書きじゃないか?
800:デフォルトの名無しさん
05/01/06 00:48:02
日本語の不自由な方がおらっしゃられるようです
801:デフォルトの名無しさん
05/01/06 01:02:19
Rieくらいは聞いたことあるんじゃないか?市販の製品に使われたって
言うのは聞かないけれども。
802:デフォルトの名無しさん
05/01/06 01:04:04
藻前らはコンパイラ作って市販するつもりなのか?
803:デフォルトの名無しさん
05/01/06 01:05:07
コンパイラ屋くらいだろうな、そんなことするの。
804:デフォルトの名無しさん
05/01/06 01:05:50
理恵タソ(;´Д`)ハァハァ
805:デフォルトの名無しさん
05/01/06 08:04:07
現場ではどうなのかわからないけれども、最適化ステージと
コードジェネレータを全部手書きってのは無いんじゃないかなあ。
最適化とコードジェネレーションについては、
Muchnick: Advanced Compiler Design & Implementation,
Morgan Kaufmann, 1997 が実践的で参考になった。
806:デフォルトの名無しさん
05/01/06 09:29:25
カウフマンつーとサイレントヒルだな
医者。仮眠明けで起きると誰も居ないでモンスターだらけと説明。
807:デフォルトの名無しさん
05/01/06 10:46:42
コンパイラ作る時のお勧めの中間コードは何ですか?
808:デフォルトの名無しさん
05/01/06 11:00:29
中間コード?
1パスにそんなもん必要ない
809:デフォルトの名無しさん
05/01/06 11:04:20
1パスでレジスタ割り当てとかの最適化まで出来るのですか?
810:デフォルトの名無しさん
05/01/06 14:17:14
どんな最適化を実装するつもりか自分でわかっているなら、
おのずと適切な中間コードもわかるはず。それが分かっていない
>>807にはどうせ非最適化コンパイラも作れない罠。
811:デフォルトの名無しさん
05/01/06 22:54:47
上の張ってある書籍ですが、読む順番はあるんですか?
ちなみに私は、Cをはじめてまだ1ヶ月です。
812:デフォルトの名無しさん
05/01/06 22:56:16
>>811
プログラミングを初めて1ヶ月?
813:デフォルトの名無しさん
05/01/06 22:57:10
先にCを完全にマスターして下さい。
どの本も何らかのプログラミング言語をマスターしている事を前提に書かれてます。
814:デフォルトの名無しさん
05/01/06 23:15:09
Cマガでコンパイラの特集が組まれてたのって何年何月号だか
ご存知の方いらっしゃいますか?
815:デフォルトの名無しさん
05/01/06 23:33:05
>812
そうです。
>813
マスターですか。。。。
K&Rがスラスラ読めるレベルでしょうか?
頑張ります。
816:デフォルトの名無しさん
05/01/06 23:44:02
>>814
手持ちでは…2003年8月号に
「コンパイラの仕組みを理解しよう」って特集があるけど、
そこまで突っ込んでは書いてない。
817:デフォルトの名無しさん
05/01/07 00:05:22
>>816
情報ありがとうございます。
私の手持ちで2003年1月号に「コンパイラの作成」
というそのものズバリの物がありました。
818:デフォルトの名無しさん
05/01/07 00:07:54
>>817
見事にその号が抜けてる orz
どのあたりまで書いてありますか?
819:デフォルトの名無しさん
05/01/07 00:52:08
Cマガの特集レベルなんてたかが知れてる
昔のインターフェース誌は濃かったなあ
820:デフォルトの名無しさん
05/01/07 00:55:04
インターフェースもCマガみたくバックナンバーをPDFにして売ってくれたりしないのかなぁ
821:デフォルトの名無しさん
05/01/07 01:02:21
>>820
しているじゃないか。
822:デフォルトの名無しさん
05/01/07 01:12:37
>>821
うお、知らなかった…_| ̄|○
01年までですか…。90年代のやつがもう一度読みたいんだけどなぁ
823:デフォルトの名無しさん
05/01/07 12:44:16
>>818
字句解析、構文解析、意味解析、コード生成までが
非常に分かりやすく書かれてます。
20ページくらいでソース付きです。
824:デフォルトの名無しさん
05/01/07 14:43:10
>822
URLリンク(www.sbpnet.jp)
825:824
05/01/07 14:44:52
ごめん、インタフェースも、か。読み間違えた。
826:デフォルトの名無しさん
05/01/07 17:31:22
URLリンク(www.csg.is.titech.ac.jp)
827:デフォルトの名無しさん
05/01/08 03:28:16
●プログラミング言語処理系 岩波講座 ソフトウェア科学〈5〉 佐々 政孝
上記の本を買おうと思ったら、中身パスカルだったぞ。
他のコンパイラの本もパスカル+Cって内容だった。
Cのみの本はないのか?
828:デフォルトの名無しさん
05/01/08 03:32:21
>>827
その本俺も持ってるし、俺はCしか書けないけど、大体読めるから自分で
書き直せるっしょ。元々そういう意図があるから複数の言語で書いてないん
じゃないの?
829:デフォルトの名無しさん
05/01/08 07:40:38
>827
なぜCのみである必要が?
パスカルのみでも読めるでしょ
逆に読めないなら問題
830:デフォルトの名無しさん
05/01/08 16:25:31
今の人には読めない読めない
無理も無い
パシカル本は今の本屋にどこにも置いてないからね
もしCより簡単だと言われても敬遠するだろう
パスカルで書かれているという事は大抵古い本で、
ポインタ記法とか本ごとに違ってたりするし
構文なのか演算子なのかわからない物もある
.の置き方に一貫性ないし
読んでもただ、混乱するだけである
831:デフォルトの名無しさん
05/01/08 16:31:00
Pascalの方が綺麗でしょ。
Cみたいにメモリ周りの汚さはなくて、純粋にアルゴリズムを記述しやすい。
832:デフォルトの名無しさん
05/01/08 16:39:23
綺麗・汚いの話をしてるわけではない
833:デフォルトの名無しさん
05/01/08 16:43:55
>>832
綺麗なら読みやすいだろう。
言語を覚えるコストよりもソースを読み解いたり書いたりするコストの方が遥かに高い。
834:デフォルトの名無しさん
05/01/08 17:13:11
読みやすさの話をしてるわけではない
綺麗ならSchemeの方が良い
835:デフォルトの名無しさん
05/01/08 17:17:09
>>834
では何の話なの?わかりやすく教えて。
836:デフォルトの名無しさん
05/01/08 17:18:18
本がないという理由なら、WEB上のリソースでも十分だけど。
837:デフォルトの名無しさん
05/01/08 17:32:26
なぞなぞです
838:デフォルトの名無しさん
05/01/08 17:36:59
>>834
関数型言語と手続き型言語では、さすがにプログラミングの定石からして
全く違うだろ。
記法が書籍毎に異なるなんてのは、良くある話。コンパイラ系の書籍だと
BNF 記法が良く出てくるが、あれも書籍毎に微妙に違ったりするし。その
あたりを自分で吸収できないようだと、専門書と取り組むのは難しい。
839:デフォルトの名無しさん
05/01/08 18:10:28
記法が多少違うなんてのはコンピュータに限らず、
大学で勉強すれば大抵でくわす話。
840:デフォルトの名無しさん
05/01/09 09:13:32
>>829
それはあんたはすでにパスカルを知っているから。
またはあんたが十分かしこいから。
よのなかの人間はあんたほど賢くないんだよ。
>>830
はげどう。
Javaが広まった理由のひとつが、「CやC++と見た目が似てるから」。
そのくらい、自分の知ってる言語に似ているかどうかは重要。かしこくない人間にとっては。
841:デフォルトの名無しさん
05/01/09 09:53:52
pascalライクな擬似コードくらい読めるだろ普通。
ま、おまいが読めなかったとしても
CSを志すような人間は大抵おまいより賢いから心配ご無用。
少なくともそんなつまらん理由で萎縮しない程度にはな。
842:デフォルトの名無しさん
05/01/09 10:25:49
>>840のように賢くない人間はコンパイラなんか書くなということだな。
843:デフォルトの名無しさん
05/01/09 10:43:32
大丈夫、そんな人間に自力でコンパイラなんて書けない。
時間の無駄を省けていいじゃん。
大学入試の足切りみたいなもんだと思え(入ったってついてけない奴もいるが)。
844:デフォルトの名無しさん
05/01/09 11:46:44
真面目な話の途中で申し訳ないんだけど、parrot って結構良いね。
これをターゲットにコンパイラ書いたら面白そう(楽出来そう)。
URLリンク(www.parrotcode.org)
845:デフォルトの名無しさん
05/01/09 11:50:24
Javaの二番煎じ
846:デフォルトの名無しさん
05/01/09 11:59:39
JVM や CLR の系列だろうけど、ベンダーフリーでライセンスも緩いから使い易いと思う。
847:デフォルトの名無しさん
05/01/09 12:31:33
結構早いしな
848:デフォルトの名無しさん
05/01/09 12:34:28
てかParrot自体はちゃんと動くのか?
作ってもParrotのバグのせいでまともに動かなかったら悲しいぞ。
849:デフォルトの名無しさん
05/01/09 13:31:32
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Parrot
でかい顔するなぼけ
糞ぺrぇrはしね
850:デフォルトの名無しさん
05/01/09 20:42:58
字句解析でコードをトークン列にする際に、
if、forなどのキーワードは「keyword」という大きな
括りにするのと、それぞれ「keyword_if」、「keyword_for」
などのように細かく分けるのとどちらがよろしいでしょうか?
851:デフォルトの名無しさん
05/01/09 20:49:53
構文解析で必要な方。
852:デフォルトの名無しさん
05/01/09 21:45:12
>>850
作りたい言語似よるが、C や Pascal ライクな言語を作りたければ
後者の方が楽。
853:デフォルトの名無しさん
05/01/10 02:02:26
洗練されたPerl: Perl 6文法と正規表現
URLリンク(www-6.ibm.com)
854:デフォルトの名無しさん
05/01/10 02:08:04
Win32コンソール形式の実行ファイルを作りたいのですが
参考になるページはありませんか?
A := B + C
GOTO(L)
のような3番地文の中間コード形式の出力までは出来ています。
855:デフォルトの名無しさん
05/01/10 02:39:22
>>854
>>826
856:デフォルトの名無しさん
05/01/10 09:03:09
>854
x86ならnasmのinfoやIntelのwebサイト、
exeならPE形式、
実際の実装方法はgccのソース
を見ろよ
857:デフォルトの名無しさん
05/01/10 23:52:39
スモールコンパイラ買って着た。
結構美人
858:デフォルトの名無しさん
05/01/11 19:31:43
オライリyacc本が初売り在庫処分で100円だったので買ってしまった。
かなりすすけてるよ(´・ω・`)
読んでみますか。
859:デフォルトの名無しさん
05/01/11 23:06:22
ほ、欲しかった
860:デフォルトの名無しさん
05/01/13 20:23:21
構文解析ではよく構文木を作るって言うけど、
プログラムのデータとしてはどのように持てばいいのでしょうか?
861:デフォルトの名無しさん
05/01/13 20:36:53
リスト(木のノードも含む)とか配列じゃないかね。
LISPの場合はコードがそのまんま構文木なんだよな。
LISPに慣れてるならLISPと同じ構造を目指すとよい。
でもLISPのセルは普通の言語だとGCないから扱いにくい。
862:デフォルトの名無しさん
05/01/13 20:48:38
a = (b[0] + 2) * 3;
だったら、
root
|
assign
/ \
a |
mul
/ \
| 3
add
/ \
| 1
|
array_ref
/ \
b 0
LISPのS式で表現すると
(assign a (mul (add (array_ref b 0) 1) 3))
S式は木のデバッグに都合がいい
gccの内部表現もそうだったかと
863:デフォルトの名無しさん
05/01/13 20:52:15
型やシンボルの属性情報はどうしてます?
864:デフォルトの名無しさん
05/01/13 21:06:58
記号表で別管理
865:デフォルトの名無しさん
05/01/13 21:13:32
(´・∀・`)ヘー
866:デフォルトの名無しさん
05/01/13 23:45:42
treeなんて意識しなくても大丈夫だよ。
あれはあくまでも学問。実務はパーサがやってくれる。
867:デフォルトの名無しさん
05/01/14 00:20:49
>>866
構文解析して即コードに落としちゃう場合はともかく、もう一ステージ挟む場合
(最適化するとか)は、いちど明示的にツリー作る必要があるよ。
868:860
05/01/14 00:39:11
>>861-862で
なんとなく考えが具現化してきました。
ただ今一分からないのが、字句解析で得たトークンを
構文解析でtree構造のデータとして持つとして
それを後の意味解析でどのように使うのでしょうか?
869:デフォルトの名無しさん
05/01/14 00:43:25
>>868
単純な最適化だと
add
/ \
2 1
ってツリーがあったら、コンパイル時に計算して 3 に置き換えちゃうとか。
870:デフォルトの名無しさん
05/01/14 01:03:05
データフロー解析をする時は、ツリーを3つ組表現すると楽かも
871:デフォルトの名無しさん
05/01/14 08:43:21
>>869のような定数伝播ぐらいなら1パスでもできる
ただし1 + a + 2とかをa + 3にはできない
1 + aを読み終えた時点の出力を保留する様な仕組みは
もはや2パスとみなせるし、そこまでするなら木を作った方がいい
872:デフォルトの名無しさん
05/01/14 13:00:57
自分の自作言語でC言語の構造体のアラインメントを
エミュレートしたいのですが、メンバオフセットの決め方がよくわかりません。
例えば#pragma pack(4)のとき、
typedef struct {
int a; // offset 0
char b[1]; // offset 4
int c; // offset 8
} X;
となるのはいいんですが、
typedef struct {
int a; // offset 0
char b[1]; // offset 4
short c; // offset 6
short d; // offset 8
int e; // offset 12
} Y;
shortが offset=6になる理屈がわかりません。
これは暗黙的にwordのアラインメントも働いているということでしょうか?
873:デフォルトの名無しさん
05/01/14 14:02:03
>>872
かなり複雑だよ
typedef struct {
char c[1];
short s;
char cc[1];
} C;
これのsizeof(C)は6。
Cのアラインメントはshortを持つので2になる。
これをメンバに持つ構造体を作るとわかる。
typedef struct {
C c[3];
}CC;
これで sizeof(CC) すると 18。
次に
typedef struct {
char c[1];
short s;
char cc[1];
int i;
} D;
これのsizeof(C)は12。
んで、アラインメントはintを含んでるので4。
typedef struct {
D d[3];
}DD;
sizeof(DD) => 36
つまり構造体はその中のメンバの基本型のサイズが関係する
例えばcharしか持たない構造体はアラインメントが1になる
874:デフォルトの名無しさん
05/01/14 16:10:43
>>873
仰るとおり理解するのが大変でした。
アラインメント指定された値は、あくまでもその大きさの型が出現した
ときに影響するってことで、それ以下のサイズについても
アラインメント指定された値以下であれば位置調整をしなくてはならない
ということですかね。
> 例えばcharしか持たない構造体はアラインメントが1になる
この言葉でようやくわかりました。
構造体を外から見るだけじゃなくて、その中の基本型まで遡って
把握しないと作れませんね。
お答えありがとうございました。
875:デフォルトの名無しさん
05/01/14 18:45:57
難しいね。
λ...... λ...... λ......
λ...... λ......
876:デフォルトの名無しさん
05/01/14 19:52:58
名前の分からないライブラリ関数を、動的に与えられた名前を用いて
コールすることとかって出来ますか?
877:デフォルトの名無しさん
05/01/14 19:54:21
アドレスが分かればできるよ
878:デフォルトの名無しさん
05/01/15 00:43:44
ld
879:デフォルトの名無しさん
05/01/15 09:18:20
興味があったのでアラインメントの計算を考えてみました。
構造体が
typedef struct {
char a; // 1byte
int b; // 4byte
char c; // 1byte
double d; // 8byte
} C; とすると、
#define N 4 // 構造体メンバ数
int member_size[N] = { 1, 4, 1, 8, }; // 各メンバのサイズ(構造体Cの場合)
int member_offset[N]; // メンバのオフセット(求める値)
#define PACK 2 // #pragma pack() への指定サイズ
member_offset[0] = 0; // 1個目のメンバのオフセットは0固定
int pos = 0; // 次のメンバを置くことができる位置
pos += member_size[0]; // 1個目のメンバのサイズ分すすめる
for(int i = 1; i < N; ++i){
int size = member_size[i];
/* 次のメンバのオフセットをoffsetとすると、
offset >= pos;
offset >= min(PACK * n, size * m); // n, mは0, 1, 2... */
int n = (pos + (PACK - 1)) / PACK;
int m = (pos + (size - 1)) / size;
int offset = min(PACK * n, size * m);
member_offset[i] = offset;
pos = offset + size; // 次のメンバを置ける位置を再計算
}
880:デフォルトの名無しさん
05/01/15 11:23:28
言語処理って文型向きでしょうか?理系向きでしょうか?
881:デフォルトの名無しさん
05/01/15 11:27:32
玄人向き
882:デフォルトの名無しさん
05/01/15 11:28:11
よくわからんが、構造体がネストしてたらそれを再帰的にやるんだろう。
Cの型定義をパースしてサイズやオフセットを返すだけの
モジュールでも作れば需要ありそうだな。
C言語作ってるならともかく、自作言語のFFI周りの作成とかでは
誰もがやりたくない部分の1つだし。
883:デフォルトの名無しさん
05/01/15 11:30:26
>>880
理系崩れ向き
884:デフォルトの名無しさん
05/01/15 11:32:42
>>880
廃人ムキ!
885:デフォルトの名無しさん
05/01/15 13:05:54
>>882
既存のC処理系にあわせなければならないなら
offsetofやsizeofを表示するプログラムを生成して
Cコンパイラにやらせるのが楽そうだな。どうせ
どう配置されるかなんて処理系依存なんだし、
いちいち調べるのはかったるい。
886:デフォルトの名無しさん
05/01/15 14:07:25
構造体のアラインメントの話、結構興味深いね。
久々のヒット、トンクス。
887:デフォルトの名無しさん
05/01/15 14:10:17
質問ですが、言語処理系の仕事って年収どれぐらいもらえるのでしょうか?
もちろん、条件によりさまざまだと思いますが、
平均的な所を知りたく思います。
お金の話は、禁句かもしれまえんが、
生活が出来ての仕事だと思います。
888:デフォルトの名無しさん
05/01/15 14:29:32
「『言語処理系』の仕事」って業種があるのですか?
私は寡聞にして聞かない。
889:デフォルトの名無しさん
05/01/15 14:38:52
>>887
実際に、応募してみれば良いじゃん。
890:デフォルトの名無しさん
05/01/15 14:40:29
俺の”コンパイラ屋” 想像図↓
┌─┐
|コ.|
|ン |
│パ│
│ゐ│
│ラ .|
│屋 .|
│ !!.│
└─┤ ∧∧
│ ( `Д)
| ̄ ̄ ̄|─□( ヽ┐U
 ̄◎ ̄ ◎->┘◎
891:デフォルトの名無しさん
05/01/15 15:03:15
まあ実際そんなもんだ
892:デフォルトの名無しさん
05/01/15 15:03:25
流しのコンパイラ屋や一匹狼のコンパイラ屋なんて聞かないから
メーカーのコンパイラ開発部門の社員に過ぎないだろうよ。
サラリーマンとして給料をもらうだけ。
893:デフォルトの名無しさん
05/01/15 15:05:29
Digitalmarsとかは最初は一匹狼のコンパイラ屋だったに違いない
894:デフォルトの名無しさん
05/01/15 15:29:55
>>892
そのサラリーマンの給料が知りたい、って話じゃないの? IT 系といっても
給料はピンキリだからなぁ。
個人的には、職種よりも企業の方が効いて来るに一票だが。Microsoft なら
たぶん高いよ。
895:デフォルトの名無しさん
05/01/15 15:38:18
スレ本来の技術的な話題で湧いた直後なのに・・。 可哀想な俺達。
896:デフォルトの名無しさん
05/01/15 20:00:18
>>894
おれも、そう思うに1トークン。
ただ、システム系やら(言語を利用した)開発系よりかは
悪いと思われる。
>>892
> 流しのコンパイラ屋や一匹狼のコンパイラ屋
ワロタ
897:デフォルトの名無しさん
05/01/15 20:23:06
アタマワルソ
898:デフォルトの名無しさん
05/01/15 20:30:10
HSP作者のおにたま氏はある意味コンパイラ屋?
本とかで儲けてるんだろうな。いいなぁ。
899:デフォルトの名無しさん
05/01/15 20:31:53
るby>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>。hsp
900:デフォルトの名無しさん
05/01/15 20:32:13
HSPはインタプリタ
901:デフォルトの名無しさん
05/01/15 20:32:36
Rubyモナー
902:デフォルトの名無しさん
05/01/15 20:33:16
>>898
あなたもやってみればいいのに。
俺はコンパイラじゃないけど、チャレンジしてるよ。
903:デフォルトの名無しさん
05/01/15 20:41:32
matz師とおにたまでは格が違いすぎて比較にならないだろ。
ぶっちゃけ頭の出来が違う。
904:デフォルトの名無しさん
05/01/15 20:53:22
( ゚∀゚)・∵.ブバッ
905:デフォルトの名無しさん
05/01/15 21:02:49
>>887
ボクチンの場合、一般のプログラマと変わらないです。
仕事の内容が違うだけ
906:デフォルトの名無しさん
05/01/15 22:37:33
>>902
実は俺もコンパイラ作ってます。
って言っても字句解析までしかできてませんが・・・
つーかコンパイラ作るのって楽しすぎ。
907:デフォルトの名無しさん
05/01/15 22:42:10
m4スレ立てました。
ここの住人なら興味深い言語でしょう。
m4スレ
スレリンク(tech板)
908:デフォルトの名無しさん
05/01/15 22:46:52
どうしてもブギャーに見えるw
OpenMCL が m4 使ってたな。
909:デフォルトの名無しさん
05/01/15 23:47:01
>>890
ワロタw
おれも、今の仕事やめて憧れだった
流しのコンパイラ屋でもやろうかな?
910:デフォルトの名無しさん
05/01/16 00:04:22
>>909
(・∀・)イイヨーイイヨーー
911:デフォルトの名無しさん
05/01/16 00:18:36
まずは、屋台を調達しろw
912:デフォルトの名無しさん
05/01/16 00:19:46
老後は屋台を引いて駅前で(ry
913:デフォルトの名無しさん
05/01/16 00:55:47
>906
あっしはプロトタイプベースのコンパイラ・インタプリタ作成中
ベースオブジェクトの設計にメドがたってきたから、ようやっと
字句解析にいけそう。
文法作るの楽しいよね。
914:デフォルトの名無しさん
05/01/16 01:23:21
3件の屋台が駅前で軒を連ねるのを思い浮かべてみた。
構文解析屋、字句解析屋、コード生成屋
/ / / / / / / / / / / / / /`、 ヽ
./ / / / / / / / / / / / / /=== 、ヽ
/ /_ / / / / / / / / / / / / 、ヽ
|=構 ギ_l ̄||  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄||
|=文∫ =:| || ||
|= 解 コ..:| || ||
|=析 =:| || グツグツ ∧∧ ||┌────────
~~~~~~~ | || ==┻== (゚Д゚;) <構文解析屋の新装開店だ、ゴラァ!
| || | ̄ ̄| (|ギ ∪ || \_______________
┌┴┸────┴─┴┸┐
┌┴───────┴┐
└─┬──────┬─┘
| | ̄ ̄| | ̄  ̄| ....:.:::::|
| | | ..:::::::| | ....::.::.:::|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
915:デフォルトの名無しさん
05/01/16 01:28:20
あー邪魔くせえ
916:デフォルトの名無しさん
05/01/16 01:50:12
LISP勉強するのに、この本は買いでしょうか?
URLリンク(www.amazon.co.jp)
917:デフォルトの名無しさん
05/01/16 01:52:56
ここはLISPや推薦図書のスレじゃありませんが。
918:デフォルトの名無しさん
05/01/16 09:49:18
ここは流しのコンパイラ屋スレです。
919:デフォルトの名無しさん
05/01/16 10:05:53
糞コテのほんたまって自分でアセンブラとリンカ書いたの?
それともnasmとかのフロントエンド書いただけ?
920:デフォルトの名無しさん
05/01/16 11:41:50
”Slim de Can”のこと言ってるなら、たぶん>>919の勘違い
921:デフォルトの名無しさん
05/01/16 13:41:51
"Slim de Can"って前はE言語という名前じゃなかったっけ?
922:デフォルトの名無しさん
05/01/16 13:50:24
Slim de CanってPEヘッダとかセクション分けは自力で吐いてるの?
923:デフォルトの名無しさん
05/01/16 14:49:08
そんなん聞いてどうすんだよ。てか本人に聞け。
924:デフォルトの名無しさん
05/01/16 17:42:27
収入の話だけど、最近は(善し悪しは別として)成果主義が結構
浸透していて、利益につながらないorつながりにくいと判断され
てしまっているところが多いみたい。
925:デフォルトの名無しさん
05/01/16 17:52:34
ふーん
926:デフォルトの名無しさん
05/01/16 18:35:13
学部生なのか専門学校生なのか知らんが、
こっちに移住してやってくれ ↓
スレリンク(prog板)
927:デフォルトの名無しさん
05/01/16 22:21:21
基本的な事で申し訳ないんですが、
文(Statement)と式(Expression)の違いは何ですか?
あと、2つの違いは言語に依存しますか?
928:デフォルトの名無しさん
05/01/16 23:28:12
式は結果の値を持つ。
文は制御構造しか持たず、結果の値はない。
Cは両方あるが、
Lispは式しかない。
929:927
05/01/17 19:39:40 ,
・値を持つもの→式(Expression)
・値を持たないもの→文(Statement)
ということですね。明確な回答ありがとうございます。
言語によっては必ずしも両方持たないものもあるようですが、
この定義が異なるようなケースor言語ってありますか?
それとも、この定義は一般的なものですか?
質問ばかりですいません。
いろいろ調べてはいるのですが、明確に定義or区別しているものに出会えず、
いままでなんとなく津かって来ましたので。。。
930:デフォルトの名無しさん
05/01/17 20:48:43
> いろいろ調べてはいるのですが、明確に定義or区別しているものに出会えず、
その「いろいろ」に言語仕様書は入って無いのか。
931:デフォルトの名無しさん
05/01/17 22:18:36
>>929
一般用語としてはそうだけど、
最終的には言語仕様でどう言葉を定義するかによる。
C言語で戻り値voidの関数呼び出しなんて
式なのに値がないかも(void型の値を持ってるのかもしれんが)。
あと、昔オレがCに似た構文のスクリプト言語作ったときは
Cの文に似たものを文と呼ぶことにしたが、文は全て値を持ってた。
932:デフォルトの名無しさん
05/01/17 23:34:26
それは式だよ
値を返すなら文と呼ぶ意味が無いし
Rubyも制御構造が式だけど用語の整理ができてないみたい
933:デフォルトの名無しさん
05/01/17 23:47:28
>>932
用語の統一なんて、あって無いようなものだろ?
934:デフォルトの名無しさん
05/01/17 23:50:50
ちょっと気になったんで、K&R(古~)を取り出してみた。
確かに、式に含まれる式の種類や、文に含まれる文の種類は
細かく書かれてあったが、式自体の定義と文自体の定義(そ
の違いを含む)は書かれてないな。
935:デフォルトの名無しさん
05/01/17 23:55:23
C言語の <expr> ; は式文(expression-statement)と呼ばれるから
区別はつくでしょ。
式の中にif文やfor文置けるわけじゃないし
そういう拡張したならif式とかfor式と呼ぶべき
936:デフォルトの名無しさん
05/01/17 23:58:18
>>933
Rubyリファレンスはif式だとかif文だとか統一されてない。
あれはいくらなんでもまずい。
937:デフォルトの名無しさん
05/01/17 23:59:07
>式自体の定義と文自体の定義(そ の違いを含む)
BNFで書かれたものじゃ不足か?
938:デフォルトの名無しさん
05/01/18 00:05:58
>>934
K&R日本語訳読んでるならp.277の付録A9に書いてあるぞ
>実行された文はその効果を残すが、値は持たない。
939:デフォルトの名無しさん
05/01/18 00:16:07
付録A7が式の定義、A8が宣言の定義、A9が文の定義
てちゃんと書かれてるだろ。
付録Aの参照マニュアルは一番お世話になる章だと思うんだが。
940:931
05/01/18 10:02:07
>>932
もちろんそのときは文は式の一種。
Cの構文解析やらのプログラムを転用するから、
そこで「文」を他に言葉に変換するのは手間。
実装で使う単語と仕様書で使う言葉を分けるという手もあるが、
内輪でしか使わないやつだから統一したほうがよろしい。
仕様書では明示的に「文という言葉を普通じゃない意味で使う」と断った。
941:934
05/01/18 21:31:21
>>937
お前の理論だと、どのような言語もマニュアルならいらんということになるな。
>>938
ん?ページあってるか?
しかもそのような行はないぞ?
>>939
A7は評価の順序やら、結合など細かく書かれてあるが、値を持つとは書かれていない。
A9も逐次実行されることぐらいしか、文全体の説明は書いてないぞ。
942:デフォルトの名無しさん
05/01/18 21:54:46
つ「ANSI/ISO 9899-1990: American National Standard for Programming Languages - C」
943:デフォルトの名無しさん
05/01/18 22:03:39
逆ギレ?
944:デフォルトの名無しさん
05/01/18 22:13:06
なにを式と呼ぼうが、なにを文と呼ぼうが作者の勝手。
945:デフォルトの名無しさん
05/01/18 22:21:47
>>927に対する>>928は正しいですよ。
プログラムは記号列の形で形式的に定義され、さらにそのプログラムの
意味を定義することで言語として定義されます。
(ただし完全に形式的に意味が定義されている実用言語はほとんど無い)
構文解析的に再帰的に定義された式や文は、
表示的意味論の段階で”環境(←変数と変数の値との写像)”が与えられ、
式(←数理論理学の言葉では”項”)の値は一つに定まるし
文の意味付けも”環境から環境への写像”(実質は>>928のいう制御構造)
として定められます。
>>927が構文解析的な仕様書レベルで式や文を再帰的定義の形で納得するのでなく、
意味論のレベルも含めて理解したければ、例えば「プログラム意味論」
URLリンク(www.amazon.co.jp)
の冒頭10ページ(実質P4~P8)を読むだけで理解できるよ。
(このへん読むのに予備知識は別に要らないです)
仕様書で例えば「皆が文と呼ぶものを、ここでは式と呼ぶことにします」としても
それは「犬の尻尾を足と呼ぶことにしても足は5本にならない」(リンカーン)の
話を思い起こさせます。(>>940さん、ゴメンなさい)
説明が嫌味に聞こえたら読み流してください。固執しません。>>All
946:デフォルトの名無しさん
05/01/18 22:28:08
>>944
「詭弁のガイドライン」より。
・自分に有利な将来像を予想する
・主観で決め付ける
・ありえない解決策を図る
今のあなたはこの辺が該当します。
予想しうる今後の展開は、
・レッテル貼りをする
・勝利宣言をする
・知能障害を起こす
辺りです。
947:デフォルトの名無しさん
05/01/18 23:29:23
詭弁のガイドライン2
・詭弁のガイドラインを持ち出してくる
948:927
05/01/18 23:47:25
>>945
ご丁寧にありがとうございます。
かなり難解な部分もありましたが、犬の例え話はなるほどそうですね。
ふと、感じたのですが、私のような初心者にはややこしく感じるのは、
ひょっとして言葉が直観的じゃないのが原因なんでしょうか?
うまく説明できませんが、
・(Statements)→文は、値をもたない点を含めて納得しやすいのですが、
・(Expression)→式は、値を持つ点を含めて、何か直観的でないと感じます。
式と言われると、y=ax^2+bx+c のような(数学)式を連想してしまいます。
左辺&右辺にはそれぞれ値があるのですが、式自体には値は無いですよね…
(↑数学的に)
なれですかね?
949:デフォルトの名無しさん
05/01/19 00:16:56
ソシュールとチョムスキー読むとおもしろいです
950:デフォルトの名無しさん
05/01/19 00:23:36
>>948
数学の式の"="は非常に使い方が曖昧で、"="は最低でも3通りの使い方が
なされている。
1. 定義式 y := x^2 「yをx^2と定義する」
2. 恒等式 y == x^2 「yはx^2と常に等しい」
3. 代入式 y = x^2 「yにx^2を代入する」
これらが区別できているかい?
951:デフォルトの名無しさん
05/01/19 01:07:10
>>948
>式と言われると、y=ax^2+bx+c のような(数学)式を連想してしまいます。
>左辺&右辺にはそれぞれ値があるのですが、式自体には値は無いですよね…
値の有無は式に属するか文に属するかによる。
例えばVBの代入は文に属する。
a := b := cとは書けない。
でも右辺には式が置ける。
a := b + 1など。
しかし、C言語では代入は演算子として定義されており、
演算子は式に属する。
C言語の式a = b = cはa = (b = c)と解釈され、b = cが先に評価される。
この評価の順番を結合規則と呼び、C言語の式には
かならず結合規則が存在し、代入式は右結合と規定されている。
同じ演算子同士は結合規則によって順番が決まり、
違う演算子同士ならば優先順位によって決まる。
a = b = cの場合、式の値はcの中身になる。
952:945
05/01/19 01:16:34
>>948
y=ax^2+bx+c
は同書のP2表1.1で”文”として定義されています。
正確には「y := ax^2+bx+c」と記述します。
【注意】 P2の文中で「(4) xが変数でEが式ならば,x := E は式である」
は「文である」の誤りです。
代入”式”「 y=ax^2+bx+c」と言ったりしますが、意味的には
代入”文”「y := ax^2+bx+c」です。
代入文x:=E (←変数x,式E)については同書のP5に
「代入文は変数の値を別の値に置き換える働きをするので、
環境を別の環境に移す関数を意味する」とあります。
この説明では「関数」とあるので「式」と呼びたくなるかも知れませんが、
関数と関数との”写像”と御考え下さい。制御文ですね。
>>950にある 2. 恒等式 y == x^2 「yはx^2と常に等しい」
は論理値が与えられるので”式”です。
また、『定義式 y := x^2 「yをx^2と定義する」』はメタ記号 ::= を用いて
「y ::= x^2」と記述したりするようです。
ちなみに同書のP6の下から5行目「この関数が式に対する意味関数である」は
「文に対する」の誤りです。
頑張ってください。
953:デフォルトの名無しさん
05/01/19 01:25:46
>>951-952
ここでいうy=ax^2+bx+cは、プログラムの代入ではなく、
数学の等式だと思うぞ。放物線。
>>948
数学でもax^2+bx+cは式だと思うぞ。
ってことで、漏れ的にはそれほど違和感はない。
言葉って言うのは概念につけられた単なるラベルなわけで、
極論を言うと重要なのは概念であって言葉じゃない。
「犬の尻尾を足と呼ぶことにしても足は5本にならない」
ってのはラベルを取り替えても概念は変わらないという意味だと思う。
まあ、言葉に振り回されるのもほどほどにってことで。
とは言いつつも、プログラムにおける文と式という言葉の起源はちょっと知りたい。
954:デフォルトの名無しさん
05/01/19 01:36:39
言葉って言うのは概念につけられた単なるラベルなわけで、
極論を言うと重要なのは概念であって言葉じゃない。
なにを式と呼ぼうが、なにを文と呼ぼうが作者の勝手。
まあ、言葉に振り回されるのもほどほどにってことで。
955:デフォルトの名無しさん
05/01/19 01:40:29
文は文法に束縛
SVO
S=O(BASICの場合)
if文
式は演算子と優先順位と結合規則に束縛
a+b*cはa+(b*c)
だが、たしかにこんなことはどうでもいい
記号にも興味ない
興味があるのは動くプログラム
956:デフォルトの名無しさん
05/01/19 01:41:45
・勝利宣言をする
957:デフォルトの名無しさん
05/01/19 02:21:32
言葉って言うのは概念につけられた単なるラベルなわけで、
極論を言うと重要なのは概念であって言葉じゃない。
ってことで、皆が文と呼ぶものを、ここでは式と呼ぶことにします
漏れ的にはそれほど違和感はない。
958:デフォルトの名無しさん
05/01/19 02:30:37
・知能障害を起こす
>>953がレッテルならぬラベルを貼ってくれたから、
全部集まって神龍が現れるでFA?
959:デフォルトの名無しさん
05/01/19 08:47:37
>>956
>>958
詭弁のガイドラインを出してくるお前も
・レッテル貼りをする
・勝利宣言をする
・知能障害を起こす
に該当する。
つうか、今時詭弁のガイドラインって
960:デフォルトの名無しさん
05/01/19 11:46:26
主観で決め付けるコンパイラ屋さんガンガル、の図
┌─┐
|記|
|号 | 業界での字(あざな)は”ウルフ”
│に│ ↓
│興│
│味 | それほど違和感はない♪~
│な .|
│い│ / ̄
└─┤ ∧∧ <極論を言うと重要なのは概念であって言葉じゃない
│ ( `Д) \_ なにを式と呼ぼうが文と呼ぼうが漏れの勝手
| ̄ ̄ ̄|─□( ヽ┐U
 ̄◎ ̄ ◎->┘◎
961:デフォルトの名無しさん
05/01/19 12:04:02
>>946
デバッグできないプログラマに
そのまま当てはまるな
962:デフォルトの名無しさん
05/01/19 14:03:39
主観で決め付けてるわけじゃなくて、言葉の定義は、仕様によって決められているわけだから、
作者(仕様策定者)の勝手というのは正しいのでは?
963:デフォルトの名無しさん
05/01/19 14:21:33
常識とは思わないのか
964:955
05/01/19 14:41:15
ん?荒れてる?
俺の文章になにか不満あったのかな?
965:デフォルトの名無しさん
05/01/19 15:22:55
>>962
そうだけど、
無意味に普通じゃない意味で使ってると誰もついてこず
ロンリーウルフになっちゃうぜという話。
966:デフォルトの名無しさん
05/01/19 15:44:07
つまり、詭弁でもなんでもなく、正しいと。
967:955
05/01/19 16:28:31
どうやらどっちも落ち着いた?
968:デフォルトの名無しさん
05/01/19 16:50:42
デタラメな>>955の内容ときたら…
↑
たしかにこんなのどうでもいい
('∀`)ニヤニヤ.. . .。oO(束縛?プッ
969:955
05/01/19 16:57:53
そう、ごめんね
970:デフォルトの名無しさん
05/01/19 17:03:48
>>962が発明した世界で初めての概念に関しては、その字面も、その定義も
>>962の脳内仕様書によって決められるわけだが、「式」とか「文」とかはなぁ…。
まぁ、そういう「コンパイラ屋」さんは駅前で
詭弁でも売って(売値はついても買値はつかないだろうけど)、
一人でやっていくしかないだろうねぇ。。
971:デフォルトの名無しさん
05/01/19 17:04:50
相変わらずの糞スレだな
972:デフォルトの名無しさん
05/01/19 17:06:11
みんな!うんこトークしようぜ!!!!
973:デフォルトの名無しさん
05/01/19 17:06:43
>>972
HSPスレへお帰りください。
974:デフォルトの名無しさん
05/01/19 17:07:34
うんこー!
975:デフォルトの名無しさん
05/01/19 17:09:40
>>971がむやみに頑張るスレだからな
976:デフォルトの名無しさん
05/01/19 17:11:25
ひょっとして知能障害を起こすってやつですか >>972
977:デフォルトの名無しさん
05/01/19 17:13:03
>>976のうんこー うんこー!!
978:デフォルトの名無しさん
05/01/19 17:13:37
盛り上がってまいりましたw
979:デフォルトの名無しさん
05/01/19 17:16:50
ここは馬鹿と池沼しかいないスレでつ。
980:デフォルトの名無しさん
05/01/19 17:17:17
>>970
「式」とか「文」だって仕様策定者なら勝手に決められる。
981:デフォルトの名無しさん
05/01/19 17:21:09
仕様で「式」の意味が決められているということは、その言語では「式」がそういう意味であるということだろう。
これが違うという方こそ詭弁だろ。
982:デフォルトの名無しさん
05/01/19 17:21:17
詭弁ばかりのリア厨が粘着荒らしか。
死ねよ。
983:デフォルトの名無しさん
05/01/19 17:22:07
解析フェーズで尻尾も足と決めてみた。
984:デフォルトの名無しさん
05/01/19 17:22:58
詭弁ばかりのリア厨って>>946のことか?
985:デフォルトの名無しさん
05/01/19 17:23:13
オチケツ馬鹿ども。
986:デフォルトの名無しさん
05/01/19 17:23:33
このまえ>>982のうんこ食べたんです。
消化しきれなかったとうもろこしの粒があって、なんだかちょっぴり幸せでした…^^
987:デフォルトの名無しさん
05/01/19 17:25:50
議論の内容が低レベル過ぎ…
988:デフォルトの名無しさん
05/01/19 17:27:37
>>981がやねうらおなら笑える。
URLリンク(d.hatena.ne.jp)
989:デフォルトの名無しさん
05/01/19 17:29:49
>>946の予想通りになった
990:デフォルトの名無しさん
05/01/19 17:30:42
どうせ荒らしてんのは馬鹿なC厨だろ。
なんせ式と文だけでこれだけ盛り上がれるんだからな。
991:デフォルトの名無しさん
05/01/19 17:30:47
仕様で、文や式の定義が決まってるのはCだって一緒だろ。
それに文句言う奴は、言語の仕様でいろんな用語の意味が定められているのは
無効といってるのと一緒。
そういう仕様を持った言語なんて腐るほどあると思うが。
992:デフォルトの名無しさん
05/01/19 17:32:04
989=946
993:デフォルトの名無しさん
05/01/19 17:33:09
内容がデタラメでない、という前提でな。
994:デフォルトの名無しさん
05/01/19 17:33:36
C厨は人類の敵。
995:デフォルトの名無しさん
05/01/19 17:34:12
>>993
もちろんな。
ただし、値を返すものを「文」と定義しただけでは、デタラメには該当しない。
996:デフォルトの名無しさん
05/01/19 17:35:12
C厨はうんこ!
997:デフォルトの名無しさん
05/01/19 17:36:56
何がここまで>>940を固執させるのか?
以後は、心と身体・メンタルヘルス板でドゾ
998:デフォルトの名無しさん
05/01/19 17:37:26
Rubyの文は値を持つ。
それは仕様で定められてるのだから仕方がない。
作者の勝手なんだよ。
デタラメをやらない限りな。