「コンパイラ・スクリプトエンジン」相談室9at TECH
「コンパイラ・スクリプトエンジン」相談室9 - 暇つぶし2ch650:デフォルトの名無しさん
06/03/05 21:30:59
>>642
スマソ。>>641 の下のリンク先は読まない方が良いや。
適当にググって貼っつけただけだから。何じゃこりゃ。

651:デフォルトの名無しさん
06/03/05 21:41:52
>>644
もうちょっと詳しく。当方アセンブラプログラマだ。

int b = (int)a;
a = 0;

とやったあとでb をビットレベルで分解したらどうにもならんと思うが、
コンサバ型だとそうならない魔法があるのか?

bを再構成してポインタに戻してアクセスしたら開放されてるって
いう状況は起こりうると思うが。

652:デフォルトの名無しさん
06/03/05 21:44:21
だんだん条件が増えていく件。

653:デフォルトの名無しさん
06/03/05 21:52:27
そりゃさすがにどうにもならない。

とはいえ、ビットレベルで分解→後で計算によって得た値が
セマンティクスの面で有効なポインタかどうかは疑問ではある。

>>652
つか、「原理的に無理」で思考停止してるから。


654:デフォルトの名無しさん
06/03/05 21:59:47
>>652
議論に勝つために、徐々に条件を変えていくんだよなー。
2chはこういう奴ばかり。

655:デフォルトの名無しさん
06/03/05 22:09:08
議論に勝った所で何があるわけじゃないんだけどね

俺の知らないところで何かあるのかな?w

656:デフォルトの名無しさん
06/03/05 22:13:50
>>654
議論に勝つためというより、物知らずというか
ものの評価基準が幼稚なだけだと思われる。


657:デフォルトの名無しさん
06/03/05 22:21:31
えーと、どこで笑えばいいのかな?

658:デフォルトの名無しさん
06/03/05 22:24:05
>>657の頭の弱さ。


659:デフォルトの名無しさん
06/03/05 22:25:21
ふーん。

660:デフォルトの名無しさん
06/03/05 22:25:56
>>656
コンサバティブ GC を初めて知ったレベルなら仕方が無いんじゃないの。
まだ当たりが付けられないだけだと思う。

661:デフォルトの名無しさん
06/03/05 22:26:56
あのー
>>642の時点で分解って書いてるんですけど

662:デフォルトの名無しさん
06/03/05 22:30:00
>>652
651じゃないが、わざわざポインタを整数として扱おうとするなら、
その後なんらかの演算を行うんじゃないかってのは
容易に想像つきそうなものだが。

ま、演算は演算させておいて、ポインタはポインタのまま
別に持っておくとか手はありそうだけど。

663:デフォルトの名無しさん
06/03/05 22:30:14
元々の命題は >>637 だろ。

664:デフォルトの名無しさん
06/03/05 22:33:40
重箱の済みつつき過ぎ、話も出来やしないよ。
>>662はまともな人だね

665:デフォルトの名無しさん
06/03/05 22:35:08
いや、>>631なんじゃないの。
631を無視して637だけなら対応したGCを書けばいいだけの話。

666:デフォルトの名無しさん
06/03/05 22:35:43
>>662
演算をするかどうかじゃなくて、再代入するかどうかが問題でしょ。
コード辺だけでそこまでケアしろと?

667:デフォルトの名無しさん
06/03/05 22:42:04
再代入というか、計算で合成した任意の値をアドレスとして
アクセスできるかどうかだね。
GCはプログラム中のデータからトレースできるものを残して
それ以外を回収するってことだから、
可能な演算の集合を定義してルートとなる即値だけでなく
その集合に含まれる演算で計算可能な値もアドレスとして
コンサバティブに扱うことをトレースとすればいいだけの話。
だから、むしろ「原理的には」GCは設計可能。「原理的には」だけど。


668:デフォルトの名無しさん
06/03/05 22:48:20
ちょっと修正
ルートとなる→アドレスとなる
「原理的には」GCは設計可能→「原理的には」完全に汎用なGCは設計可能



669:デフォルトの名無しさん
06/03/05 23:35:17
そのGC、何一つヒープを開放してくれなさそう

670:デフォルトの名無しさん
06/03/05 23:42:56
>>666
想像しろよ。書いてるもんが100%だと決めなきゃ話できないようじゃ
CPUと一緒じゃないか。人間だろ? >>662は十分想像可能な範囲。

現に出来てる者が居る以上、それが出来なかった奴は気がまわら
ないということ。

なんで整数に持ってきたいのか用途は色々あるだろ。まあ想像でき
ないかもしれないがな。

671:デフォルトの名無しさん
06/03/05 23:47:32
まぁなんらかのお約束は必要だよ


672:デフォルトの名無しさん
06/03/05 23:48:31
>>669
コンサバだからねw
演算の集合は全域で同一である必要はないわけで、
適当にヒントを与えて限定してもいいし、GCがコードを解析してもいい。
普通はそこまでやってらんないから演算は値をそのまま使う
という一択だと考えるだけで。


673:デフォルトの名無しさん
06/03/06 00:34:34
>>670
幾らでも拡大解釈しようはあると思うけど、GC の仕組みを知っていれば
そちらには振れないんじゃないかというのが俺の解釈だっただけだよ。
ま、GC の仕組みを知っていれば、最初からこんな質問も出なかった
だろうけど。

674:デフォルトの名無しさん
06/03/06 00:36:57
なんか理論の飛躍が Ruby vs Lisp の時と似ているなぁ

675:デフォルトの名無しさん
06/03/06 01:06:36
同じ面子でグルグル回してるだけだから

676:デフォルトの名無しさん
06/03/06 07:47:45
>~俺の解釈だっただけだよ
後から言うなよ

677:デフォルトの名無しさん
06/03/06 08:30:12
後から想像しろとか言ってきたのアンタじゃん。俺にどうしろと??
もうこの話は終わったんだから絡んで来るなよ。

678:デフォルトの名無しさん
06/03/06 10:17:54
>>677
> 俺にどうしろと??
恐らく謝罪を要求してるのでしょう :-)
あなたをやり込めたい一心であらゆる論理を適時付け替えて頑張っているのですから、
彼のプライドを満たすためにも謝ってあげてはどうかと思います。

679:デフォルトの名無しさん
06/03/06 10:40:02
>>678
>>657

680:デフォルトの名無しさん
06/03/06 10:47:47
>>679
笑えない現実に対する対処の話ですから、笑う箇所などありませんよ。
そんなことも読み取れないのですね :-)

681:デフォルトの名無しさん
06/03/06 10:54:51
>>680
ふーん?

682:デフォルトの名無しさん
06/03/06 13:07:06
>>680
よし、じゃ俺のプライドを満たすためにおまいが謝れ。

683:デフォルトの名無しさん
06/03/06 13:28:21
>>682
ごめんください。

684:デフォルトの名無しさん
06/03/06 13:52:59
エェェェェェェ(;´Д`)ェェェェェェェエ

685:デフォルトの名無しさん
06/03/06 14:23:03
>>684
ごめんくさい。

686:デフォルトの名無しさん
06/03/06 15:32:11
  /\___/\
/ /    ヽ ::: \
| (●), 、(●)、 |    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|  ,,ノ(、_, )ヽ、,,   |  < まーた始まって、終わった。
|   ,;‐=‐ヽ   .:::::|    \___________
\  `ニニ´  .:::/
/`ー‐--‐‐―´´\


687:デフォルトの名無しさん
06/03/07 00:21:33
まけず嫌いで粘着なキチガイが暴れているスレはここですか

688:デフォルトの名無しさん
06/03/07 00:31:35
ぶるんぶるん体操

ぶるんぶるんと僕は言う
ぷるんぷるんとあなたは笑う
そんな2人は、フォーエバー
世界の端から今日は
そんなあなたはお毎度さん
今日もぶるんぶるん体操始まるよ

ぶるんぶるん、ぷるんぷるん
ぷるんぶるん ぶぷぷぷぷぷ

*四谷街道繰り返し

689:デフォルトの名無しさん
06/03/07 23:02:33
このスレでオリジナル言語作って公開してる人って何人ぐらいいるの?

690:デフォルトの名無しさん
06/03/07 23:22:00
俺的には、スクリプトはあくまで手段。目的は別にある。
だからスクリプトだけを公開する事は、俺にはありえん。


691:デフォルトの名無しさん
06/03/08 09:09:50
現在の人数=0

>>690
ところで、目的って何ですか?

692:デフォルトの名無しさん
06/03/08 09:15:09
現在の人数=1 ←どういうカウントだこれは?

>>690
ぼくちんも知りたい。その手の業界ってけっこうあるのかな?

693:デフォルトの名無しさん
06/03/08 10:22:21
>>692
>>689


694:デフォルトの名無しさん
06/03/08 10:29:08
>>693
あーそういう意味だったのか。
じゃリセット。

現在の人数=0

695:デフォルトの名無しさん
06/03/08 12:58:30
現在の人数=1
でもどこだかは教えない(w

696:デフォルトの名無しさん
06/03/08 13:19:30
現在の人数=2
……まあ、趣味の領域ですが。

697:デフォルトの名無しさん
06/03/08 19:53:28
>>691-692
単に自分の作りたいソフトを作るために、
下ごしらえでスクリプトを作ってるだけだよ。


698:デフォルトの名無しさん
06/03/08 20:06:51
現在の人数=3
……自分専用ツールとしてはじめたのがきっかけです。
私も、どこかは内緒w

699:デフォルトの名無しさん
06/03/08 20:17:47
>>697
マクロみたいなの搭載してるって意味だよね。
それとも何か目的のソフトを作るための言語を作ってるって意味?

700:デフォルトの名無しさん
06/03/08 21:05:27
>>699
後者。

701:デフォルトの名無しさん
06/03/08 21:19:45
>>700
マジで?言語作ってる間に既存の言語でソフト作っちゃったほうが早いんじゃないの?

702:デフォルトの名無しさん
06/03/08 22:16:53
>>701
プログラマの癖に手段と目的を取り違えたことがないの?

703:デフォルトの名無しさん
06/03/08 22:33:03
>>702
くせにとは何だ!くせにとは!
お前こそ●●のくせに、いい気になるなよ。

704:デフォルトの名無しさん
06/03/08 22:54:10
>>702
●2つも使ってるのか?なんて贅沢な。


705:デフォルトの名無しさん
06/03/08 23:05:44
>>703
なんだとこの●●●!
お前だって●●●の●●●だろうに!●●●●!

706:デフォルトの名無しさん
06/03/08 23:22:18
>>705
うるさい、この●●のろ!

707:デフォルトの名無しさん
06/03/08 23:41:49
の●●の

↑鼻と目に見えた orz 以下、何事も無かったかのように再開。・゚・(ノД`)・゚・。↓

708:デフォルトの名無しさん
06/03/08 23:53:37
>>702
こいつは、真性の●●●●。
つまり、●●w
あるいみ、●●●●●● ruby ● lisp ●●w

709:デフォルトの名無しさん
06/03/09 00:08:50
>>701
理想が高すぎる事と、自分自身の能力不足が原因なんだよ。
オブジェクトが多くなりすぎると、内容を追い切れなくなる。
つか、状態変位やイベントトリブンは、漏れには理解しづらい‥‥orz
で、主に、個々の処理を独立させて、別個にまとめて見られる
ようにするためにスクリプトを使ってる。


710:デフォルトの名無しさん
06/03/09 00:40:15
>>709
一言で言い表すと、
「グローバルオブジェクトなんて嫌いだぁ・・・
 全部ローカライズ化してやるぅ・・・・」
ってな感じでつ。orz


711:デフォルトの名無しさん
06/03/09 01:50:58
ローカライズ化?

頭痛が痛いだな。

712:デフォルトの名無しさん
06/03/09 02:16:15
英語は嫌いだぁ・・・w

713:デフォルトの名無しさん
06/03/09 11:44:40
>>709
>つか、状態変位やイベントトリブンは、漏れには理解しづらい‥‥orz
>で、主に、個々の処理を独立させて、別個にまとめて見られる
>ようにするためにスクリプトを使ってる。

ちなみに、エミュレータのレジューム機能が元ネタ。
つ~か、スレッドの場合は同期の管理が面倒なんだよな。


714:デフォルトの名無しさん
06/03/09 12:44:30
OSとエミュレータと、エミュレートされるソフトの動作を、
全部一つの実装で実現させたい、ってな所。

715:デフォルトの名無しさん
06/03/09 14:07:36
ネタが特許級に見えるのは気のせいか?
出願前に公開すると無効なはずだが・・・

716:デフォルトの名無しさん
06/03/09 14:54:39
レジューム機能付きのエミュレータが出る前なら、可能だったかもね。

717:デフォルトの名無しさん
06/03/09 20:09:47
>>714-715
似たようなネタのスクリプトなら実在するから探して味噌。

扱いやすいかどうかは別だが。w


718:デフォルトの名無しさん
06/03/09 20:50:04
構文規則で、よくこんな表記つかってるけど
A → B,C
矢印逆じゃないの?

なんか、すげ~違和感あり。

719:デフォルトの名無しさん
06/03/09 21:07:28
なにゆえ

720:デフォルトの名無しさん
06/03/09 22:33:32
「生成」規則だからね。もともとのオートマトン理論では
規則によりどういった文章が生成されるかを考えていたから。
構文解析は、逆に与えられた文章がどういう生成規則を
たどって作られたかを求める問題だ。その過程で生成規則を
逆向きに使って還元を行う。
だから構文解析だけを考えていたら、矢印が逆だと思うかも
しれんね。


721:デフォルトの名無しさん
06/03/09 22:36:21
>>718
別に逆でもいいけど、たぶんおまいは逆にすると今度はそっちに違和感を感じるんだろ。
A → BC | DE
ってのは
A is defined as BC or DE
A expands to BC or DE
A generates BC or DE
A is rewritten as BC or DE
逆方向には
BC or DE can constitute A
BC or DE can be reduced to be A
などなど、色々な読み方ができる。

722:デフォルトの名無しさん
06/03/09 22:39:38
A ← BC | DE

A is defined as BC or DE
と読んじゃいけないのかよ。

723:デフォルトの名無しさん
06/03/09 22:42:22
>>722
いいよ別に。咎めはしないけど真似してくれる人は少なそうだね。

724:デフォルトの名無しさん
06/03/09 22:43:50
>>722
それを流行らせてくれ!!

725:デフォルトの名無しさん
06/03/09 22:50:30
っていうか矢印の向きなんてどーでもいいし。
矢印以外の記号だって使われるわけだし、勝手にしろとしかいいようがない。

726:デフォルトの名無しさん
06/03/09 23:04:18
そんなに揉めるくらいならこっちを指せばいい

A m9(^Д^) BC | DE

727:デフォルトの名無しさん
06/03/09 23:11:11
>>726
ワロタw

でも、確かに代入文とかも A=B+C は A->B+C とは書かんな
どうみても A<-B+C だな。

728:デフォルトの名無しさん
06/03/09 23:12:03
A ブギャー BC or DE と読むのか。勢いがあって好いな。

729:デフォルトの名無しさん
06/03/10 00:23:11
A pgr BC or DE

なんかよく分からんが格好良いぞ

730:デフォルトの名無しさん
06/03/10 12:21:57
yaccやbisonでは、演算子の順位を指定することができますが、これもLALR(1)で必要なのでしょうか。
コンパイラの本を読むと、LALR(1)の説明では生成規則しか使わず、演算子の順位を含めたaction表やgoto表の作り方は特に書いてないように思います。
もしかして、yaccやbisonではLALR(1)と演算子順位解析法との併用なのかなと思ったりするんですけど、どうなんでしょうか?

なお、やりたいことは自前で簡単なパーサジェネレータを作ることです。LALR(1)のアルゴリズムを勉強しているんですが、演算子の順位がまるででてこないので、どうやるんだろうと疑問に思ってます。

731:デフォルトの名無しさん
06/03/10 12:30:17
>>730
コンフリクト時にシフト/還元のどれを選択するかでうまいことやっている。
ドラゴンブックに説明があったかもしれない。

732:デフォルトの名無しさん
06/03/10 20:02:39
>>730
> もしかして、yaccやbisonではLALR(1)と演算子順位解析法との併用なのかなと思ったりするんですけど、どうなんでしょうか?

そうです。
expr → expr + expr | expr * expr
っていう生成規則はLALR文法ではないけど使えた方が便利でしょ。

733:デフォルトの名無しさん
06/03/10 23:20:04
>>726

734:デフォルトの名無しさん
06/03/10 23:52:42
bisonってGLRにならなかったっけ?

735:デフォルトの名無しさん
06/03/11 09:18:24
bisonの入力になりえる文法はGLRだろうけど(自信なし)、あいまいさを解決するアルゴリズムが違うからパースした結果が変わっちゃうんじゃないの?
GLRはshift/reduceコンフリクトでreduceを優先するから、あいまいなぶらさがりelseが遠い方のifにくっついちゃう。

736:デフォルトの名無しさん
06/03/11 10:42:50
>GLRはshift/reduceコンフリクトでreduceを優先
ちがうよー。
コンフリクトでshiftとreduceの両方追いかけるのがGLR。

>>734
GLRもできるけど>>732をGLRで扱うと
+の優先度が高い場合の構文木と*の優先度が高い場合の構文木の
両方を解析結果として得る話になるから、
演算子の順位指定の話とはからまないと思われ。

737:730
06/03/11 22:13:54
>>731,732
どうもありがとうございます。
けっこう複雑なことやってるんですね。
作るの自信なくなってきたな。。。

738:デフォルトの名無しさん
06/03/12 01:08:18
がんがってくれい
なせばなるよ

739:デフォルトの名無しさん
06/03/12 23:28:26
既に慣れてしまってる方ばかりだろうが、
還元ということばに違和感を感じる自分。

どうせなら、還元よりも換言だとおもう。

740:デフォルトの名無しさん
06/03/13 02:55:26
それだと向きを含意しないから、reduceの語感が出ないなあ。


741:デフォルトの名無しさん
06/03/13 03:37:22
これはなかなか面白い (厭味じゃなくて)
>>739 は明治時代辺りに生れてればよかったのに

742:デフォルトの名無しさん
06/03/13 03:58:25
コンサバって何?

743:デフォルトの名無しさん
06/03/13 04:00:45
松平健が歌ってるヤツだろ。

744: 
06/03/13 08:44:18
しってる言語はJavaなんでJavaのバイトコードに変換する本当に簡単なコンパイラ?つくりたいんですが、古い本でも大丈夫ですか?
Programming for the Java(TM) Virtual Machineって本見つけたんですが1999年出版なんです。バーチャルマシンの仕様とかは変わってないのですか?

745:デフォルトの名無しさん
06/03/13 09:32:08
検索すれ。

The JavaTM Virtual Machine Specification, Second Edition
URLリンク(java.sun.com)

同 Maintenance Page
URLリンク(java.sun.com)





746: 
06/03/13 22:17:19
>>745
どうもありがとう。

747:デフォルトの名無しさん
06/03/17 23:50:51
>>726
1から見てみたが、お前のレスが一番ワロタw

748:730
06/03/18 08:20:23
C言語とかで、'*' や '&' がポインタ演算だったり四則演算だったりビット演算だったりするけど、
このように1つの記号が複数の意味を持つ場合、字句解析で別のトークンを返さないといけないのでしょうか。
それとも構文解析時に判断できるものなのでしょうか。

例えば仮引数に *p とあれば、これはポインタを意味するための * であり、四則演算ではないとすぐにわかります。
しかし、*p1 * *p2 などとあった場合、ひとつの式の中でポインタを表す * と四則演算を表す * とが混じってるんですけど、こういったものはどうやって別物であると判断しているのか不思議です。

749:デフォルトの名無しさん
06/03/18 11:05:59
>>748
字句解析では区別せず、構文解析で判定する。
教科書で、-1 - -2 のような式を扱う例を探してみて。

750:デフォルトの名無しさん
06/03/18 13:14:58
前置子やね

751:デフォルトの名無しさん
06/03/18 13:27:13
そういうやり方をするから、vector<vector<int>>がコンパイルできなかったりするw

752:http://www.vector.co.jp/soft/win95/util/se072729.html
06/03/18 19:03:18
TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?

753:デフォルトの名無しさん
06/03/18 19:50:35
なぜ、関係演算子は結合を持たない例が多いんだろうか?
単純に 3<=x<99 とか書けてもいいとは思うんだが、

754:デフォルトの名無しさん
06/03/18 19:58:12
C がそうやってるから右に習えだと思う


755:デフォルトの名無しさん
06/03/18 20:00:44
10 < x >= y < 20 <= z > 0
とかあったら何なんだか困るじゃん
Lispだと (< 10 x 20) とか書けるけどね

756:デフォルトの名無しさん
06/03/18 20:02:06
演算子で思い出したけど
おれは perl の =~ を代入演算子だとばっかり思ってたから
$a =~ s///; はいいけど
$b =~ m//; の意味がわかんなくなって混乱してた…

757:デフォルトの名無しさん
06/03/18 21:14:54
>>754
とりあえず、C で 3<=x<99 はコンパイル通るぞ。


758:デフォルトの名無しさん
06/03/18 21:18:53
コンパイル通るから何?

759:デフォルトの名無しさん
06/03/18 23:30:10
>>752
いっぺん死ねって書いてもよまねぇだろうな(w

760:デフォルトの名無しさん
06/03/18 23:51:40
>>753
確かに
Mathematicaは書ける、って言うか書けないと数学ソフトだし不便すぎる。

761:デフォルトの名無しさん
06/03/19 02:21:26
スタックマシンでスタックが溢れそうな時、スタックを reallocするのと
別に領域を確保するのとではどっちが一般的ですか?

前者はスタックが一つの領域でないといけないのと reallocのコストが欠点で、
後者はフレームの削除などを絶対アドレスで指定しないといけないので
継続を作る時にちょっとめんどくさいのが欠点だと思います。

762:デフォルトの名無しさん
06/03/19 20:27:31
>>760
へぇ、書ける言語あるんだね。しらなんだわ


763:デフォルトの名無しさん
06/03/19 21:19:10
おそらく専用でない一般高級言語だと、Rubyあたりが実装しそうな木ガス

764:デフォルトの名無しさん
06/03/19 21:19:29
Pythonがそうだった記憶がかすかに

765:デフォルトの名無しさん
06/03/19 21:21:33
>>761
おれなんかは自家製超高速malocを作ってダブルリンクリストでスタック作ってます。
スタックに無茶な要求するにはこれが一番かなとか思ってたりします。

>>762
おれは、例外を作ってもこの表現ができるべきだと思うのですが、みんなどう思っているのだろうか?
絶対見通しいいとおもうんだけどな・・・

766:デフォルトの名無しさん
06/03/19 21:27:41
ダブルリンクリストだと継続が困らないか? (スタックがツリーになるから)
継続使わないならシングルリンクリストでも良さそうだが。


767:デフォルトの名無しさん
06/03/19 21:28:42
>>766
ダブルでないと削除がややっこしいです。

768:デフォルトの名無しさん
06/03/19 22:30:25
単なる好奇心だけど、途中のスタックフレームを削除したいってどういう場合ですか?


769:761
06/03/19 23:11:42
セグメント、オフセットを使えば相対アドレスでもスタックを分割できることに
気づきました。

>>765
セグメントテーブルをリストにするってことでしょうか?
最初からセグメントテーブルのサイズを決め打ちして配列にしても良い気がします。
リストだとアクセスにコストがかかりますし。
確かに途中を削除するっていうのならリストの方がいいですが、どういう状況なんでしょうか。

770:デフォルトの名無しさん
06/03/20 13:38:41
>>765
ヒープへの参照をスタックに積んでスタックそのものは小容量ですまそうって方向じゃないんだ?


771:デフォルトの名無しさん
06/03/20 19:01:49
無知な俺が、話ぶった切って恐縮ですが
リフレクションってどんな構造で作るの?
javaぐらいみっちり仕込まないと不可能?

772:デフォルトの名無しさん
06/03/20 19:54:37
>>771
例だけど、
scheme(L)でscheme(L')インタプリタを書いて、L'からLを操作したり、L'自身の環境情報などを
取得できるように作る。このときL'からLをいじったことによってL'の動作に影響が及ぶことを
causal connectionという。

言語、用途により様々だけど、メタレベルに何を求めるのかで、実装や仕様が変わると思う。


773:デフォルトの名無しさん
06/03/21 20:59:46
>>771
どんな構造っつーか、単にオブジェクトやクラスに関する情報を、実行時に取り出せる(アクセスできる)仕組みを用意するだけ。
ただそれだけだから、あんまり構造がどうとか悩まなくていいよ。

リフレクションの仕組みや構造について考えるなら、まずは言語の仕組みについて知らないと。
それがわかれば、リフレクションの仕組みはおのずとわかる。

774:デフォルトの名無しさん
06/03/23 14:28:00
URLリンク(dl2.n1e.jp)

775:デフォルトの名無しさん
06/03/26 10:03:01
助けてください。
↓こんな文章があって要はfortran90でない場合一番下のfcに何か入力しろという意味だと思うのですが、
なんと打ちこんだらよいのですか?fortran77なので打ち込まないといけないのはわかっているのですが、
全くこのあたりの知識がないのでわかりません。
--------------------------------------------------------------------
#if your machine's fortran compiler command is not "f90", need to set #
# the following macro to adjust. #
---------------------------------------------------------------------

FC=

776:デフォルトの名無しさん
06/03/26 10:23:11
>>775

Format C:

777:デフォルトの名無しさん
06/03/26 10:53:15
FORTRAN より C

778:775
06/03/26 13:29:06
ありがとうございます。
ですが入力してもだめでした。
そこで方向転換してfortran90のコンパイラをインストしたいのですが、
どこに転がっているのですか?
windowsです。


779:デフォルトの名無しさん
06/03/26 17:44:13
書いてあるとおりのことすればいいじゃねぇかよ。
それともネタですか?>>775

780:デフォルトの名無しさん
06/03/26 17:47:03
FC=f77

じゃあかんの?


781:デフォルトの名無しさん
06/03/27 07:31:07
ポインタ操作のできるスクリプト言語作りたい
そゆーの既にある?

782:デフォルトの名無しさん
06/03/27 07:40:26
CINT?

783:デフォルトの名無しさん
06/03/27 08:23:08
すごい久々にCINTスレのぞいてみたら、まだ落ちてなかったw

C/C++インタプリタ CINT
スレリンク(tech板)

CINTの需要自体はちと薄そうな印象。
もしもありとあらゆるCのライブラリが元のC言語の文法と比べて違和感なく全て呼び出せたらはやりそうなもんだけどな。

784:デフォルトの名無しさん
06/03/27 12:53:33
>>775
訳してみた。

-------------------------------------
#手持ちのマシンにおいて、Fortranコンパイラのコマンドが "f90" でない場合は、
#次のマクロを設定する必要があります。
-------------------------------------
FC=


つまりだな、Fortranコンパイラのコマンドが例えばf77とかだったら、
FC=f77
と設定すればよい。

これ以上はスレ違いだから質問はやめたほうがよい。

785:デフォルトの名無しさん
06/03/28 03:57:44
とある対話型計算ソフトの入力行を横取りして先に字句構文解析したいんだけど
perlだとParse::RecDescentがメジャーなの?

代入と()のネストくらいを1行ずつ処理できればいいので手で書いてもいいけど
昔yacc+bisonで遊んでたときみたいにまたBNF触りたくなった
割鶏焉用牛刀だが

786:デフォルトの名無しさん
06/03/28 12:29:49
>>785
yacc+bisonの経験あるなら、kmyaccはどう?
yaccの書き方そのままで、perlやjavaやjavascriptが使える。

787:デフォルトの名無しさん
06/03/28 14:31:40
ひとつ聞きたいんだけど、
2型言語の任意の位置に [] の組を挿入できるようにした文法って1型言語?

例えば 1+2 を変化させた 1[+2] とか [1+]2 とかを許容する文法なんだけど……

788:デフォルトの名無しさん
06/03/29 02:59:38
>>785
入力が小さい場合は Parse::RecDescent が手軽だね。外部ツールにくらべると
手軽さが違う。


789:デフォルトの名無しさん
06/03/29 07:51:32
>>786
>>788
情報ありがと。しかし構文解析久しぶりで大分忘れてるわ。

790:デフォルトの名無しさん
06/03/31 18:10:09
よく、他言語のライブラリとか呼べる言語があるけど、
あれって事前に呼ぶ関数名を全て列挙して組み込んでるのですか?

791:デフォルトの名無しさん
06/03/31 18:19:49
普通マーシャリングしてるだけじゃないか

792:デフォルトの名無しさん
06/03/31 21:28:55
それは結局の所、「事前に呼ぶ関数名を全て列挙して組み込んでる」のでしょうか?

793:デフォルトの名無しさん
06/03/31 21:31:42
事前にわかんない場合はどうしてるんだとか思わないのか

794:デフォルトの名無しさん
06/03/31 21:32:21
違う

795:デフォルトの名無しさん
06/03/31 21:34:54
そういうのもあるし、そうじゃないのもある。

796:デフォルトの名無しさん
06/03/31 22:29:35
LALR(1)の文法をLL(k)に変えることって可能ですか?

797:デフォルトの名無しさん
06/03/31 22:51:20
>>793
事前にわからない場合でも呼べる方法ってありますか?


798:デフォルトの名無しさん
06/03/31 23:00:22
>>797
URLリンク(cvs.sourceforge.net)

call_into_c の部分とか。C なら引数とか戻りアドレスとか用意して call すれば良い。
あとは dlsym() とかを調べる。

799:デフォルトの名無しさん
06/03/31 23:42:34
むむ、アセンブラですか!



















orz

800:デフォルトの名無しさん
06/03/32 00:22:44
いや、単なる例として出しただけだから...

801:デフォルトの名無しさん
06/03/32 02:40:22
引数の積み上げ方と呼出し後の処置さえ合ってればいんだから
簡単だろ


802:デフォルトの名無しさん
06/03/32 06:02:31
>>796
規則を増やして左再帰を消去して左括り出しするとか地道な方法しかなさそう(自動化するツールもあるのかな?)。
それで衝突が起こるならその文法がそもそもLLじゃない可能性もあるので、文法自体を修正する。

ちなみにLL文法ってLALR文法のサブセットだっけ?
LL(∞)⊂LR(1)は確かだったと思うけど、LR(0)は微妙だったような気が。
誰か教えて。

803:デフォルトの名無しさん
06/03/32 14:03:32
>>790,799
その言語のソースを読んでみようとは思わないのかな。
xyzzyのdefine-dll-entryとかRubyのdlモジュールはC++/Cだった。

804:デフォルトの名無しさん
06/04/03 21:46:49
コンパイラを書くのにオススメな言語を教えてください。
最近は、海外では関数型言語で書くのがはやっているみたいですが・・・
OCamlとか。

自分の一番慣れている言語!というのはなしの方向で。

805:デフォルトの名無しさん
06/04/03 23:54:21
>>804
yaccがあるからC! とか、JavaCCがあるからJava! ってのもなしの方向で?

806:デフォルトの名無しさん
06/04/03 23:57:15
ある程度以上メヂャーな言語なら、hogeCCの類いは存在するからねえ。

807:デフォルトの名無しさん
06/04/03 23:58:13
>>804
自分で作った言語でコンパイラ書くのがおすすめ

808:デフォルトの名無しさん
06/04/04 00:26:28
誰も使わないけどな。

809:デフォルトの名無しさん
06/04/04 00:46:06
elisp みたいな組み込み言語にすればオケ
emacs 程の神アプリじゃなくても、ちょっと気の利いたツールの拡張言語にすれば
それなりにユーザを獲得出来るんじゃない。

810:デフォルトの名無しさん
06/04/04 00:59:31
そういえば、情報処理学会の会誌でコンパイラの連載始まるみたいね。
COINS使うらしい。

811:デフォルトの名無しさん
06/04/04 01:17:00
>>809
設計思想による

812:デフォルトの名無しさん
06/04/04 01:28:00
>>807
そこまでいければ苦労しないw
と思ったけど、それもいいな。

GCCみたいに、最初はどこでもコンパイルできるミニマムなCでコンパイラを生成して、
そのコンパイラで自分自身をまたコンパイルして・・・と。


そういえば、マルチプラットフォームなコンパイラつくりたいと思ったら、
やっぱり、GCCのフロントエンド作るのが正解なんかね。
最初見たとき、中間言語がわけわかめだった。
他に方法ないすか?

813:デフォルトの名無しさん
06/04/04 08:29:54
>>812
>他に方法ないすか?

お前の知能じゃドレもムリ。

大人しくHSP使ってろ

814:デフォルトの名無しさん
06/04/04 11:20:41
HSPならできるんですか?

815:デフォルトの名無しさん
06/04/04 15:35:54
つまり、HSP最強

816:デフォルトの名無しさん
06/04/04 17:24:17
はいはいわろすわろす

817:デフォルトの名無しさん
06/04/04 18:56:18
>810
COINSはいつJavaに対応するのでしょうか?
図には書かれているのに…

818:デフォルトの名無しさん
06/04/05 13:09:14
>>817
一応あるみたい。
URLリンク(www.coins-project.org)

これ以上まともにJavaに対応することには、
苦労に見合うだけの学術的な意味がないからなあ。

819:デフォルトの名無しさん
06/04/05 18:50:53
>818
> Javaのフロントエンドは以下の方針で開発しているが、デバッグ中であるので、
> リリース版にはまだ入っていない。

だから公開はされてないんですね。いつからデバッグしてるのかちょっと不安…

820:デフォルトの名無しさん
06/04/11 18:25:41
>>818
参考になります。
ただ、自分の目指しているのは型なし&プロトタイプ指向ですので、やっぱりちょっと
ポイントが違うようですね。まあ、その違いを見るのも楽しいですが。

821:デフォルトの名無しさん
06/04/11 18:54:36
なぜ>383

822:デフォルトの名無しさん
06/04/16 21:51:35
どこかにJavaでかかれたCの処理系とかない?
自分で作ろうかと思ってるんだけど、結構大変そうだし。
自作するならSableCCあたりで作ろうと思ってる。
ASTを作るまでは楽だろうけど、その後が...。

823:デフォルトの名無しさん
06/04/17 01:13:49
URLリンク(www.coins-project.org)

824:デフォルトの名無しさん
06/04/17 12:07:17
>>823
どうもありがとう。学習支援用にインタープリタでも作ろうかと思って。

825:デフォルトの名無しさん
06/04/17 20:22:45
>>823
情報処理学会誌、今日家に届いたよ。

826:デフォルトの名無しさん
06/04/17 21:48:30
>>825
家にも来た。
情処会員相手ということで
初心者本や教科書なら必要な噛み砕いた説明がないから
読むほうとしては面白いことだけさらっと読めていいね。

3月までの連載は
URLリンク(www.ipsj.or.jp)
で見れるから、コンパイラの連載も誰でもダウンロードできるようになるかもね。

827:デフォルトの名無しさん
06/04/17 22:43:38
学会誌見るまでCOINSなんて知らなかった。

828:デフォルトの名無しさん
06/04/18 12:14:03
>>822
構文解析だけなら、JavaCCやANTLRなら有志によってCの文法定義ファイルが用意されている。
Cだけじゃなくて、JavaやXMLも用意されている。
JavaCCやANTLRのサイトをのぞいてみて。

829:デフォルトの名無しさん
06/04/18 12:26:48
どんなに遅くてもいいから、実装まで作った処理系のサンプルがほしい

830:デフォルトの名無しさん
06/04/18 14:23:00
>>828
感謝。実はSableCC用のgrammarを発見しました。
あとはASTを上からなめるようなものを書けばいいと思う。
あとプリプロセッサがないから手で書くか、IPAのを借りようかと思う。

>>829
完成したらソース公開するから期待しないで待ってて。
Javaで作るつもり。ライブラリはアドオン形式で。

C89も結構複雑だよねぇ。これがC99になったらと思うと・・・。

831:デフォルトの名無しさん
06/04/18 14:31:21
今公式サイト見たけどCOINSって錚々たるメンバー参加してるんだね。
国内のコンパイラの書籍で見かける人ばっかり・・・。

832:デフォルトの名無しさん
06/04/18 15:45:54
>>830
それを言うならC++0xになったらと思うと…

833:デフォルトの名無しさん
06/04/18 16:07:22
>>832
仰る通り。言語が複雑化すると処理系作る人は大変だね。
LL(1)で解析できる言語(Pascalとか)は素晴らしいなあ。
もっともそのせいで":="あたりで賛否両論になるわけだが...。

834:デフォルトの名無しさん
06/04/18 16:08:48
> もっともそのせいで":="あたりで賛否両論になるわけだが...。
どういうことですか?kwsk
代入演算子が = で、比較演算子が ==なら済む話?

835:デフォルトの名無しさん
06/04/18 16:59:55
>>834
ごめんごめん、深い意味はないのよ。個人的な感想。
個人的には":="が"="で、"<>"が"!="で、"="が"=="だったら
もっと好きになってたかもってことで。
#自分が最初に使った言語にもよるんだろうけど

836:デフォルトの名無しさん
06/04/18 18:09:40
>>835
それは、ホントに個人によるな。
俺の場合、= が代入なのはキモく感じる。
今は慣れたが、最初に言語を習うときに、既存の教育(数学)の常識と違うから。
代入は、:= とか <- とかの方がしっくりくる。

837:デフォルトの名無しさん
06/04/18 20:23:17
>>836
確かに。a = a + 1 なんて絶対成立しないもんね。
そういう意味では := や <- が支持されるのはわかるなぁ。
ただ、<> が等しくないというのはちょっと違和感?
後輩で「<>って大なりでも小なりでもないから等しいってことですか」って
マジで言ってる奴がいた(w
...なるほど深読みするとそうとも取れるのかと思ったよ。

838:デフォルトの名無しさん
06/04/18 21:06:01
<>と!=は好みがでそう。
個人的には!=という記号の対称性のなさが少し嫌かも。
それだったらprologのように=\=の方が好きだ。

839:デフォルトの名無しさん
06/04/18 21:16:39
<and>か<or>か、確かにどっちにも取れるよなぁ。

840:デフォルトの名無しさん
06/04/18 21:26:26
昔は"#"が不等号って時代もチョロットだけあったよね。


841:デフォルトの名無しさん
06/04/18 21:38:37
a := 3 は a: int = 3 の略だったりするのはちょっと萌え。

842:デフォルトの名無しさん
06/04/18 22:28:55
俺の知人がアドレスバーにあった
://www.com/?1=1+2
なよーなURL見て、
このサイト足し算もできないとんでもねー馬鹿だなって言ってたの思い出した

この業界はとりあえず普通じゃないよね

843:デフォルトの名無しさん
06/04/18 22:31:35
>>842
というかURLの意味がわからないんだけど。

俺のプログラマでない友人も、x=x/3というのを見て、x==0と思い込んでた

844:デフォルトの名無しさん
06/04/18 23:17:02
洩れは if .. elsif を見て英語音痴だとおもたよw

845:デフォルトの名無しさん
06/04/18 23:19:15
"=="を定義の意味にすべきだと思う。

846:デフォルトの名無しさん
06/04/19 01:05:41
ウゼー、言語初心者が2,3人迷い込んでガタガタ騒いでやがる

847:デフォルトの名無しさん
06/04/19 01:14:13
自称熟練者さんは理論にもさぞお詳しいのでしょう。

848:デフォルトの名無しさん
06/04/19 01:25:27
演算子の記号の意味なんか言語の仕様書読めば済む話
スレ違い

849:デフォルトの名無しさん
06/04/19 01:29:00
自称熟練者さんは「演算子の記号の意味」が理論だと思っていらっしゃるようです。

850:デフォルトの名無しさん
06/04/19 01:44:17
つーか何で = が代入なんだよ

851:デフォルトの名無しさん
06/04/19 01:50:13
代入要らない。

852:デフォルトの名無しさん
06/04/19 02:31:05
>>851
関数型言語?

853:デフォルトの名無しさん
06/04/19 02:38:57
代入って古いんだよね ダサい きもい

854:デフォルトの名無しさん
06/04/19 02:47:10
そっか。

855:デフォルトの名無しさん
06/04/19 08:55:35
>>850
BASICの頃に作られた定石でつね

856:デフォルトの名無しさん
06/04/19 09:04:53
知り合いに「Pascalの代入演算子が:=なのは文法をLL(1)にするためだ」って
力説してるヤツがいたなぁ。
つーか、トークンの切り出しは字句解析の仕事で、
LL(1)は構文解析の話だと思うのだが。

857:デフォルトの名無しさん
06/04/19 20:48:54
本によるとLALR(1)文法は手書きには向かないって書いてあるんだけど
Rubyとかの言語がコンパイラコンパイラで作られてるのはその為?

858:デフォルトの名無しさん
06/04/19 20:53:30
>>857
その本によるとなんで手書きに向いていないか書いてある?

859:デフォルトの名無しさん
06/04/20 02:33:51
>>855
FORTRANの頃だろう。

860:デフォルトの名無しさん
06/04/20 17:53:43
>>857
LALR(1)を手で書こうとすると地獄を見るよ。
再帰下降の文法がどれだけ簡単か感謝するようになる(w

861:デフォルトの名無しさん
06/04/20 20:15:23
LL(1)は適用範囲が狭いけど書きやすい。
LALR(1)は適用範囲が広いけど書きにくい。
すげージレンマです!

862:デフォルトの名無しさん
06/04/20 21:58:00
flex 使ってると、このようなメッセージが出るんだけど、
この関数を定義しないようにするにはどうすればいいでしょうか?

lex.yy.c: warning: 'yy_flex_realloc' defined but not used


863:デフォルトの名無しさん
06/04/21 00:40:11
#undef yy_flex_realloc

864:デフォルトの名無しさん
06/04/22 10:06:33
一般教養としての Garbage Collection
URLリンク(www.logos.t.u-tokyo.ac.jp)

865:デフォルトの名無しさん
06/04/22 10:56:10
>>863
違うだろ?

866:デフォルトの名無しさん
06/04/22 22:41:57
hiraikenji@t.vodafone.ne.jp

867:デフォルトの名無しさん
06/04/25 21:58:09
HSPもyaccとか使ってんのかね?

868:デフォルトの名無しさん
06/04/27 11:58:47
>>867
どうでしょう。HSPって文法は何?LALR(1)?

869:デフォルトの名無しさん
06/04/27 23:41:05
HSPは字句解析とか構文解析みたいな、まともな理論使ってなさそうな雰囲気
例えるなら紙芝居エロゲのシナリオスクリプト

870:デフォルトの名無しさん
06/04/29 18:18:30
エロゲスクリプタもbisonで書いてるの多いと思うが

871:デフォルトの名無しさん
06/04/30 13:00:49
コンパイラを書くのに最も適した言語って何ですかね?

872:デフォルトの名無しさん
06/04/30 13:08:48
最初の立ち上げの言語のことか?
それともツール込みの事か?

おいらは最後には自己記述するから自分自身とかって事になるもんだと思ってるんだけど。


873:デフォルトの名無しさん
06/04/30 14:31:34
コンパイラの仕事ってのは、大半がツリーからツリーへの変換だから、
ツリーを弄りやすく、静的な強い型検査をし、メモリ管理がらくちんな
言語が向く。ML系かHaskellでどうぞ。

874:デフォルトの名無しさん
06/04/30 15:34:17
コンパイラの仕事ってのは、大半がツリーからツリーへの変換だから、
ツリーを弄りやすく、強力なマクロを持ち、メモリ管理がらくちんな
言語が向く。LispかSchemeでどうぞ。

875:デフォルトの名無しさん
06/04/30 15:52:58
コンパイラの仕事ってのは、大半がツリーからツリーへの変換だから、
ツリーを弄りやすく、すべてがオブジェクトで、メモリ管理がらくちんな
言語が向く。Ruby でどうぞ。


876:デフォルトの名無しさん
06/04/30 16:01:31
コンパイラの仕事ってのは、大半がツリーからツリーへの変換だから、 
ツリーを弄りにくく、貧弱なマクロを持ち、メモリ管理がたいへんな 
言語は向かない。CかC++はやめとけ。 

877:デフォルトの名無しさん
06/04/30 16:10:52
>>876

 ・・・orz



878:デフォルトの名無しさん
06/04/30 16:24:16
でも結局yaccとc使うんでしょ

879:デフォルトの名無しさん
06/04/30 16:25:33
yaccとCをつかうと何が有利なのでしょう?

880:デフォルトの名無しさん
06/04/30 16:28:07
なにも。

881:デフォルトの名無しさん
06/04/30 16:30:19
あれを使えばいい、とか、これを使えばいい、とか言ってるだけのやつはいなくなってもいいよ。

882:デフォルトの名無しさん
06/04/30 16:31:29
そもそも、ここで具体的なことを質問に来るやつなんていないじゃない?
スレもここで終了してもいいんじゃないかな?
というわけで



======= 終 了 =========




883:デフォルトの名無しさん
06/04/30 18:27:01
久しぶりに終了厨を見たな

884:デフォルトの名無しさん
06/04/30 19:54:42
時代的にはHaskellですかね?
でも習得が簡単なのはLisp?
うーん迷う。

885:デフォルトの名無しさん
06/04/30 19:59:03
>>884
お前が言いたいのはLispじゃなくてSchemeだろ?

886:デフォルトの名無しさん
06/04/30 22:30:19
>>875
では、何故Rubyは、Rubyで書かれていないのですか?

887:デフォルトの名無しさん
06/04/30 23:22:40
コンパイラはブートストラップできるけど、スクリプタは出来ない希ガス

888:名無しさん@Linuxザウルス
06/05/01 07:38:23
ほとんどの速いLISP/Schemeはそれ自身で書かれてるけど
コア部分はCだったりする。
移植考えた場合gccでミニ言語構築してからブートストラップかな。
開発者はELFとかPEまで面倒見たくないのが本音。

889:デフォルトの名無しさん
06/05/01 08:26:55
>>886
こういう馬鹿がたまに湧いてでてくるようだが、
おっとそろそろ連休かぁw

言語にはそれぞれの目的があるのも分からんの?
アセンブラからベン教しなおしたら?


890:デフォルトの名無しさん
06/05/01 09:22:19
.o0(下らない煽りを入れるだけなら、書き込まなきゃ良いのに・・・)

891:デフォルトの名無しさん
06/05/01 09:45:36
886じゃないけど、ブートストラップする目的の一つには言語の記述力の高さを証明するって意味合いもあるんじゃまいか。
rubyのことはよく知らないけど、もしパフォーマンスに関して考慮しないとしたら、rubyは自己記述できるだけの記述力はあるの?

892:デフォルトの名無しさん
06/05/01 10:53:53
ruby で ruby を記述することはできるっしょ。

893:デフォルトの名無しさん
06/05/01 19:54:21
ruby を用いれば(理論上は)なんでも記述できる。
ただ、パフォーマンスが問題なだけ。


894:デフォルトの名無しさん
06/05/01 19:58:44
>>893
>ruby を用いれば(理論上は)なんでも記述できる。
証明は?

895:デフォルトの名無しさん
06/05/01 20:07:02
遅いってのは、それだけで罪だと思う

896:デフォルトの名無しさん
06/05/01 20:09:17
早漏よりはましだと思うけどね

897:デフォルトの名無しさん
06/05/01 22:55:01
>>893
あまり良い例じゃないかもしれないけど、GC は Ruby で書けないんじゃない?

898:デフォルトの名無しさん
06/05/01 23:46:15
GCも書けないんじゃチューリング完全といえるのか?

899:デフォルトの名無しさん
06/05/01 23:49:02
書けるよ^^;

900:897
06/05/02 00:07:17
>>898
まぁ、そういう意味では書けそうかな。
仮想的なメモリの様な物を定義して、GC のアルゴリズムを実装したり、
malloc/free/etc. をラップしてゴリゴリ書いたりは出来るだろうね。

901:デフォルトの名無しさん
06/05/02 00:15:59
>>898
チューリング完全関係ない^^;

902:デフォルトの名無しさん
06/05/02 01:29:53
つーか実装可能かどうかよりも、実装しやすいかどうかが問題なんじゃないの?

903:デフォルトの名無しさん
06/05/02 01:38:25
コンパイラ作る側のことは問題じゃない^^;

904:デフォルトの名無しさん
06/05/02 01:44:50
ユーザーにコンパイラ作らせるって意味じゃなくて言語の記述力の話だったような気が

905:デフォルトの名無しさん
06/05/02 07:01:58
マジレスすると Ruby の記述力はほぼ最強クラス
Ruby と Haskell を学べば他のウンコ言語は不要


906:デフォルトの名無しさん
06/05/02 10:12:40
Rubyは型なしライトウェイト言語。Haskellは強い型あり言語。ぜんぜん用途も違うから住み分けが必要だね。

907:デフォルトの名無しさん
06/05/02 18:16:08
>>905
いやしかし、ごく普通のPCで
「720x480ピクセルのインターレースの画像データを
デインターレース処理してね。当然60fpsでよろしく」
「ビットレート10MBpsのMPEGデータを・・・」
とか、そういうごく有りがちな応用とかでは C/C++ は捨てがたい。

908:デフォルトの名無しさん
06/05/02 22:20:30
この板もID制になればなぁ。
一日中一人で荒らしてるが丸分かりでおもしろいのになぁ

909:デフォルトの名無しさん
06/05/02 22:57:40
>>907
そろそろrubyでも届く処理になっていると思われ。

910:デフォルトの名無しさん
06/05/02 23:04:47
>>909は世間知らず

911:デフォルトの名無しさん
06/05/02 23:05:59
Rubyの売りは手軽に書けるということでしょ?
C/C++はシビアな処理が必要なところとか、大規模開発向き。
言語は住み分けが大切なんだって言ってるでしょ。

912:デフォルトの名無しさん
06/05/02 23:09:57
Rubyはなんだかうんこくさいんです。

913:デフォルトの名無しさん
06/05/03 01:05:19
清濁併せのむって事がわからない馬鹿は死ね


914:デフォルトの名無しさん
06/05/03 01:46:15
>>909
またまたご冗談を

>>911
激しく同意

915:デフォルトの名無しさん
06/05/03 01:50:51
scheme みたいにミニマム指向で、型付きで、オブジェクト指向をサポートしていて、
repl があって、文法が奇麗な言語って無いですかねぇ。仕様がある程度かっちり
していると嬉しいのですが。

JavaScript に型が付いた様なの、あるいは言語仕様がきちっと決まっている Pike
みたいな感じのキボンヌ。

916:デフォルトの名無しさん
06/05/03 01:59:06
>>915
オブジェクト指向はラムダ式の包含的なアプローチなわけだが・・
とりあえずOCamlあたりのことを言っているのかな・・

917:デフォルトの名無しさん
06/05/03 02:27:23
ラムダでオブジェクトを作れると言う意味では、syntax sugar としての OO をサポートしている
-- object.method() の様な感じで記述出来る -- 言語が無いかなと思いまして。

OCaml はミニマム指向なのでしょうか?
ML97 みたいな規格があると嬉しいです。

918:デフォルトの名無しさん
06/05/03 04:11:54
>>915
Ruby。動的型だけど。


919:デフォルトの名無しさん
06/05/03 06:38:26
もうRubyはいいってw

920:デフォルトの名無しさん
06/05/03 06:42:15
動的型まで含めたらだめだろ

921:デフォルトの名無しさん
06/05/03 06:52:13
>>915
JavaScript 2.0では随所に型情報をつけられるよ。
つーか「型が付いた」ってどういう意味で言ってるの?
静的型付けってこと?

922:デフォルトの名無しさん
06/05/03 07:25:26
>>921
JavaScript 2.0 は以前ちょっとだけ見て忘れてました。
もう一度調べてみます。どうもありがとう。

923:デフォルトの名無しさん
06/05/03 07:33:02
JavaScript 2.0って昔からドラフトだけは出てたけど、
今はもう実装されてんの?

924:デフォルトの名無しさん
06/05/03 07:50:29
誰も実装しないね。草案が固まらないのかな?

925:デフォルトの名無しさん
06/05/03 07:54:42
ActionScript3.0は

926:デフォルトの名無しさん
06/05/03 08:45:35
>>919
Ruby コンプレックスかよダセw
どうせオブジェクト指向が使いこなせなかった低能だろ?
氏んでくださーい。あっ HSP 厨房?

927:デフォルトの名無しさん
06/05/03 10:27:54
926みたいな奴を見るたびに、Ruby使う気が失せていくんだよな。

928:デフォルトの名無しさん
06/05/03 13:26:48
レベルの低下が著しいスレですね

929:デフォルトの名無しさん
06/05/03 15:30:01
このスレは前からこんなもんだ。

930:デフォルトの名無しさん
06/05/03 15:30:40
           j} _ ..∠ ≧=≠ー≒=辷z、_      _メ    }}
          ≠´              `く≠≦´_     〃
.         , '                  〈、⌒ヽ`ヽ=≠"
        /, ,   / ,               キヽ.     ヽ
         ///〃 / / /     }}川 i|!  i  } ハ   ト、 キ
.         jハl|∥{ { {  {     ノノ川 jj|  j / / j}_,メ ヾリ
.        l{八 ヽヽヽ \   //ノノノノノ}  /〃//  `二ニ=- 、
         八 、ヽ、 x≦ミヽ、{ { ≧=ミ.ノ/ノ_厶斗-‐== 二 」
        /  ゝ≧ミyィ゙j:i}  `  ´{゙j:;;!ii}ゞ≧=彡ヘ-‐=≡ ‐= ニコ
.    /  /{ミ辷彡}oー ' ,     ーo' {ミ辷__彡}二ニ=-  jノ
    {  / , ゝー=人""  cっ   "" °{ミ辷__彡}-‐==≡ミ〉
      \{ / /{辷彡}>  .. __    イj从ミ辷_彡ノ==≡ニ≦、
      `{ { f´≧=彡'´ ̄`ヽ_」    jァァ' ゞ=个辷ニニ=-テ′
       `ーァ `≠ x==く(´   /,≠=キテノハミ辷=≦
          ヤ/ 〈く   `'ァfj彡'゙     》/   ヽ㍉弓
          `{   ヾx、__,≠ハミヽ、    〃   丿 リノ
.             \/´   ̄_/,≠= 、 `'≡彡゙ '⌒'く  ´
             /   _/´~ニ{ニ   Y´   -‐- 、丿
             { /i{   ニ{-    ハr┬- 、   }
              ノイ|  キ  ノ゙T ¬i ! } }   ヽ {
          / {l|  キf´∥{|  j }ノノ    } }
           ∥ ミ{   キ!、リ キ  ///    ′ハ
            人  ヾ、 ヾツ キー' 〃   _ .. イ   ヽ
.        /  `アアア丁! ! `T¨丁 ̄i i |    \
.        /    / / / ¦i i ¦ |  ¦ i  i     \


うう・・・・・・・グス・・・・・・・ひっく・・・・・・・・ごめんなさいなのぉ・・・

931:デフォルトの名無しさん
06/05/03 22:14:41
オブジェクト指向言語って全体のどれぐらいを占めるのでしょうね?
最近流行ってる見たいですが…

932:デフォルトの名無しさん
06/05/03 22:23:22
オブジェクト指向言語というのは、オブジェクト指向でプログラミングすることを念頭に置いた言語という意味だって知ってる?

933:デフォルトの名無しさん
06/05/03 23:33:12
いまどきアセンブラの仕事している俺っていったい・・・
さすがに紙に穴あけたことはないけど。

934:デフォルトの名無しさん
06/05/04 00:48:06
>>933
> いまどきアセンブラの仕事している俺っていったい・・・
1チップ組込用マイコン設計屋で、アセンブラでテストパタン作っていますが、何か?

935:デフォルトの名無しさん
06/05/04 00:58:01
アセンブラがかっこいいとか思ってるの?

936:デフォルトの名無しさん
06/05/04 01:12:31
>>934
カコイイ!!

937:デフォルトの名無しさん
06/05/04 04:32:36
オブジェクト指向が主流の現代にアセンブラかよ。プゲラ

938:デフォルトの名無しさん
06/05/04 04:53:01
>>937
disassemble や decompile した事無いの?

939:デフォルトの名無しさん
06/05/04 07:20:30
>>934
スゲー!!!

940:デフォルトの名無しさん
06/05/04 08:53:20
>>934
FPGA とか CPLD でゴニョゴニョ出来る人はちょっと憧れる。
↓こんなのとか。

URLリンク(crystal.freespace.jp)

941:デフォルトの名無しさん
06/05/04 09:00:37
>>934
お嫁さんにして下さい。

942:デフォルトの名無しさん
06/05/04 10:15:22
>>934
カコイイ

943:デフォルトの名無しさん
06/05/04 13:03:21
>>934
m9(^Д^)プギャー!!

944:デフォルトの名無しさん
06/05/04 13:18:00
アセンブラに対する評価って、色々なんやね。
そういや、アセンブラやってからCをやると、
ポインタが分かりやすいという話があったな。


945:デフォルトの名無しさん
06/05/04 19:21:03
>>944
それ、逆というか本末転倒。
ポインタの概念を理解できないと、そもそもアセンブラを理解できない。
従って、アセンブラをやった者にはポインタは空気のような存在。
使えない事の方が理解しがたい。

946:デフォルトの名無しさん
06/05/04 19:33:46
>>945
アセンブラの次にcやった人だと、ポインタに対する
インクリメント(++)で、型によって値が+2されたり+4
されたりするのが理解しづらいとオモ

つ~か、漏れが昔はそうだった

947:デフォルトの名無しさん
06/05/04 19:54:50
へー頭悪かったんだね。

948:デフォルトの名無しさん
06/05/04 20:22:54
煽り乙

949:デフォルトの名無しさん
06/05/04 20:35:34
スレの本題を忘れるなよ。まぁ今後オブジェクト指向が主流となる事は間違いない

950:デフォルトの名無しさん
06/05/04 21:05:25
OO つかクラス指向は 90's 中頃からずっと主流だったし、最早、水や空気と変わらんね。
1チップマイコンは地味に流行ってて面白そう。ARM 基板とか安く手に入るし。

951:デフォルトの名無しさん
06/05/04 23:18:48
オブジェクト指向はruby以外まともなものは知らない。
みな中途半端

952:デフォルトの名無しさん
06/05/04 23:25:02
Ruby 以外の言語を知らないんじゃないの?

953:デフォルトの名無しさん
06/05/04 23:56:18
YARV の話しようぜー
今んとこ最強だよね

954:デフォルトの名無しさん
06/05/05 04:45:55
大昔 Smalltalk-80 とか Smalltalk/V とかつかってて、
それほど中途半端な感じはしなかったけど・・・

955:デフォルトの名無しさん
06/05/05 04:47:52
>>951
rubyも中途半端

956:デフォルトの名無しさん
06/05/05 06:04:08
つか、rubyは手続き型の記述が「可能」な時点でオブジェクト指向ぽい言語なのでわ?

957:デフォルトの名無しさん
06/05/05 06:50:44
>>956
それを言っちゃうとメジャーな言語でオブジェクト指向を謳ったものはほとんど残らないじゃないか。

958:デフォルトの名無しさん
06/05/05 10:24:17
>>954
また古い話だな。でも Ruby は Smalltalk の良い所を継承しつつ、その制限や
不便な部分を改善しているよ。今迄実行環境については構文木を Eval という
Smalltalk に大きく見劣りする形式だったけど YARV によって GC 回りを含め
て大きく改善された。


959:デフォルトの名無しさん
06/05/05 10:28:29
一番最後に出来た VM だな。

YARV の詳細は知らんけど、世代別 GC と JIT くらい備えないと
10 年前の Smalltalk にすら追い付いてないのでは。

960:デフォルトの名無しさん
06/05/05 11:52:13
>>359
YARV 世代別 GC になるよ。JIT も計画されてるみたいだけど
最初は搭載されないだろうなー

961:デフォルトの名無しさん
06/05/05 16:48:22
Ruby関係はIPA採択されやすいのかな
YARVてなんか未踏でもなんでもない気がくぁwせdrftgyふじこ

962:デフォルトの名無しさん
06/05/05 16:49:14
国産ですので。

963:デフォルトの名無しさん
06/05/05 16:49:49
早っww

964:デフォルトの名無しさん
06/05/05 18:47:40
やっぱり「純粋な~」が好きな国民性ゆえ Ruby と Haskell がブームとなるん
だろう。
純粋な関数型: Haskell
純粋なオブジェクト指向: Ruby
このスレもこの二つメインで良くね?ぶっちゃけのこりの雑種共はいずれ死滅
するだろ。


965:デフォルトの名無しさん
06/05/05 18:54:52
YARVって速いの?

966:デフォルトの名無しさん
06/05/05 20:15:27
Rubyが純粋なオブジェクト指向て。

孤高の言語 Lisp Prolog > 新しいパラダイム Smalltalk Haskell > 面白いモデル ML Forth
て感じだろ。

Java Perl Ruby Python なんかはカスみたいなもんだ。

967:デフォルトの名無しさん
06/05/05 20:21:22
今日はじめて彼女とHしました。記念sage

968:デフォルトの名無しさん
06/05/05 20:25:44
>>966
実用言語が一つもない件w

969:デフォルトの名無しさん
06/05/05 20:30:53
>>986
まじめな話Forthは実用言語だぞ。

今はあまり使われないがリソースが少なかった頃の組み込み分野じゃ一斉を風靡したもんだ。
(ちなみにforthラブラブな本があったんだけどタイトル失念した)


970:デフォルトの名無しさん
06/05/05 20:35:11
でも再帰下降が普及してからforthでなくともスクリプト組み込みは容易になったからなあ

971:デフォルトの名無しさん
06/05/05 20:40:43
完全に純粋であることに意味なんか無いしなぁ。

つうか、あるパラダイムに本当に完全に純粋な言語なんて無いよなぁ。

972:デフォルトの名無しさん
06/05/05 20:48:04
Microsoft パラダイムに
純粋な言語は幾らでもあるけれど?


973:デフォルトの名無しさん
06/05/05 21:09:50
>>972
政治的な話はなしにしないとemacsとviみたいに不毛な話しかでてこなくなる。


#つーか原理主義だけはやめようよ~

974:デフォルトの名無しさん
06/05/05 22:01:34
純粋な言語って使い物にならないよ。
実用的なソフトが作れない

>>969
おお、それは失礼した。
組み込みで使われてたか。知らん分野だった

>>972
どこどこ?

975:デフォルトの名無しさん
06/05/05 22:09:58
つVB
つC$

976:デフォルトの名無しさん
06/05/05 22:31:03
言語が「純粋」ってどういう意味?

977:デフォルトの名無しさん
06/05/05 23:07:39
>>976
Vi を使って Ruby スクリプトを書くようなイメージ

978:デフォルトの名無しさん
06/05/05 23:12:09
だーかーら Rubyは「純粋」じゃないのっ
もっとお勉強しましょうねー

979:デフォルトの名無しさん
06/05/05 23:12:40
「実用的」なソフトってどんなの?

980:デフォルトの名無しさん
06/05/05 23:31:46
>>978
お前の言う「純粋」な言語は存在しない。お前がもっと勉強してね。

981:デフォルトの名無しさん
06/05/05 23:34:05
>>974
あと印刷関連の言語 PostScript もほぼ純粋 Forth だよ。

982:デフォルトの名無しさん
06/05/05 23:51:09
>>980
SchemeとSmalltalkはRubyよりは「純粋」だと思うよ
Rubyのアイデンティティってなんなの?

983:デフォルトの名無しさん
06/05/05 23:54:45
>>982
SchemeとSmalltalkが「純粋」?

ブハッツww バカだコイツww

984:デフォルトの名無しさん
06/05/05 23:58:11
>>983
Smalltalk のどのへんが OO 言語として純粋でない部分?
ちょっと通りすがりだけど興味あるんで聞いてみたい。

985:デフォルトの名無しさん
06/05/05 23:58:15
だーかーら SchemeとSmalltalkは「純粋」じゃないのっ
もっとお勉強しましょうねー

986:デフォルトの名無しさん
06/05/06 00:05:59
ruby はブロックの扱いが Smalltalk に比べて純粋でないというか、
後付っぽい感じがただよいまくり。

987:デフォルトの名無しさん
06/05/06 00:07:11
クラスの概念はOOとして純粋じゃない。
実用の為に導入されている。

988:デフォルトの名無しさん
06/05/06 00:11:10
>>987
OO の本質が何であるかは人によって様々。
勿論クラス指向でも問題無し。

989:デフォルトの名無しさん
06/05/06 00:11:31
Scheme は最小構文、クロージャ、プログラムがデータ
Smalltalk は全てオブジェクト

Ruby は 、、、 えっ 文字列を evalするの?
ブロックなにそれ?
そんな Rubyのアイデンティは? 、 ないよねー

990:デフォルトの名無しさん
06/05/06 00:14:03
>>988
つまり、人によって純粋の定義は異なる。

よって、純粋かどうかに拘って、アイデンティティがどうとか言ってる982はバカだってことで

991:デフォルトの名無しさん
06/05/06 00:18:15
や、>>977 の発言を見て Rubyを純粋だと信じてやまないピュアな若者を
いじってみたくなっただけなんだ。
正直純粋とかアイデンティティとかどうでもいい。いまは反省している。

992:デフォルトの名無しさん
06/05/06 00:18:35
>>990
>つまり、人によって純粋の定義は異なる。

これはそのとおりだし、「純粋」議論には意味がないと思うが。
で、「純粋なOO言語だっ」と言いたがるのはたいていRuby信者だが、それはさておき。

Rubyが、いろんな言語からつぎはぎした統一感のない言語だってのは事実なんじゃね?
それを「いいとこ取り」と言う奴もいるだろうが、「ぐちゃぐちゃ」とか「アイデンティティがない」とか
思う奴もいてよかろう。


993:デフォルトの名無しさん
06/05/06 00:18:36
>>990
純粋の定義は変わらんよ。どっちの方向に純粋かが変わるだけ。
純粋である事にはそれ程意味がある訳じゃないけどね。

>>989
Ruby のアイデンティティは ad-hoc さとごちゃ混ぜ感じゃないの。
yet another perl だから。

994:デフォルトの名無しさん
06/05/06 00:22:21
そういや、次スレ立てにゃいかんな。
今回は特にテンプレ貼らず、Wikiのまとめページへのリンクだけでもいい気がする。

URLリンク(www6.atwiki.jp)

995:デフォルトの名無しさん
06/05/06 00:31:26
>Rubyが、いろんな言語からつぎはぎした統一感のない言語だってのは事実なんじゃね?

他の言語のよいところをつぎはぎしない言語は、死んで使われてない言語だけだろ。


>それを「いいとこ取り」と言う奴もいるだろうが、「ぐちゃぐちゃ」とか「アイデンティティがない」とか
>思う奴もいてよかろう。

それは無知だからだろ。  というと怒るか?

では、Rubyも全てオブジェクトだし、純粋だと言うヤツがいてよかろう。
それを否定して、無知だからだと言ってるヤツは何だ?

996:デフォルトの名無しさん
06/05/06 00:39:47
>>995
その話はもう終わり。無駄レスで残り少ないレスを消費するなよ。

997:デフォルトの名無しさん
06/05/06 00:43:12
お前のそのレスがムダだし、その所為でこうしてまたムダレスが書かれる。
浅はかなんだよ。お前は。

998:デフォルトの名無しさん
06/05/06 00:51:28
>>993
アイデンティティがないのがアイデンティティって? まあ否定はしないけど。

>>995
ブロックはオブジェクトじゃないよ。RubyはSchemeに似すぎている。だからこそ中途半端に感じる。
もっと Schemeっぽくして callを applyにしてオブジェクトを evalするようにするのは簡単
だろうけど、それって嬉しいの? ってなる。Schemeでいいじゃんみたいな。
使ってる人もいっぱいいるし、身動きとれなくなって結局 Perlみたくなるんだよ。

999:デフォルトの名無しさん
06/05/06 00:59:00
ブロックはオブジェクトとして扱えばオブジェクトになる。

>RubyはSchemeに似すぎている。だからこそ中途半端に感じる。
最近のLL言語はそらLisp系に似てるだろうけど、それで中途半端に感じる?意味不明すぎ。

>もっと Schemeっぽくして callを applyにしてオブジェクトを evalするようにするのは簡単
>だろうけど、それって嬉しいの? ってなる。Schemeでいいじゃんみたいな。
なんでSchemeっぽくする話にしてんの?しないよ。
Schemeでいいじゃんみたいなって、意味不明な論理からその結論かよ。アホか。

>使ってる人もいっぱいいるし、身動きとれなくなって結局 Perlみたくなるんだよ。
だからなんだってんだ?

1000:デフォルトの名無しさん
06/05/06 01:00:07
1:00ちょうどに 1000!

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


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