5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:04/11/10 23:30:50
言語仕様や処理系の話題に関するスレッドです。

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

前スレ
1 http://pc.2ch.net/tech/kako/981/981672957.html
2 http://pc2.2ch.net/test/read.cgi/tech/1021136715/ (dat落ち)
3 http://pc5.2ch.net/test/read.cgi/tech/1070089173/ (前スレ)

関連リンクは多分 >>2-10 あたり

2 :デフォルトの名無しさん:04/11/10 23:30:59
いらん。

3 :デフォルトの名無しさん:04/11/10 23:31:40
くそスレ立てる子もいらん。

4 :デフォルトの名無しさん:04/11/10 23:32:27
コンパイラ等を扱ったドキュメント

色々なツールの紹介
http://catalog.compilertools.net/

コンパイラ関連のリンク集
http://www.ulis.ac.jp/~nakai/rel_web_compilers.shtml

スクリプティング言語資料室(仮) (リンク)
http://www.kt.rim.or.jp/~kbk/

Compiler Construction
http://rananim.ie.u-ryukyu.ac.jp/~kono/lecture/2000/compiler/index.html

Compiler Construction (1997)
http://rananim.ie.u-ryukyu.ac.jp/~kono/lecture/1997/compiler/compiler.html

情報システム工学実験 III コンパイラ・コンパイラ
http://math.cs.kitami-it.ac.jp/~fuchino/proin/experimentIII-2000/jikken.html

OS/Programming 簡単な C コンパイラ
http://www.csg.is.titech.ac.jp/~chiba/lecture/os/

正規表現
http://hp.vector.co.jp/authors/VA007799/viviProg/doc_regexp.htm

コンパイラ研究・開発情報の一集積所
http://compilers.cs.uec.ac.jp/

Links and Selected Readings
http://www.gnu.org/software/gcc/readings.html

5 :デフォルトの名無しさん:04/11/10 23:33:05
Lex(Flex) Yacc(Bison) 構文解析

UNIX板
yacc & lex
http://pc.2ch.net/test/read.cgi/unix/1031801314/

Lex and YACC primer/HOWTO (邦訳)
http://www.linux.or.jp/JF/JFdocs/Lex-YACC-HOWTO.html

Turbo Pascal Lex/Yacc
http://www.musikwissenschaft.uni-mainz.de/~ag/tply/tply.html

Jim Roskind's LALR(1) C++ Grammar
http://www.empathy.com/pccts/roskind.html

Flexと Bisonを同時に使う
http://guppy.eng.kagawa-u.ac.jp/~kagawa/1999/SysProg/both.html

KITE_ASM (yacc,lex)
http://www.arch.cs.kumamoto-u.ac.jp/project/kite/kiteasm/yacc/
http://www.arch.cs.kumamoto-u.ac.jp/project/kite/kiteasm/lex/

Cygwin
http://www.cygwin.com/

GNU utilities for Win32
http://unxutils.sourceforge.net/

6 :デフォルトの名無しさん:04/11/10 23:33:32
その他のパーサジェネレータ等

ANTLR(非yaccのパーサジェネレータ)
http://www.antlr.org/

JavaCC(Java Compiler Compiler)
https://javacc.dev.java.net/
http://village.infoweb.ne.jp/~fwif0083/program/java/javacc/javaccgrm.html
http://www.asahi-net.or.jp/~DP8T-ASM/java/tips/JavaCCHelloWorld.html

CUP & JLEX or CUP & JFlex
CUP http://www.cs.princeton.edu/~appel/modern/java/CUP/why.html
JLEX http://www.cs.princeton.edu/~appel/modern/java/JLex/
JFlex http://www.jflex.de/

SableCC
http://www.sablecc.org/

¬<><∪∪ (notavacc)LALR(1)
http://ne.cs.uec.ac.jp/~koto/notavacc/

JavaCCはLL(k)だけど、上のはANTLR以外はLALR(1)
でもANTLRはC++なんかにも対応。

boost::spirit(C++のテンプレートでEBNFの構文を模倣)
http://spirit.sourceforge.net/
http://boost.cppll.jp/HEAD/libs/spirit/index.html(マニュアル日本語化プロジェクト)
http://www.fides.dti.ne.jp/~oka-t/cpplab-boost-spirit.html

7 :デフォルトの名無しさん:04/11/10 23:33:52
ガベコレ

GC FAQ -- draft
http://www.iecc.com/gclist/GC-faq.html

A garbage collector for C and C++
http://www.hpl.hp.com/personal/Hans_Boehm/gc/

一般教養としての Garbage Collection
http://www.is.s.u-tokyo.ac.jp/~vu/01/jugyo/processor/process/soft/compilerresume/gc/gc.html

Garbage Collection : Algorithms for Automatic Dynamic Memory Management
http://www.amazon.com/exec/obidos/ASIN/0471941484/

8 :デフォルトの名無しさん:04/11/10 23:34:15
参考書籍

●コンパイラ 原理・技法・ツール 1&2
http://www.amazon.co.jp/exec/obidos/ASIN/4781905854/
http://www.amazon.co.jp/exec/obidos/ASIN/4781905862/
通称ドラゴンブック。バイブル。

●コンパイラ構成法 原田 賢一
http://www.amazon.co.jp/exec/obidos/ASIN/4320029224/
http://www.hara.cs.keio.ac.jp/kCompiler/ (ソース、正誤表のダウンロード)

●プログラミング言語処理系 岩波講座 ソフトウェア科学〈5〉 佐々 政孝
http://www.amazon.co.jp/exec/obidos/ASIN/4000103458/
一冊で済ませたい人へ。

●コンパイラの構成と最適化 中田 育男
http://www.amazon.co.jp/exec/obidos/ASIN/4254121393/
最適化がメイン。

●コンパイラの仕組み 渡邊 坦
http://www.amazon.co.jp/exec/obidos/ASIN/4254127081/
薄い奴(185p)を読みたい人に。

●21st Century Compilers (Alfred V. Aho, Sethi, Ravi Sethi, Jeffrey D. Ullman, Monica Lam)
ペーパーバック版: http://www.amazon.co.jp/exec/obidos/ASIN/0321210913/
ハードカバー版: http://www.amazon.co.jp/exec/obidos/ASIN/0321131436/

●スモールコンパイラの制作で学ぶプログラムのしくみ
http://www.cbook24.com/bm_detail.asp?sku=4774121770

9 :デフォルトの名無しさん:04/11/10 23:41:19
処理系,スクリプト

kikyou.info (吉里吉里というゲームのスクリプト)
http://kikyou.info/

tiny C コンパイラ (C)
http://www.watalab.cs.uec.ac.jp/tinyCabs.html

6809用 Micro C コンパイラ
http://www.axe-inc.co.jp/pds/mc09.html

Portable Object Compiler (Obj-C >> C のトランスレータ?)
http://users.pandora.be/stes/compiler.html

自作コンパイラの部屋(PL/1, Pascal等)
http://www.tokumaru.org/

『Rubyソースコード完全解説』サポートページ
http://i.loveruby.net/ja/rhg/

『やさしい Lisp の作り方』と『やさしい Java インタプリタ の作り方』見つけた。
Java と C# で実装。
ttp://www.okisoft.co.jp/esc/go.html
ttp://www.okisoft.co.jp/esc/go2.html
ttp://www.okisoft.co.jp/esc/go3.html
ttp://www.okisoft.co.jp/esc/go4.html

MSによるPEフォーマット仕様書(日本語)
http://www.interq.or.jp/chubu/r6/reasm/PE_FORMAT/intro.html

10 :デフォルトの名無しさん:04/11/10 23:49:54
LISP?はぁ?
負け組言語は不要w



11 :M.B.:04/11/11 00:01:58
>>10
馬鹿め、Lisp と Forth はどこにでもいるのだぞ。
侮ってはイカン。

12 :デフォルトの名無しさん:04/11/11 01:54:49
LISPはCと同じ速度、Javaよりも省メモリ、AI関係に使用しやすい
とかの理由でボーイング777の製造とかYahooStoreのシステムに
フレームワークとして利用されてるよね。。

LISPがコンパイルして実行できて、同じAI向けのPrologができへんのなんで?
(LISPはS式で、Prologの方は実行時に述語を受理したりすんのと関係ある?)

Prologもコンパイルできる…とか、法律家気取りの言語マニアな
意見は抜きにして簡単に教えて。

13 :sage:04/11/11 02:00:12
コンパイラとバーチャルマシン
http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-13308-7

14 :デフォルトの名無しさん:04/11/11 02:04:25
漏れはいつも構文解析まではフンフンって読めるけど、
意味解析やコード生成以降はホント、チンプンカンプン。

CPUとかアセンブラとかの勉強、やっぱ必要か(笑)?

15 :デフォルトの名無しさん:04/11/11 02:33:02
>>12
LispとPrologを同列視してる時点で何もわかっちゃいないのが丸わかりだが、ま、
WAMをキーワードにぐぐってみれ。


16 :デフォルトの名無しさん:04/11/11 07:00:09
リスパーとか来ると嫌だなあ。

17 :デフォルトの名無しさん:04/11/11 09:13:53
LisperでもSmalltelkerでもコアな言語をゴリゴリ使ってて自分コンパイラをその上で作っちゃう人もかなり
居るらしいからいいんでね?

でもLispとかSmalltalkの話を聞くとかなり初期段階で他の言語の処理系を作ってるね。
あれはなんでだ?(w

18 :デフォルトの名無しさん:04/11/11 09:29:14
>>15
うほっ

19 :デフォルトの名無しさん:04/11/11 10:04:06
後半何がいいたいのかよくわからん……

20 :デフォルトの名無しさん:04/11/11 10:18:52
>>17
Java で Lisp のインタプリタ書くのは簡単。
けどハマりそうでイヤ。

21 :デフォルトの名無しさん:04/11/11 12:05:25
>>9 にも『やさしい Lisp の作り方』とかあるけど、それとは別に
「JAVAでLISPを作るのはCなどで作るよりも3倍は楽でないかと思われます。」
とか言いながらJavaLispをつくるサイトがここにもあたよ。

http://www.cobalt.co.jp/writing/index.html

書かれてある理由のとおりJavaでのLispは卑怯なぐらい簡単。

22 :デフォルトの名無しさん:04/11/11 14:23:12
いつもはじめからS式で書けば字句解析も構文解析も
いらないじゃんと思う。面白いのはそっから先だよな。


23 :デフォルトの名無しさん:04/11/11 15:00:24
全く同感。>>14みたいのを見るたびそう思う。
Cみたいな言語の構文解析をやって、そっから先に進みがたかったら
Lispのコンパイルを理解すればいい。
後からその両者を真中でつなげれば楽ちん。


24 :デフォルトの名無しさん:04/11/11 15:44:21
> Lispのコンパイルを理解すればいい。

わかった。Lispのコンパイルを自作を目指して勉強する。
お勧めの情報源があれば教えてチン子。

25 :デフォルトの名無しさん:04/11/11 17:48:57
コンパイラ研究・開発情報の一集積所
ttp://compilers.cs.uec.ac.jp/

26 :デフォルトの名無しさん:04/11/11 18:17:03
http://v.isp.2ch.net/up/1ed9c2013b91.jpg

27 :デフォルトの名無しさん:04/11/11 20:02:33
なんか>>1のスレッド紹介がバージョンアップしてるな。
羊頭狗肉になりそうな気もするが…

28 :M.B.:04/11/11 22:39:12
M.B.==20
いきなりコアな話だが、変数スコープの扱いにだけは気をつけれ。
「funarg問題」でググると出てくる。

29 :デフォルトの名無しさん:04/11/11 23:58:08
LISPってかなり、マニアックな言語だと思うんだけど(学術的に)
LISPを勉強するメリットって何かありますか?


30 :デフォルトの名無しさん:04/11/11 23:59:31
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Lisp

31 :デフォルトの名無しさん:04/11/11 23:59:49
実装が楽なので最初はいいかもね>LISP

32 :デフォルトの名無しさん:04/11/12 00:22:34
インタプリタのLISPはイー−ッパイあるけど
LSIPコンパイラについてはソースやら情報やらは見つけきらなかったですよ。

LISPじゃないけどSchemeのシステムで前に面白そうなのあったよ
http://tanaka-www.cs.titech.ac.jp/sinpro/Japanese/minutes/010425/okumura.pdf
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&q=Scheme%E3%80%80%E5%82%80%E5%84%A1

Rubyとくらべてどうするんべさぁ(笑

33 :デフォルトの名無しさん:04/11/12 00:35:22
25歳、LISPを勉強するまでは金無し君だったけど(ry


34 :デフォルトの名無しさん:04/11/12 00:42:41
素人丸出しで悪いが
インタプリンタとかって結局
int * code_ptr

Func_CPU{
swithc{
// add byte
case 0x0000:
*code_ptr+1 += *codo_ptr +2;
codde_ptr+=2;
break;
// sub byte
case 0x0001
*code_ptr)+1 -= *codo_ptr +2;
codde_ptr+=2;
break;
 ・・・

とかして命令とその後ろデータを置いといて
CPUが実際に演算するような関数を作ればと
思ったんですが実装では遅くなりそうですが
もっと良い実装方法はありませんか?

35 :M.B.:04/11/12 00:43:04
>>29
LOGO と同じくらい簡単。本当に、小学生でも大丈夫。
いろんなオマジナイを書かなくても、
電卓なみに簡単に使える。こういう言語でメジャーな言語は
Lisp と FORTH くらい。
OR や AND が制御文っつーのも目からウロコ。
教育用には Pascal と Lisp と FORTH はかなり向いているので、
Java でインタプリタ書いておくといいかも。
ちなみに FORTH インタプリタは、正味一日あれば書ける。

36 :デフォルトの名無しさん:04/11/12 00:46:03
>>32
lisp ていうか scheme のコンパイラネタはここから辿ってみるのはどうでしょ。
知ってたらごめんね。
ttp://library.readscheme.org/page8.html

37 :デフォルトの名無しさん:04/11/12 00:48:57
連投すまないけどコードが間違ってたので

int * code_ptr

Func_CPU{
swithc(*code_ptr){
// add byte
case 0x0000:
*code_ptr+1 += *code_ptr +2;
code_ptr+=2;
break;
// sub byte
case 0x0001
*code_ptr+1 -= *code_ptr +2;
code_ptr+=2;
break;
 ・・・


です。
こうやって命令とデータを配置してCPUの演算のような
関数を作って、そこで計算さえる方法だと実際に
他の関数内で演算をさせるより実装が遅くなりそうなんですが
もっと速い実装方法がありますか?


38 :M.B.:04/11/12 00:49:42
>>34
Java の「中間コード+仮想マシン」方式が、
なんだかんだいっても一番実際的。
USCD の p-System とか、BCPL の IntCode とか。
とりあえずこの方式で動かしてみて、
「遅い」と思ったら javaCC なり BISON なりに
乗り換えるのが実際的。
何より移植が楽だしな。

39 :デフォルトの名無しさん:04/11/12 00:53:00
byte * code_ptr

Func_CPU(){
swithc(*code_ptr){
// add byte
case 0x0000:
*code_ptr+1 += *code_ptr +2;
code_ptr+=3;  // 3byteだけポインターを動かす
break;
// sub byte
case 0x0001
*code_ptr+1 -= *code_ptr +2;
code_ptr+=3;
break;
 ・・・


>>USCD の p-System とか、BCPL の IntCode とか。
これは知らないので調べてみます

JAVAの実装方法が載ってる本でもあるのでしょうか?
自分もそういった本が欲しかったので探したのですが
見つからなかったので・・・

40 :デフォルトの名無しさん:04/11/12 00:53:25
LISPのlambda知っとくだけでかなり変わるよなあ
Cでコールバック関数別途用意するとかがアホらしくなる
JavaScriptはその辺のLISPの良い所をうまく抽出した言語

41 :デフォルトの名無しさん:04/11/12 00:59:56
忘れてるよ

以下未整理とネタ

shuJIT (JITについて)
http://www.shudo.net/jit/index-j.html

ギコBASIC
C言語版
http://page.freett.com/gikob/gikobw00047.zip
C++版
http://page.freett.com/gikob/gbtl-beta3.zip

計算機能論ホームページ
(消えているので、どうしても見たければarchive.org等を利用する事)
http://buri.sfc.keio.ac.jp/~yosuke/keisan-kino-ron/index.html

YACC link
http://www2.dewa.or.jp/rock/camp/yacc/whatyacc.htm

42 :デフォルトの名無しさん:04/11/12 01:00:51
>>39
switch使うと1命令毎のジャンプが2回発生するし、
関数テーブルにすると関数呼び出しで時間が掛かる。
C言語で書こうとすると効率はあまり良くならない。

こういった技術にdirect threaded codeというのがあって、
gnu forthの実装などで使われているらしい。
gccにはこのために用意したとしか思えないラベルを変数に格納できる
という拡張機能があって、うまく使うとswitchや関数より効率が良いVMが作れる。

VM() {
static void *op[] = {&&op1, &&op2, &&op3} ;
goto *op[pc++];
op1:
//・・・
goto *op[pc++];
op2:
//・・・
goto *op[pc++];
op3:
//・・・
goto *op[pc++];
}

これでswitchの倍程度は速くなる。

43 :デフォルトの名無しさん:04/11/12 01:04:23
あ、上はindirectだった
directの場合は↓

VM() {
static void *op[] = {&&op1, &&op2, &&op3} ;
void *pc = op;
goto *pc++;
op1:
//・・・
goto *pc++;
op2:
//・・・
goto *pc++;
op3:
//・・・
goto *pc++;
}

これでindirectよりも数割ぐらい効率がよくなる。
実際使う時はopの中身を実行する順に並べればいい。


44 :デフォルトの名無しさん:04/11/12 01:08:41
>>42
なるほど、VM(CPU部分)を呼び出さずに、
命令コード毎、関数内でGotoを使って飛ばしていけばいいのですね

確かにこっちの方が速いですね。

45 :デフォルトの名無しさん:04/11/12 01:08:52
>>36
   彡´⌒ヽミ
   (´・ω・`)   知らなかったでし。
    (つ甘と)    親切にどうも。
    `u―u´

46 :デフォルトの名無しさん:04/11/12 01:13:17
>>41
ギゴBASICみる限り、自分が考えた設計と同じですね

来週から1週間掛けて、スクリプトを作るつもりです。


47 :デフォルトの名無しさん:04/11/12 01:16:16
>>42
これ他の言語にも欲しいよね、インタプリタ作るにはもってこいの機能で、
アセンブラで書けば一発なのに、高級言語では全く書けない。

48 :デフォルトの名無しさん:04/11/12 03:58:44
>>42
gccにテーブルジャンプ書く機能あるなんてしらんかった。
自分のVMを書き換えてみるよ、ありがとん。


49 :M.B.:04/11/12 08:40:20
>>39
×USCD
○UCSD (カリフォルニア州立大学サンディエゴ校)

BCPL については
リチャーズ&スティーヴンズ
『BCPL 言語とそのコンパイラ』共立出版

50 :デフォルトの名無しさん:04/11/12 21:50:40
>>42のようなのはVCではできんのかぇ?

51 :M.B.:04/11/12 22:25:59
>>50
VCでできるかどうかはワカランけど、
BASIC では定跡とのこと。

52 :デフォルトの名無しさん:04/11/12 22:52:52
はぁ?

53 :デフォルトの名無しさん:04/11/12 23:06:16
26歳、VMを覚えるまでは金無し君だったけど(ry


54 :デフォルトの名無しさん:04/11/12 23:36:08
マジお勧め。

55 :デフォルトの名無しさん:04/11/12 23:42:35
bignumのライブラリでよさげなのないですか?
ライセンスとか面倒なのは避けたいので
DLL形式で使えるとうれしい。

56 :デフォルトの名無しさん:04/11/13 00:23:10
アフォ?
ライブラリでもライセンスは関係する罠w


57 :デフォルトの名無しさん:04/11/13 00:35:36
M.B. age sugi

58 :M.B.:04/11/13 00:39:06
>>57
sage ?

59 :M.B.:04/11/13 09:37:42
いま Java で Lisp を書こうとして、禿死苦悩んでいる。
atom や car や cdr は List クラスのメソッドにするとして、
read/write や eval って何のメソッドにするんだ?
入出力ストリームを extend して List を扱えるようにするのか?
ListProcceser とかいうクラスを定義して eval メソッドを実装するのか?
なんやらオブジェクト同士のつかみ合いみたいになって、
設計が綺麗くなんないんだが。

60 :デフォルトの名無しさん:04/11/13 10:28:53
つまんないことで悩んでるな。
Lispとしての関数と、それを実装するJavaでの話は全く関係ないよ。

簡単なLisp処理系のソースを読んでみることを勧める。
そうすればシンボルテーブルの概念も掴めるだろう。


61 :60:04/11/13 10:47:54
殴り書き。

class LispObject { ...}
class LispCons extends LispObject {...}
class LispSymbol extends LispObject {...}
class LispNumber extends LispObject {...}
class LispString extends LispObject {...}
class LispFunction extends LispObject {...}

class LispInterpreter {
Hashtable obarray;

public LispObject eval(LispObject form) throws LispError {
if (form.isAtom()) {
return (form.isSymbol() ? ((Symbol)form).getValue() : form);
} else if (isList(form)) {
func = ((LispCons)form).getCar();
if (func.isSymbol()) {
func = func.getFunction();
if (function == null || !function.isFunction()) {
throw LispError(略);
}
} else {
func = createLambdaFunction(func);
}
return callFunction((LispFunction)func, form.getCdr());
} else {
throw LispError("form is not a list.", form);
}
}


62 :60:04/11/13 10:50:11
殴り書きその2。

LispObject callFunction(LispFunction func, LispObject args) throws LispError {
int len = getListLength(args);
if (len < func.getMinArgs() || (func.getMaxArgs() != null && len > func.getMaxArgs())) {
throw LispError(略);
}
argsarray = new LispObject[len];
// コード略。引数をargsarrayにコピー。maxargsに足りなきゃnullで埋める。
func.call(argsarray);
}

void initialize () {
defineFunction("car", new LispFunction_car());
defineFunction("eval", new LispFunction(1,1) {
LispObject call(args) { return eval(args[0]); }
});
// ...
}
void defineFunction(String name, LispFunction func) {
LispSymbol sym = intern(name);
sym.setFunction(func);
}


63 :60:04/11/13 10:51:23
その2訂正: s/nullで埋める/nilで埋める/
その3。

LispSymbol intern(String name) {
Obj s = obarray.get(name);
if (s == null) {
LispSymbol sym = new LispSymbol(name); obarray.put(name, sym); return sym;
} else {
return (LispSymbol)sym;
}
}

class LispFunction_car extends LispFunction {
LispFunction_car() { super(1,1); } // minargs, maxargs
LispObject call(LispObject[] args) throws LispError {
if (args[0].isCons()) { return ((LispCons)args[0]).getCar(); }
else { throw LispError(略); }
}
}


64 :60:04/11/13 10:55:09
しまった、関数かマクロかで判別して、関数のときは先に引数を評価するんだった。
直すのマンドクセ。


65 :デフォルトの名無しさん:04/11/13 12:08:03
ここはお前の日記帳じゃねえんだ(ry

66 :60:04/11/13 14:32:11
いやなに、59の参考にでもなればと思って。


67 :デフォルトの名無しさん:04/11/13 19:14:06
SICPの「メタサーキュラ・インタプリタ」の章を嫁.
あそこのコードは素のSchemeでなくOOPLだったらもっと簡潔に書ける.

68 :デフォルトの名無しさん:04/11/13 19:44:06
> メタサーキュラ・インタプリタ
関係ないが、この言葉を見るとprologスレの論争を思い出す。
結局誰が正しかったのかな。

69 :デフォルトの名無しさん:04/11/13 19:56:15
>>68
論争って何?

70 :デフォルトの名無しさん:04/11/13 20:54:20
記録自体はもぅ何年も前のものなのに
そのまま生々しく残ってて痛々しいよね。

71 :デフォルトの名無しさん:04/11/13 21:07:36
まぁ、プロログ、リスプと言ってる時点で
実用的なプログラムを書いていない証拠だなw


72 :デフォルトの名無しさん:04/11/13 21:11:15
>>71
煽りならよそへ池

73 :M.B.:04/11/13 21:32:01
設計で悩んでたら、eval 以外の関数だけで半日潰れちまった

甘かった _| ̄|○

74 :デフォルトの名無しさん:04/11/13 21:44:00
今週は>>21
http://www.laplata.ne.jp/javalisp/
でも読んで、雰囲気つかんだ後、
来週の週末あたりに携帯Lispでも開発したら・・?

75 :M.B.:04/11/13 22:21:45
あれは邪道。LinkedList なんぞ使っちゃイカン。
結局 eq と equal の区別ができなくなって詰まってる。
現在、
中西正和『Lisp入門 システムとプログラミング』近代科学社
黒川利明『LISP入門』培風館
竹内郁雄『初めての人のためのLISP』サイエンス社
を読みながら悪戦苦闘中。

76 :M.B.:04/11/13 22:28:36
>>71
> まぁ、プロログ、リスプと言ってる時点で
> 実用的なプログラムを書いていない証拠だなw
まぁ、tsv や XML で間に合う仕事をしてる香具師には
無縁な話なのだがね。それが悪い訳ではまったくないが。

77 :デフォルトの名無しさん:04/11/13 22:29:07
なんかキチッとしたもの作り込んでるみたいなんで
完成したらサイトも作ってアップして下さい。

78 :デフォルトの名無しさん:04/11/13 22:30:53
>>75
まあ本人の自由だろうけど、そういうレベルの人が言語処理系について
知ったような口をきくのはどうかと思う(>>35とかね)。

79 :デフォルトの名無しさん:04/11/13 22:37:23
>>78
象牙の塔の中で言語論争してるわけじゃないからイイでし。
ここは78さんのために用意された花園でも、まして法廷でもないし。

そういうことをPrologスレを眺めてオモタ。

80 :デフォルトの名無しさん:04/11/13 22:38:32
>>78
お前何様だよ(^^;

81 :M.B.:04/11/13 22:53:41
>>78
前回 Lisp を書いたときは、
言語が FORTRAN (「大文字のフォートラン」、つまり60)で、
しかも再帰呼び出しが使えないので
(なにせ関数呼び出し用のスタックがなく、レジスタに直接
割り当てていたので、7層までしか使えない)、
プリプロセッサの皮を被せて「再帰呼び出し可能なFORTRAN」を
実現し(RATFOR みたいなもんだ)、その上で LISP を書いて、
その上に機械翻訳システムを実現したもんだ。

とはいえ N88 BASIC 上に LISP も PROLOG も実装したことがあるのだが
内部構成が全然思い出せない _| ̄|○

82 :M.B.:04/11/13 23:00:18
なんか思い出してきたぞ。
あのころはメモリが少なくて実用的なプログラムが書けるような環境が
立てられなかったのと、LISP はあくまで数式処理なんかに使う
ツールでしかなかったので、動いたところで「こんなん使えねーや」
っつーんで捨てちゃったんだ。
今なら Java で Lisp インタプリタ書いて、その上で Prolog の処理系
(Lisp で六百行くらい)を動かしても十分実用になる。
いい時代になったもんだ。

83 :デフォルトの名無しさん:04/11/13 23:11:49
だからさあ
ここはお前の日記帳じゃねえんだ>MB
つーかRATFOR出てくるなんていつの時代の人間だよ
>>75の文献も古すぎだぞ
古い本見ながら中途半端なLISP作るより
R5RSでも読んでScheme覚えたほうがいい

84 :デフォルトの名無しさん:04/11/13 23:22:57
>>83
別にいいじゃん、興味ないから読んでないけど(汗
まあ内容はここに一応ふさわしい。
極めてスレ違いな言語論争で埋め尽くされるよりマシ。


85 :デフォルトの名無しさん:04/11/13 23:24:27
スモールコムパイラを作ろうのねーちゃんは何歳だ?

86 :デフォルトの名無しさん:04/11/13 23:26:11
10さい

87 :M.B.:04/11/13 23:27:01
>>83
> つーかRATFOR出てくるなんていつの時代の人間だよ
知ってんじゃねーか。

88 :デフォルトの名無しさん:04/11/13 23:33:31
>>57 プンスカプー。

89 :デフォルトの名無しさん:04/11/13 23:35:10
コンパイラ

コンバイナ

コンバンワ
の区別が出来ない人がいるのですが、どうしたらいいですか。

90 :デフォルトの名無しさん:04/11/13 23:35:25
そういえば某スレにこんなのがあったなぁ
#include <stdio.h>
#include <stdlib.h>
int b[2<<16],f,g,i,n;char*p,l[103][80],c[80],*q,*r,x;S(){for(;*p==32;++p);}T(){
for(r="GET \0OTO \0PUT \0RUN\0 QUIT\0IF"+5*n++;*r&&*r==*p;++r)++p;return!*r&&(S
()|1);}I(){g=atoi(p);return*p-48?g?g:b[*(short*)p]:g;}main(){for(;;){gets(p=l[i
=100]);while(i<101){n=0;S();g=atoi(p);if(*(q=p)==48||g)for(p=l[g],q+=3;*p++=*q
++;)i=101;else p=!*q?l[++i]:T()?printf("?"),gets(c),b[*(short*)p]=atoi(c),l[++i
]:T()?l[i=I()]:T()?printf("%d\n",I()),l[++i]:T()?l[i=l[100][0]=0]:T()?exit(0),0
:T()?I()?p+3:l[++i]:(61-q[2]?puts("ERR"):(p=q+3,f=I(),x=p[2]-43,p+=3,g=I(),b[*(
short*)q]=x?x-2?x+1?x-4?x-17?x-19?x+10?x-18?x+6?f:f%g:f==g:f!=g:f>g:f<g:f/g:f*g
:f-g:f+g),l[++i]);}puts("OK");}}

91 :デフォルトの名無しさん:04/11/13 23:36:51
ネタはマ板でやると喜ばれます

92 :デフォルトの名無しさん:04/11/13 23:49:01
まぁ、LISPなんぞ哲学みたいなものだ。

つまり、概念なりを学には大変よい言語だが、
実用的な価値は、ほぼゼロに近いw


93 :デフォルトの名無しさん:04/11/13 23:52:10
>>92
言語論争は死滅スレでやると喜ばれます、死ね


94 :デフォルトの名無しさん:04/11/13 23:52:49
hai hai

95 :M.B.:04/11/14 00:21:32
>>88
正直スマンカッタ orz

96 :デフォルトの名無しさん:04/11/14 00:33:20
>>94 > >>92 でしョ。

>>95
あんた熱くなると八兵衛(ry

MBのFortran話で
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&q=%E4%BC%8A%E7%90%86%E6%AD%A3%E5%A4%AB%E3%80%80%E9%AB%98%E9%80%9F%E8%87%AA%E5%8B%95%E5%BE%AE%E5%88%86%E6%B3%95
を思い出した。 哲学とも高尚な抽象概念とも関係ない使い道の例だお。







97 :M.B.:04/11/14 00:46:20
>>96
「親分! てぇへんだ!」
「おいおい、どうしたんだ八」
「まぁまぁ八兵衛さん、朝御飯はお済みになったの?」
「すんませんお内儀さん、ってそれどころじゃ無ぇんで。
大川にお六字が……」

98 :M.B.:04/11/14 00:48:35
>>97
……ってこんだけネタ振っといて八兵衛じゃなくて八五郎だ

またやっちまった _| ̄|○

99 :デフォルトの名無しさん:04/11/14 01:11:08
コテハンってどうしてこんな(ry

100 :デフォルトの名無しさん:04/11/14 01:12:52
100get!!!!!

101 :デフォルトの名無しさん:04/11/14 11:45:12
煽り以外で >>92 に反論できる LISPer は居ない?


102 :デフォルトの名無しさん:04/11/14 11:52:29
誰かあの文章を紹介してやれよ。「普通のやつらを作り出せ」とかいうやつ。

103 :デフォルトの名無しさん:04/11/14 12:02:47
と、LISPのことが気になって仕方の無い>>101が語られました。

104 :M.B.:04/11/14 12:06:43
>>101
数式処理は Lisp 以外の言語で書く気がせん。
これで十分。
……つーか Mule があるじゃん。あれって Lisp だろがよ。

105 :デフォルトの名無しさん:04/11/14 12:12:10
竹内郁雄さんが
新しいマシンを開発するときは
その上に Lisp を実装すると非常に楽だと
bit の連載(TAO かなんかの開発の話)に書いてたな。

106 :デフォルトの名無しさん:04/11/14 12:26:25
その辺にしておくべし。 LISPのことばっか喋ると
怠け者の>>101がまた荒らしで知識を得ようと熱くなる。

結局スレに迷惑かかる。多様な話題のほうが楽しいし。

107 :デフォルトの名無しさん:04/11/14 12:38:50
>101
これ以上LISPerを呼ぶなよ

108 :デフォルトの名無しさん:04/11/14 13:59:01
LISPer は独自スレを立てれ。

109 :デフォルトの名無しさん:04/11/14 14:01:04
つーかLISPスレ立ってるだろ

110 :デフォルトの名無しさん:04/11/14 14:04:02
処理系依存でない LISP スレが・・・ナイ!

111 :デフォルトの名無しさん:04/11/14 14:06:15
LISPerは自体は構わんよ、下らん言語論争やフレームの元になるような事を書く奴さえこなければ。
このスレは実装技術のスレだ、個々の言語の良し悪しや独善的思想はフレームの元、

>>104
そういう奴にレスを付けると百害あって一利ないから一切書くな。
どうしてもレスを付けたければ死滅スレを立ててそこでやれ

112 :デフォルトの名無しさん:04/11/14 14:16:05
連想配列って意外に不便。
キーワードのスペル間違えてデバッグに半日。
型なし言語も意外に不便。
評価しそこなってデバッグに半日。
PerlとPHPのソースコードレベルの検証ツールをキボンヌ

113 :デフォルトの名無しさん:04/11/14 14:22:25
LISPのエンジン設計の話しはスレ的に歓迎なんだが・・・

LISPが気になるくせに「コンパイラ・スクリプトエンジン」の相談ができないのが頑張ると
言語論争の話題しか提供できなくてフレームの種を蒔くことになる。

114 :デフォルトの名無しさん:04/11/14 14:25:46
>相談ができないのが頑張ると

個人のレベルにイチャモンつけるようなのは良くないよ
最初はみんな初心者

115 :デフォルトの名無しさん:04/11/14 14:35:06
>>101 >>92
↑わざわざこのスレにきて学ぶ姿を見せつける美しい初心者の例

116 :デフォルトの名無しさん:04/11/14 14:39:18
友達いないだろう?
死ねば〜

117 :デフォルトの名無しさん:04/11/14 14:44:17
LISPは変換が面白いと思うよ
(define (f proc) (proc #t))
(f (lambda(x)(if x 0 1)))

((lambda(proc)(proc #t))(lambda(x)(if x 0 1)))

((lambda(x)(if x 0 1)) #t)

(if #t 0 1)

0

コンパイラに渡すまでもなくこれぐらいの変換はユーザー関数レベルで可能なとことか
まあコンパイラ自体もユーザー関数レベルで書けるけど

118 :デフォルトの名無しさん:04/11/14 14:47:02
>>112
インタープリタ系言語はインタラクティブな環境があると開発しやすい。
自分で作った言語処理系もってるけど、そういう環境ができるまでは至極面倒だった(某ゲームの移植性をあげるために中間コード使っただけなのであんまり良いものじゃないけど)
perlはデバッグモードがあるが、phpはお手軽な環境が無いから面倒になったんだろう。
だいたい連想配列のキー間違いなんざインスペクタ使えば一発で解りそうなもんだよ。


119 :デフォルトの名無しさん:04/11/14 15:04:04
>>118
いや、漏れはPerlからJavaに乗り換えたのでモウマンタイなのだが、
「CGIはPerlかPHP」って頭っから信じてる香具師がいて
そいつが管理してるプロジェクトからブツが上がってこないんで
迷惑してるんだが、下っ端のプログラマーに聞いてみると、
どうやらソースが荒れてて手がつけらんなくなってるらしいのだ。
かといって開発ツールを導入するのにも消極的なのだ。
だから、なんかしらソースコードレベルで適用できるツールはないもんかと。

120 :デフォルトの名無しさん:04/11/14 15:14:36
PerlUnit

121 :デフォルトの名無しさん:04/11/14 15:19:17
ここで聞く内容じゃないね

122 :デフォルトの名無しさん:04/11/14 16:37:38
Ruby以外の言語は糞・

123 :デフォルトの名無しさん:04/11/14 16:53:22
eval.c を読んでから言え。

124 :デフォルトの名無しさん:04/11/14 20:25:46
LISPer ですが、何か?


125 :デフォルトの名無しさん:04/11/14 20:30:01
RubyはRecursive Decentでつか?

126 :デフォルトの名無しさん:04/11/14 20:32:33
Ruby >>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Lisp

127 :デフォルトの名無しさん:04/11/14 20:32:51
>>125
ソース読んでないけどLALR(1)じゃなかったっけ?

128 :デフォルトの名無しさん:04/11/14 22:05:42
emacs の弱点の1つがlispだったり擦るわけだがw


129 :デフォルトの名無しさん:04/11/14 22:16:27
>>128
http://pc5.2ch.net/test/read.cgi/unix/1091212668/
        (戻ってこない方向で)

130 :デフォルトの名無しさん:04/11/14 23:44:57
Emacsは元々LISP用のエディタだったんだろ?
逆にLISPだからこそここまで生き残ったとも言える。

S式嫌いならフロントエンド作ればいいだけの話な気がするけど、
>>129のスレはそういうことじゃないみたいだな。
emacsとviがUNIXのイメージを悪くしたのは確かな様だ。

131 :M.B.:04/11/14 23:53:31
>>130
> emacsとviがUNIXのイメージを悪くしたのは確かな様だ。
現在でも UNIX 上で動くエディタの標準は emacs 互換の Mule。
「テトリス」と並ぶ有名なゲーム「rogue」の操作は vi 互換。
それを言うなら「emacs派とvi派の対立が」だろうと思うが、
実際には棲み分けができていたように思われ。

132 :デフォルトの名無しさん:04/11/15 00:33:50
>>8
>●スモールコンパイラの制作で学ぶプログラムのしくみ
>http://www.cbook24.com/bm_detail.asp?sku=4774121770

目次とサンプルコード来てた。

http://www.gihyo.co.jp/books/syoseki.php/4-7741-2177-0

tiny scheme 読もうと思ってから早1年、何にもてに付けてねーや・・・。

133 :デフォルトの名無しさん:04/11/15 00:45:58
いろいろ勉強してたけど、そろそろネイティブバイナリも吐ける
コンパイラを作ろうかなって気になったよ。
なんつーか、コンパイラ作成って楽しいな。

134 :デフォルトの名無しさん:04/11/15 01:03:12
石田綾ってなにもの?
過去の実績を知りたい。

135 :M.B.:04/11/15 01:03:51
>>133
つーか言語処理系の開発って、
(゚∀゚)イイ!

136 :デフォルトの名無しさん:04/11/15 02:11:54
>>134
ttp://www.pureadult.co.jp/whtml/ishidaaya.html


137 :デフォルトの名無しさん:04/11/15 19:01:23
再帰下降は仕組みが簡単だし最強っぽいのですがなんで
LALRやらLLやらを使うコンパイラが多いのですか?

138 :デフォルトの名無しさん:04/11/15 19:03:31
>>132
何その痛いサンプルコード

139 :ほんたま:04/11/15 20:16:29
おみゃ〜らよ、HSPはメニューつくれるのか?
おみゃ〜らよ、HSPのヘルプに目を通したが、命令語の一覧眺めたが、メニューつくる命令はないっぽかったが、どうか?
おみゃ〜らよ、Windowsソフトってメニューはつきものだろう?
そのWindowsソフトをつくるHSPにメニューをつける命令がないのはどういうこっちゃ?
おみゃ〜らよ、しゃくせんのあるけん、どうじ?


140 :デフォルトの名無しさん:04/11/15 20:27:52

誤爆??

141 :デフォルトの名無しさん:04/11/15 20:28:17
>>132
何かが間違っている気がする

142 :デフォルトの名無しさん:04/11/15 20:28:18
HSPスレに逝け

143 :デフォルトの名無しさん:04/11/15 21:10:34
>>137
再起下降では解析できない文法があるから。自分でLALRとか書いてるじゃん。

144 :デフォルトの名無しさん:04/11/15 21:12:05
>>137
LL の文法を解析するパーサが再帰下降型パーサだが……

上昇型パーサを使うのは LL よりも広い範囲の文法を効率よく扱えるから。
LL だと、たとえば四則演算を次のように書くと左再帰を含むためアウト。

E -> E '+' T
T -> T '*' F
F -> '(' E ')'

ちょっと頑張れば LL に書き直せるけど、よけいな非終端記号が増えて
面倒な上、文法が直感的でなくなる。そんな機械的な作業はプログラムに
任せたいっしょ?

145 :デフォルトの名無しさん:04/11/15 21:37:52
>>132
目次を見たときは結構いい構成になってると思ったけど,
ソースコードはかなり苦しいな
本の限られたスペースに載せるにはああしなきゃ
いけないとか決まりでもあるんだろうか?




146 :デフォルトの名無しさん:04/11/15 22:18:11
>>144
再帰下降型というのは、LLじゃなくてrecursive decentの事です。
LLは下降型ですが再帰下降とは別物じゃないですか?

147 :デフォルトの名無しさん:04/11/15 22:20:29
でも結局左再帰の問題はつきまといそうですね。
だから難しい上昇型使うのですね。

148 :デフォルトの名無しさん:04/11/15 22:21:03
再起加工って文法の名前なのか?

149 :デフォルトの名無しさん:04/11/15 22:22:40
>>132のコードも別に普通の手書き再帰下降パーサですよね。
なんか問題有るんですか?

150 :デフォルトの名無しさん:04/11/15 22:28:44
LL(k)の事を再帰下降って言ってるだけ?

151 :デフォルトの名無しさん:04/11/15 22:35:55
再帰下降は下降型解析法(LL)のやりかたの一つ
一度コンパイラの本でも読め

152 :デフォルトの名無しさん:04/11/15 23:22:31
LL(k), LR(k), LALR(k) etc. は *文法の* 種類分け.
Recursive Decent, Top-down, Bottom-up etc. は *解析方法の* 種類分け.
LLはTop-down(特にRecursive Decent)と,LR(LALR含む)はBottom-upと相性がよい.
このPDFでも嫁 っ[ ttp://www.cs.vu.nl/~dick/PTAPG.html ]

153 :デフォルトの名無しさん:04/11/15 23:37:06
ありがとう。読んでみる。

154 :デフォルトの名無しさん:04/11/15 23:41:07
まぁ、口ばかり達者な奴がいるみたいだが(例 >>138 >>145
それほどの実力の持ち主なら、
そちら様の完成コードでも拝見さしてもらいましょうかな?


155 :デフォルトの名無しさん:04/11/15 23:47:01
>そちら様の完成コードでも拝見さしてもらいましょうかな?
>そちら様の完成コードでも拝見さしてもらいましょうかな?
>そちら様の完成コードでも拝見さしてもらいましょうかな?

156 :デフォルトの名無しさん:04/11/16 00:27:32
>>154
pやらGやらVやら何って感じだが、
それよりなにより是非って( ゚д゚)ポカーン
基本的な日本語が使えてない。
コード以前に中学の国語あたりをやり直せ。

157 :デフォルトの名無しさん:04/11/16 10:08:07
>>152
LL(k)構文解析で解析できる文法をLL(k)文法っていうんじゃないの?

158 :デフォルトの名無しさん:04/11/16 11:36:13
>http://www.cbook24.com/bm_detail.asp?sku=4774121770
監:中田育男

法政の学生?
本人が見ることもあるかもしれないから書くけど、
体を表す名前を付けることを身につけてほしい。

CellG=lexer
CellK=parser
CellV=仮想マシン
らしいけど、もしそうなら、
Lexer, Parser, VirtualMachine といった名前を付けるべき。
記号表のエントリにはTableEntryといった名前をつけるべきで、
Tableという名前を付けてはいけない。

読んで分かりやすいプログラムを書くのは
ある程度プログラムを読んだり書いたりの
経験がないと難しいだろうけど、ガンガレ。
あと、配列じゃなくてListを使うとか、
文字リテラルはinternしなくていいとか
もうちょっとJavaを勉強しよう。

159 :デフォルトの名無しさん:04/11/16 12:27:09
http://www.amazon.co.jp/exec/obidos/ASIN/4254121393/249-6122590-2043526
中田育男はこれ書いた日本のコンパイラ最適化の第一人者ですな

160 :158:04/11/16 12:54:42
著者が中田先生の下の学生かと思ったです。

161 :デフォルトの名無しさん:04/11/16 12:58:37
G…Gikukaiseki
K…Koubunkaiseki
V…VM
これくらい想像できないようでは現場のコードは読めないぞ

162 :デフォルトの名無しさん:04/11/16 12:58:50
”コンパイラの最適化”と”アーキテクチャごとのコードの最適化”は、
考え方のレイヤが違いますよね?
やはりコンパイラを作成する場合、ターゲットとなるアーキテクチャに対しても
詳しくないと本当の意味での最適化コードは作成できない??

163 :デフォルトの名無しさん:04/11/16 13:00:35
>>161
マジですか?!

164 :デフォルトの名無しさん:04/11/16 13:05:21
>>162
だいたい同じPentiumでも種類ごとに適した最適化手法が違うし

165 :デフォルトの名無しさん:04/11/16 13:07:11
定数値の最適化やら誘導変数の最適化やらはCPUが何だろうができると思うが。

166 :デフォルトの名無しさん:04/11/16 13:37:15
>>165
???

167 :デフォルトの名無しさん:04/11/16 14:01:27
>>165
君は>>162を100回読み直したまえ。

168 :デフォルトの名無しさん:04/11/16 15:59:29
>>158
そういう小姑みたいな性格は何処に行っても嫌われますよ〜


169 :デフォルトの名無しさん:04/11/16 16:20:39
Gokiburi
Kokkurochi
Varusan

170 :デフォルトの名無しさん:04/11/16 19:23:36
>>168
嫌ってくれて構わんよ

171 :折れ目も:04/11/17 21:26:53
なぜ Threading Code なのか?
http://www.kt.rim.or.jp/~tyamamot/forthj/threaded-codej.html

マイクロベンチ.興味深い.
http://www.complang.tuwien.ac.at/forth/threading/
Pentiumならsubroutineが速い


172 :デフォルトの名無しさん:04/11/17 22:01:45
>Pentiumならsubroutineが速い
そりゃそうだろ(w



173 :デフォルトの名無しさん:04/11/19 04:25:54
著作権は大丈夫なのでしょうか, 2004/11/02
レビュアー: カスタマー   帯広市 Japan

JavaのVM向けのコードを生成する簡単なコンパイラが乗っているというので買いました。
非常に参考になると思います。
ただ、よけいなことかも知れませんが、この本の構文解析の部分は、中田育男著の「コンパイラ」の本と、
例題や説明までほとんど同じなので驚きました。
著作権の方は大丈夫なのでしょうか。

174 :デフォルトの名無しさん:04/11/19 11:56:19
ガクガクブルブル

175 :デフォルトの名無しさん:04/11/19 18:58:26
中田先生監修だからなあ。

176 :デフォルトの名無しさん:04/11/20 02:21:01
>>175
それどころか前書き見たいのも中田先生が書いてた

177 :デフォルトの名無しさん:04/11/20 08:03:00
弟子が中田先生の本の改訂を引き受けた、ってことでFA?  印税山分けだったりして

178 :デフォルトの名無しさん:04/11/20 08:10:05
石田綾なんて人間ははじめから居なかったっつうことだろ

179 :デフォルトの名無しさん:04/11/20 09:24:53
>>178
するどいな

180 :デフォルトの名無しさん:04/11/20 18:03:52
始めて読むコンパイラ本としてはいかがですか?


181 :デフォルトの名無しさん:04/11/20 18:54:34
ところで、最適化の話なんだけど、
ドラゴンブックにある「基本ブロック」
っていう考え方って、何かセンス悪い気がしない?

基本ブロックだろうが、大域的構造だろうが
同じ「グラフ」なんだから、それらを区別せず
統一的に扱って最適化を施すのが、
筋の通った考え方だと思うんだけど。

ま、確かに「基本ブロック」内だけで考えれば
殆どの問題は簡単になるのは分かるけどさ。

現実のコンパイラでも「基本ブロック」って
いう戦略は、よく使われているんだろうか?


182 :デフォルトの名無しさん:04/11/20 19:53:50
買っちゃいましたorz

183 :デフォルトの名無しさん:04/11/20 20:31:55
本屋で見かけたので買ってきた。中田育男監修の文字を見たからw





184 :デフォルトの名無しさん:04/11/20 21:07:55
本屋に行ったけど見当たらなかった

185 : :04/11/20 23:07:52
http://www.cbook24.com/bm_detail.asp?sku=4774121770
あっという間に品切れになってる。

186 :デフォルトの名無しさん:04/11/21 01:00:00
>>181
基本ブロックが何かわかってないだろ。
基本ブロック自体はグラフそのものじゃなくて、
グラフの節点だぞ。

187 :デフォルトの名無しさん:04/11/21 02:00:45
>>181
コンパイラ書いてみろ。どんなに頑張っても、基本ブロックの概念を使わないコンパイラは、
仮に>>181が天才で、同じ質のコード生成を達成したとしてもコンパイル速度は100倍
遅くなる。更に言えば、基本ブロックの性質を完全に無視するとするなら、同じ質の
コードは生成できない。

最適化ってのはいわゆる難しい問題なので、現在の計算機では残念ながら純粋な
数学のようには取り扱えない。

ついでに言うと、一般のプログラムってのは再帰的な構造を持っていることを考えると、
基本ブロックという概念はむしろセンスが良い。

188 :デフォルトの名無しさん:04/11/21 11:28:26
>>186
基本ブロックの中の人とはリストであり、
すなわち縮退したグラフだと思うけど?

>>187
>同じ質のコード生成を達成したとしてもコンパイル速度は100倍遅くなる。
多分そうだろうと思う。
でも、その手法の「泥臭さ」自体は認るでしょ?

後はそれを「よいセンス」と捕らえるかどうかの差だね。


189 :デフォルトの名無しさん:04/11/21 11:48:13
認るでしょ
認るでしょ
認るでしょ

190 :デフォルトの名無しさん:04/11/21 15:08:21
>>188
> 基本ブロックの中の人とはリストであり、 
> すなわち縮退したグラフだと思うけど? 
細かく分けすぎ。そこまで分けて最適化に役に立つのか?
何のためのグラフか考えてみろって。
語義的には確かに正しいんだが、その反論はちょっと苦しいと思うぞ。

自分も基本ブロックはセンスが良いと思うほうに一票。


191 :デフォルトの名無しさん:04/11/21 18:21:48
相談なのですが、flex,bison とC#を連携させて
言語処理系を開発するとしたら、みなさんなら
どういう実装戦略をとりますか?

192 :デフォルトの名無しさん:04/11/21 19:07:40
Ruby!>>>>>>>>>>>>>>>>>>>>>>>>>>C#

193 :デフォルトの名無しさん:04/11/21 20:15:26
>>191がどんな言語処理系を求めて
開発を始めようとしているのか、まずそれから語るんだ。

194 :デフォルトの名無しさん:04/11/21 20:23:45
>>191
リフレクションで丸ごと生成できないかなと・・・
思っただけ(汗
問題はBNFを何処に書く、というところ?
boostみたいに言語中言語にできれば、シームレスで最高なんですが、
C#のジェネリッククスは果たしてどこまでできるのか?
てところ。
VisualStudio.NET2005でたら、ちょっとアタックしてみよかと思ってます。


195 :デフォルトの名無しさん:04/11/21 20:52:05
えっ?

196 :デフォルトの名無しさん:04/11/21 21:00:56
>>194に手段が目的になってしまっている人をboost病患者と呼びます

197 :デフォルトの名無しさん:04/11/21 21:05:28
>>196
「手段」を作る方法を語るのが目的のスレで何を言う

198 :デフォルトの名無しさん:04/11/21 21:06:22
古くは m4 病患者とも呼んだな。。。

199 :デフォルトの名無しさん:04/11/22 00:07:33
-- かなづちを持つ者には、すべてが釘に見える

200 :デフォルトの名無しさん:04/11/22 00:14:52
                         -- Minamo Narukaze

201 :デフォルトの名無しさん:04/11/22 01:44:54
flex,bison,リフレクション,BNFの記述,boost,…、どれ一つとて実際に
使いこなしてないのまる分かりだぁ。。 (o´C_,`o) ハズカスィ〜

それっぽい用語並べていけば、自発的に連結して
素敵な何かが自然発生する・・・とか、連結方法が思いつかないから
みなさんに『実装戦略』の糸口を聞きにきた、とかか…。 ハ・ス・゙カ・スィ〜

202 :デフォルトの名無しさん:04/11/22 08:59:16
スルーしろよ

203 :デフォルトの名無しさん:04/11/22 09:25:48


204 :デフォルトの名無しさん:04/11/22 13:14:02
>>201
作りたいからやってんだろいいじゃネェか
使いこなしているかどうかは関係ないってしてほしいね

205 :デフォルトの名無しさん:04/11/22 13:44:19
「何」を作りたいのか? (回答例) >>194

頭に浮かんだ抽象像を前に悩む前衛彫刻家みたい

206 :デフォルトの名無しさん:04/11/22 13:55:11
ツチやノミを前にしただけでイッパイ・イッパイなのが見て取れるから
>>196みたいなこと言われるっち。 

207 :デフォルトの名無しさん:04/11/22 13:55:45
>>205
意味不明の煽りヤメレ、フレーム引き起こしたいなら適当な死滅スレにでも逝け

208 :デフォルトの名無しさん:04/11/22 13:57:13
>イッパイ・イッパイなのが見て取れるから
余計な一言


209 :デフォルトの名無しさん:04/11/22 14:21:18
                l   
        /\___/ヽ
        /       :::::::\
       |  ''''''   ''''''   .:::|   / ̄ ̄ ̄ ̄ ̄ ̄ ̄
      |(●),   、(●)、.::::| < 糞スレで余計なこと
       |  ,,ノ(、_, )ヽ、,, .:::::::|   | 二度と聞かねぇょ・・・
       \ `-=ニ=- ' .:::::/   \_______
           `ー`ニニ´-一´ヽ、
          /    _    l
         /  ̄`Y´   ヾ;/  |
______,|    |    |´  ハ
           |    |    |-‐'i′l
            |__ |   _|   7'′
         (   (  ̄ノ `ー-'′\
           ̄   ̄          \




210 :デフォルトの名無しさん:04/11/22 14:25:05
何もできない奴があせる必要もないのに、勝手にあせって人の邪魔をしようと必死なだけ、気にスンナ。

211 :デフォルトの名無しさん:04/11/22 14:28:19
                l   
        /\___/ヽ
        /       :::::::\
       |  ''''''   ''''''   .:::|  
      |(●),   、(●)、.::::| .。oO( プッ
       |  ,,ノ(、_, )ヽ、,, .:::::::|  
       \ `-=ニ=- ' .:::::/  
           `ー`ニニ´-一´ヽ、
          /    _    l
         /  ̄`Y´   ヾ;/  |
______,|    |    |´  ハ
           |    |    |-‐'i′l
            |__ |   _|   7'′
         (   (  ̄ノ `ー-'′\
           ̄   ̄          \


212 :デフォルトの名無しさん:04/11/22 15:57:42
boostってさ、C++の機能だけでなんとかしようとしてるけど
あそこまですんならperlとか駆使すればいいじゃんねえ

213 :デフォルトの名無しさん:04/11/22 16:03:15
>>212
一度使ってみたら?
別ファイルとして扱っていた文法定義ファイルが、
ライブラリーになるという意味がどれだけ重要かわかるよ。

214 :デフォルトの名無しさん:04/11/22 16:05:27
C++でPerlの処理系を書いて丸ごと埋め込むよりは
C++の機能だけで実装した方がネイティブな感じがして(・∀・)イイ!!

215 :デフォルトの名無しさん:04/11/22 16:36:05
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> C++=糞言語 >>>>>>>>>>>>>>Perl=汚物

216 :デフォルトの名無しさん:04/11/22 16:56:45
Rubyは動的評価の手段が文字列をevalするだけだから
このスレ的にはいまいちだろ。やはりLisp >>> Ruby、とか言ってみる。

Lispのほかにも構文木をファーストクラスオブジェクトとして扱える言語は
あるのかな?


217 :デフォルトの名無しさん:04/11/22 16:58:13
Pythoooooooooooooooooooooooooooooooooooooooooooooooooooooon

218 :デフォルトの名無しさん:04/11/22 17:31:26
                l   
        /\___/ヽ
        /       :::::::\
       |  ''''''   ''''''   .:::|  
      |(●),   、(●)、.::::|
       |  ,,ノ(、_, )ヽ、,, .:::::::|  
       \ `-=ニ=- ' .:::::/  
           `ー`ニニ´-一´ヽ、
          /    _    l
         /  ̄`Y´   ヾ;/  |
______,|    |    |´  ハ
           |    |    |-‐'i′l .。oO( プッ
            |__ |   _|   7'′
         (   (  ̄ノ `ー-'′\
           ̄   ̄          \


219 :デフォルトの名無しさん:04/11/22 17:39:59
>>216
誤解があるようです。
Ruby のイテレータメソッドはそんな単純なものじゃないです。

220 :デフォルトの名無しさん:04/11/22 18:01:04
>>219
じゃあどんなもんなの?

221 :デフォルトの名無しさん:04/11/22 18:16:02
>>216とイテレータメソッドに何の関係があるのだろうか


222 :デフォルトの名無しさん:04/11/22 18:32:12
>>217
Pythonの構文木ってLisp使いが考えるようなものじゃないようだから
あてはまらないと思う。

ttp://www.unixuser.org/~euske/doc/python/python-lisp-j.html

の「Lisp プログラマが Python を学ぶときの要点」の12番参照。


223 :デフォルトの名無しさん:04/11/22 18:33:05
>>221
これこそ本物の知ったかって奴

224 :デフォルトの名無しさん:04/11/22 18:54:51
>>223
オレも221と同じ疑問をもってるのでよろしければどういうことか
教えてください。


225 :デフォルトの名無しさん:04/11/22 20:12:37
Ruby以外は糞
死ね

226 :デフォルトの名無しさん:04/11/22 20:36:19
>>225
Rubyの評判を落としたいのか?
それともスレの趣旨が理解できない池沼か?

227 :デフォルトの名無しさん:04/11/22 21:13:41
>>224
これは221に語りかけたものです、ちょっと足らなかったですね
でも、なんでも煽りに見えるのは良くないです。

#つか、そんなスレになっている元凶は死ね、
#いくら煽ったってお前の実力は向上しないし、稚拙でもタコでもやる奴の実力のみが向上するんだよ。
#おまえの行き着く先は何もできない才能も人望も無いロートル爺だ。

228 :デフォルトの名無しさん:04/11/22 21:23:42
       /\___/ヽ                           l   
      /:::::::       \                  /\___/ヽ
     .|:::.   ''''''   ''''''  |   / ̄           /       :::::::\
      |::::.,(一),   、(一)| < >>227         |  ''''''   ''''''   .:::|      
     .|::::::: ノ ,,ノ(、_, )ヽ、,, |  \_          |(●),   、(●)、.::::| .。oO( 心の敵とアツク戦い始めた・・・
      \:::::.ヽ`-=ニ=- ' /                |  ,,ノ(、_, )ヽ、,, .:::::::|       ソッ、としておくべし
     /   `一`ニニ´-,ー´                  \ `-=ニ=- ' .:::::/  
     /  | |   / |                       `ー`ニニ´-一´ヽ、
    /   | |  / | |                      /    _    l
    /   l | /  | |                     /  ̄`Y´   ヾ;/  |
__/    | ⊥_ーー | ⊥_ _____________,|    |    |´  ハ
   |  `ーヽl_l_l.} ヽl_l_l.}                       |    |    |-‐'i′l
  (、`ーー、ィ   } ̄`   ノ                       |__ |   _|   7'′
    `ー、、___/`"''−‐"                    (   (  ̄ノ `ー-'′\
                                   , ̄   ̄          \

229 :デフォルトの名無しさん:04/11/22 21:24:40
2chでなにをムキになってるんだかw

230 :デフォルトの名無しさん:04/11/22 21:57:06
まったりしよう

231 :191:04/11/23 00:51:02
知らぬ間に荒れてるし・・・
え〜とですね。
JavaでLispという企画を読んで、そんなら俺はC#で
Lispみたいに考えただけなんですけど・・・
ガーベジコレクションはC#任せにできるけど
字句解析構文解析で既存の生成系を生かせないかなと
思っただけなんですね、はい
S式ならそんなの必要ないとかそういう突っ込みはなしで
お願いします・・・

232 :デフォルトの名無しさん:04/11/23 02:53:24
↓以後何事もなかったかのようにどうぞ

233 :デフォルトの名無しさん:04/11/23 06:18:36
で、あや本の話はどうなった?

234 :デフォルトの名無しさん:04/11/23 06:19:57
今日大学病院行ってしまい一日仕事休んだから買ってきて読んでみるつもり

235 :デフォルトの名無しさん:04/11/23 08:32:58
あや本のソース見ていると、Javaの書き方じゃないね。
C言語のソースから写しましたって感じだなあ。


236 :デフォルトの名無しさん:04/11/23 11:50:45
JAVA作るのに、JAVAの書き方せんだろ?


237 :デフォルトの名無しさん:04/11/23 11:55:34
haxa?

238 :デフォルトの名無しさん:04/11/23 12:02:50
>>236
ボケの方向があさって過ぎ。

239 :デフォルトの名無しさん:04/11/23 12:22:54
21st Century Compilers
http://www.amazon.com/exec/obidos/tg/detail/-/0321131436/

いつでるの?来年の11月かよ・・・

240 :デフォルトの名無しさん:04/11/23 12:40:07
あや本
http://www.amazon.co.jp/exec/obidos/ASIN/4774121770/


241 :デフォルトの名無しさん:04/11/23 13:18:45
>>235
大学院の実習で作ったプログラムみたいだね。
java.util を使ってないところがすごい。

242 :デフォルトの名無しさん:04/11/23 14:19:04
ヲマイラ何打カンダであやの掌(テノヒラ)の上で転がされてるっす・・

今ごろこのスレみて、あ〜や、印税の計算でニタニタしてるよ・・
               ↓


     曰   ,,-─-、
     | |   [lllllllllll]    卒研の成果物ためしに活字にしたら 
    ノ__丶 |||`_ゝ´|||_    株を買うより楽に儲けれた
     ||日||  丿 ( .| ¢、   
  _ ||本|||/丿  .    ̄丶.)
  \ ||酒||L二⊃ . ̄ ̄\
  ||\`~~´  (<二:彡) \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
   .  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||


243 :デフォルトの名無しさん:04/11/23 14:45:16

.    曰
     | |   ,,-─-、
    ノ__丶 [lllllllllll]     ./ ̄いくら煽ったってお前の実力は向上しないし、
    ||中|| |||`_ゝ´|||_  <  稚拙でもタコでもやる奴の実力のみが向上するんだよ。
     ||田||  丿 ( .| ¢、 .\_ おまえの行き着く先は何もできない才能も人望も無いロートル爺だ。
  _ ||育|||/丿  .    ̄丶.)
  \ ||男||L二⊃ . ̄ ̄\
  ||\`~~´  (<二:彡) ←「コンパイラ・スクリプトエンジン」相談室住民
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
   .  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||

244 :デフォルトの名無しさん:04/11/23 15:13:25
>>241
インポートはjava.ioだけだったような・・・。

245 :デフォルトの名無しさん:04/11/23 15:36:44
まあ藻前裸はその程度の本を書く実力と人脈さえ無いんだけどな(w

246 :デフォルトの名無しさん:04/11/23 16:00:56
λ......         λ......       λ......
  λ......            λ......
 λ......      λ......        
        λ......                  λ......
    λ......             λ......
                λ......
 λ......       λ......          λ...... 

247 :デフォルトの名無しさん:04/11/23 21:14:29
>>242
この手の技術書は初刷 2000 冊くらいだぞ。
2000円 * 5% * 2000 = 20万円
バイト代程度じゃん。

248 :デフォルトの名無しさん:04/11/23 22:21:08
現状売り切れ続出

249 :デフォルトの名無しさん:04/11/23 23:25:46
今日買ってみたよ。安かったんで。

250 :デフォルトの名無しさん:04/11/23 23:39:02
>>248
田舎では売れ残っているが。


251 :デフォルトの名無しさん:04/11/24 00:09:12
ソースに関するレスが多いけど
本文はどう?>買った人

252 :デフォルトの名無しさん:04/11/24 00:12:11
コン・パイラさんががんばってます。

253 :デフォルトの名無しさん:04/11/24 19:54:42
あれはおかしいよな。コンバイ・ラの方がいいよな

254 :デフォルトの名無しさん:04/11/24 22:47:55
結局誰も買ってないのか(´д`)

255 :デフォルトの名無しさん:04/11/24 23:17:22
いや、俺と >>252-253は買ってると思う

256 :デフォルトの名無しさん:04/11/24 23:20:13
買ったよ、本当に言語処理初心者向けに書いてあって、ある意味面白かったけど。
中田先生の本とかを読む人には向かないんじゃないかな(最適化技法の本でこれだったら随喜の涙だけど)



257 :デフォルトの名無しさん:04/11/24 23:35:53
>>256
すまん、分かるように書いてくれ。


258 :デフォルトの名無しさん:04/11/25 00:00:46
もしかして、あや本は虎の巻だけ読めばOK?


259 :デフォルトの名無しさん:04/11/25 00:17:14
>>257
綾本は言語処理に興味がでたごくごく一般的な人向けに書かれている。
中田先生の書籍は専門書なので、これらを読む人には退屈だろう、ただしこういう感じで一般向けに最適化技法を説明してくれれば楽しい思いができると思う。

これならわかってもらえますか?


260 :デフォルトの名無しさん:04/11/25 00:34:02
>>259 = 綾本
>>256 = 専門書

261 :デフォルトの名無しさん:04/11/25 13:02:40
Javaのコンパイラを作ってみようかと思ってます。
Parser GeneratorはJavaCCやANTLRなどいくつかあるけど、Bytecode Generator作成を支援してくれるツールはありますか。
ぶっちゃけ、既存のJavaコンパイラと同じASTを作成すれば、Bytecode生成はそのコンパイラのバックエンドに任せることが
できるんではないかと考えてはいるんですが。

262 :デフォルトの名無しさん:04/11/25 14:36:37
>>261
2chで聞く前に自分で調べる行動力が無いと無理

263 :デフォルトの名無しさん:04/11/25 16:03:02
もはや作るとは言わんような。


264 :M.B.:04/11/25 21:27:49
>>261
swap と loop〜until〜do〜repeat 構文を実現できるんなら、
Java 拡張言語のコンパイラは作ってもいいかなと思っている。
JavaCC を使えば Java のライブラリはそのまんま利用できるしな。

265 :261:04/11/25 23:12:10
>>262
いや、ググってもバックエンド部分がわからなかったから聞いているんだが。
パーサジェネレータはたくさん見つかったんだが、バックエンドは見つからないぞ。

>>264
swapやloopではないんだが、独自に文法を拡張したコンパイラを作ってみたいと思って。

266 :デフォルトの名無しさん:04/11/25 23:21:10
Javaのコンパイラで
ソース公開されてるやついじればいいじゃん。
何でメタツールの話から入るかねぇ。

267 :デフォルトの名無しさん:04/11/26 00:57:15
>>259
分かりました。
どうもです。


268 :デフォルトの名無しさん:04/11/26 17:21:59
コンパイラとスクリプトだと作る難しさは違いますが?

実際にプロのプログラマーだと、PC関係のソフトで難しいプログラムは
なんでしょうか

規模にもよるかもしれないけど、OSが一番難しそうで、その次にデータ
ベースなどがありそうですが、難しいソフトってどんなものがありますか?

コンパイラ・スクリプトはそのなかでどれくらいの難易度なのか
もうしわけありませんが宜しくお願いします。


269 :デフォルトの名無しさん:04/11/26 17:27:09
>>268
違いますが?

違いますか?

でOK?何いきなり煽ってるんだと思ったんだけど。

270 :デフォルトの名無しさん:04/11/26 17:43:57
>>269
すいません。”違いますか?”です。

単純にコンパイラやスクリプトを作れるプログラマはプログラマの
レベルではどれくらいか?

プロになったことないし、周りにプログラマーがいないので解らないので
もしよければおしえてくださいませんか?

それかスクリプト以外のアプリケーションでもっと難しいものって
なんでしょうか?

OSやデータベースなどが規模にもよるけど難しいそうと思うのですが?


271 :デフォルトの名無しさん:04/11/26 18:18:20
>>270
ピンキリ。
スクリプトもOSも、簡単な物は比較的簡単に作れるけど、
ちゃんとしたものを作るのは難しい。

272 :デフォルトの名無しさん:04/11/26 18:31:59
>>268
期待してる答えとは違うと思うけど、
とりあえず将棋や囲碁でプロに勝つのが難しい。

273 :デフォルトの名無しさん:04/11/26 18:49:30
ドラゴンブックと中田育男本、今から買って読むとしたらどっちがお勧めですか?


274 :デフォルトの名無しさん:04/11/26 19:07:46
対象読者や用途が違うので

275 :デフォルトの名無しさん:04/11/26 19:49:10
というか、コンパイラの基礎も知らないで育男本は無理。

276 :デフォルトの名無しさん:04/11/26 19:54:24
育男本の用途は最適化、
ドラゴンブックは原理・技法・ツールの紹介だと思うのですが、

対象読者はやっぱり育男本がエキスパート、
ドラゴンブックは学部生あたりと考えてよろしいでしょうか?

277 :デフォルトの名無しさん:04/11/26 20:28:13
>>276
どっちも教科書だよ。
ドラゴンブック読んで、それから育男本って感じか。
強いていうなら、学部生向けと修士学生向けってくらいの違い。

いずれにせよ、どちらもコンパイラの専門家が改めて読むレベル
の本じゃない。

278 :デフォルトの名無しさん:04/11/26 20:33:26
コンパイラ屋のプロは何読んでるの?

279 :デフォルトの名無しさん:04/11/26 20:37:01
ドラゴンブック
http://www.esbooks.co.jp/books/detail?accd=09093768

 「勉強し終わると、滅多に開くことはありませんが :−) 」

280 :デフォルトの名無しさん:04/11/26 20:40:36
>>278
たぶん・・学会集とか論文じゃない??
プロのコンパイラ屋としてどのくらいが飯食っていけてるのかしらんけんど・・
IBM東京基礎研究所のひととか想像すればいいのか?

281 :デフォルトの名無しさん:04/11/26 20:48:18
電気メーカーにショボイコンパイラ屋たくさんいるぞ。

282 :デフォルトの名無しさん:04/11/26 21:15:59
そっ、そうなのか、
優しい気持ちになれました

283 :デフォルトの名無しさん:04/11/26 21:33:41
最適化って最適するパターンを作ってそれに合うか
合わないかというものでしょうか?

CPU毎の最適化とは別に他は思い浮かばないのですが

284 :デフォルトの名無しさん:04/11/26 21:45:19
定数式の最適化とか依存しない物もたくさんあるだろ。

285 :デフォルトの名無しさん:04/11/26 22:09:06
電気メーカーのショボイコンパイラ屋です。
文献はPLDI、POPL、TOPLAS、CCあたりが定番でしょうか。

他のコンパイラ屋の方々はどの辺をチェックしてます?

286 :デフォルトの名無しさん:04/11/26 22:09:16
>>283
不変式のループ外移動とか、ループアンロールとか、グラフの状態を探索しないといけない最適化はいくらでもある。


287 :デフォルトの名無しさん:04/11/26 23:38:35
こういう地味な仕事してる奴って、地味な言語つかってたりするのかな?


288 :デフォルトの名無しさん:04/11/26 23:39:11
またあったので報告。上のほう。
ちょっと痛めのドキュもあり・・。下の方。
http://www.tom.sfc.keio.ac.jp/~psnow/

289 :デフォルトの名無しさん:04/11/27 01:30:48
グラフの探索にあこがれるんだけど
自分の頭では無理っぽい
3番地コードからやってみるか・・

290 :デフォルトの名無しさん:04/11/27 01:44:21
>>288
完成してたんだ.

291 :デフォルトの名無しさん:04/11/27 01:48:20
知人?

292 :デフォルトの名無しさん:04/11/27 02:01:01
>>289
3番地コードってのが三つ組みの事なら、グラフの方が楽ですよ、何でもかんでもつっこんじゃうから頭がこんがらがるのも解るけど。


293 :デフォルトの名無しさん:04/11/27 08:45:30
>>288
慶応の卒研でもこんなものか。
ちょっと勇気づけられた。

しかし慶応大生でもこんなのか。
もうどうしていいやら……

294 :デフォルトの名無しさん:04/11/27 14:15:14
>>280
そでもないよ、もっと簡単に済ましてる。
開発時間との戦いは別にどの業種と限ったものじゃないです。

295 :デフォルトの名無しさん:04/11/27 15:30:55
>>285
漏れは高卒なのでアカデミックな世界のことはなーんも
分からんのですが、カンファレンスみたいなものから
著名人の名前と研究テーマを探して、名前でぐぐって、
研究者のHPを見つけ、論文一覧から欲しいものを探す、
そういう感じですか?

296 :デフォルトの名無しさん:04/11/27 16:00:13
>>295
情報学会誌とかACMとか購読してる方が多いと思う。
Webで検索するよりノイズ少ないし。


297 :デフォルトの名無しさん:04/11/27 16:01:47
>>296
日本情報処理学会って ACM と比べてどう?
入会する価値ある?

298 :デフォルトの名無しさん:04/11/27 16:05:30
>>297
ACM と IEEE だけで十分だと思うよ。

299 :デフォルトの名無しさん:04/11/27 16:25:55
>>298
でも日本で何が起きているのか知る一端にはなる。
それと辞書無しでも読めるんで休憩時間には向いてる。


300 :デフォルトの名無しさん:04/11/27 16:45:08
>>299
世界的にはトレンドから外れちゃったけど、なぜか日本では
続いているってなネタもあるしね。暇つぶしにはなるわな。

301 :デフォルトの名無しさん:04/11/27 18:54:48
日本情報処理学会
顔見知り同士のしょぼいミニコミ誌

302 :デフォルトの名無しさん:04/11/27 19:12:58
海外だって一部の除けば似たようなもんじゃん

303 :デフォルトの名無しさん:04/11/27 19:14:19
>>302 それ本当?たとえば?

304 :デフォルトの名無しさん:04/11/27 20:12:12
たとえば、って大抵の分野は狭いので自然と知り合い同士になるのが道理なんだが

305 :デフォルトの名無しさん:04/11/27 20:31:43
>>304
必ずしも「しょぼい」わけではないんでない?

306 :デフォルトの名無しさん:04/11/27 23:15:11
>>287
LIS(ry


307 :デフォルトの名無しさん:04/11/28 00:16:15
>>268
>実際にプロのプログラマーだと、PC関係のソフトで難しいプログラムは
>なんでしょうか
Mathematicaみたいなソフトも作るのむずかしそう。


308 :デフォルトの名無しさん:04/11/28 00:27:29
>>307
IE も大変だと思うよ。不正な HTML でもそれなりに表示する必要があるし、
HMTL, CSS, XML あたりは規格もそれなりにデカイ上に、画像の遅延表示や
ユーザが任意のタイミングでリロード、戻る、進むなんかを実行できることが
大前提になってる。

部分的な実装に関わるだけならともかく、全体の設計からって話だと
Office なんかも大変だろう。

309 :デフォルトの名無しさん:04/11/28 01:39:32
>>308
不正のタグの事。
結構打ち込みタグでエラー起こしてるけど、エラー処理してるとは
思えないな。

それから、リロードとかのタイミングとかも、単純にタスク処理すれば
良さそうなので、問題ないかと

理屈的にIEを作るのは難しくなくても、使えるものを実際に作ると
なると、設計段階でくじけそうだけど。

単純にIEみたいなもののスクリプト系の表示プログラムは
簡単そうだし。

310 :デフォルトの名無しさん:04/11/28 02:09:09
javascriptとかの解釈は?

311 :デフォルトの名無しさん:04/11/28 10:24:27
dW : Linux : Yacc...そしてLexをよみがえらせる
http://www-6.ibm.com/jp/developerworks/linux/010316/j_l-lex.html

dW : Linux : Lexとyaccでコードをビルドする 第1回: 導入
http://www-6.ibm.com/jp/developerworks/linux/040910/j_l-lexyac.html

dW : Linux : Lexとyaccでコードをビルドする 第2回: 開発とトラブルシューティング
http://www-6.ibm.com/jp/developerworks/linux/040924/j_l-lexyac2.html

312 :デフォルトの名無しさん:04/11/28 11:46:16
Lispが気になってしょうがない奴がいるなこのスレ。

313 :デフォルトの名無しさん:04/11/28 11:59:54
>>309
> 結構打ち込みタグでエラー起こしてるけど、エラー処理してるとは
> 思えないな。
Amaya とか使うと、IE がいかに適当(良い意味で)に処理してるか良く分かるぞ。

314 :デフォルトの名無しさん:04/11/28 19:07:15
lispに骨髄反射してる奴がいるな、この摺れw


315 :デフォルトの名無しさん:04/11/28 19:47:31
Rby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>lisp

316 :デフォルトの名無しさん:04/11/28 23:25:44
骨髄・・・バンク

317 :368:04/11/29 01:35:38
こんな事聞いたら怒られるかもしれないですが、
XMLのいろいろな規格を解釈するリーダーを作成しようと思ったら、
どのような手順を踏めばいいのですか?頭がよろしくなく理解力がないですが
よろしくお願いします。

318 :デフォルトの名無しさん:04/11/29 01:39:17
未来からこんにちは。

319 :デフォルトの名無しさん:04/11/29 01:50:23
368に近づくまでまだ時間がある。それまでに理解力をつけるんだ。


320 :デフォルトの名無しさん:04/11/29 05:29:21
単純に<〜>を付いてるものを3つのポインタを使った

typedef staruct tagXML{

struct tagMML *prev;
struct tagMML *next;
struct tagMML *yoko;
char *namel;
char *data;
}

とかやって、階層的なものを作ってデータの意味を付けていく
ようにしたらいいかも???

この階層を作った後に、全体的な階層を作った後にキャンパスというのに
まず、仮想的に描写情報を作った後に、実際に描写するだけぁない。

仮想的な描写情報を作ってどういった画面になるかを一度シミュレート
するのがちょっとメンドイけど、それさえ出来ればすぐに出来るよ。



321 :デフォルトの名無しさん:04/11/29 05:42:14
HTMLも基本は一緒だよ。

BODY−
|
+---tabel
|
+---tabel
|    |
|    +--- tabel
+---IMAGE
|
/BODY

という階層を作ったを作った後に、フォントとかtableや画像を情報を
元に、仮想で描写するイメージを作って、どれくらいのクライアントに
どのような配置をするか決めて、下(バッググランドから、上に書き込むだけ
IEの場合、タスクを使ってるみたいでデータが来た順に描写するので
バッググランドの画像データが先に受信されてない場合、一度、上に
タグの描写した後に、もう一度下を描写して再描写してるみたい。

全体的な階層を作って→その階層のデータと元に仮想描写(データで)→
した後に、実際に描写するだけ・・・

タグ毎の描写の仕方を決めて、それを配置するプログラムさえ
出来れば殆どできるから。理屈では難しくないがあんだけのタグを
実際に作るとなるとメンドイな・・・


tableとイメージとpreを使った簡単なブラウザを今度作ってみるつもり
だけど・・・。


322 :デフォルトの名無しさん:04/11/29 06:11:11
>>320 >>321
誰か翻訳してくれ

323 :デフォルトの名無しさん:04/11/29 06:13:57
イラネ

324 :デフォルトの名無しさん:04/11/29 15:43:41
tabel

325 :デフォルトの名無しさん:04/11/29 15:44:57
描写するだけぁない。


酔っ払いか?

326 :デフォルトの名無しさん:04/11/29 17:06:59
>>227

327 :デフォルトの名無しさん:04/11/29 22:47:26
   なんでも煽りに見えるのは良くないです。

 つか、そんなスレになっている元凶は死ね、
 いくら煽ったってお前の実力は向上しないし、稚拙でもタコでもやる奴の実力のみが向上するんだよ。
 おまえの行き着く先は何もできない才能も人望も無いロートル爺だ。

 【語り「コンパイラ・スクリプトエンジン」相談室4 >>227



328 :デフォルトの名無しさん:04/11/30 00:00:25
コンパイラの学習はLISPが良いな

329 :デフォルトの名無しさん:04/11/30 00:03:04
初心者がLISPでコンパイラを書こうとすると、グラフの実現でつまづく気がする。

330 :デフォルトの名無しさん:04/11/30 00:14:03
LISP最高!
これ覚えると他がアフォらしく見えるよ!


331 :デフォルトの名無しさん:04/11/30 00:25:28
なんでも煽りに見えるのは良くないです。
つか、そんなスレになっている元凶は死ね、
いくら煽ったってお前の実力は向上しないし、
稚拙でもタコでもやる奴の実力のみが向上するんだよ。
おまえの行き着く先は何もできない才能も人望も無いロートル爺だ。

【語り・・・「コンパイラ・スクリプトエンジン」相談室4 >>227

332 :デフォルトの名無しさん:04/11/30 00:27:32
LispよりSchemeの方が単純で良いと思う。

333 :デフォルトの名無しさん:04/11/30 00:38:36
継続と末尾再帰最適化が義務になるので却ってハードル高くなんない?


334 :デフォルトの名無しさん:04/11/30 01:06:03
>>333
MiniSchemeとか、継続も末尾再帰もGCまかせにする単純な方法があるから、
そんなに大変じゃないよ。
まあ極力GCを避ける実装とか、コンパイルするとかなるとそれなりに大変だけど、
自己記述できるからだいぶ小さくまとまる。
下手な俺流言語でがんがるよりはマシ。

335 :デフォルトの名無しさん:04/11/30 01:56:07
『コンパイラの学習はLISPが良い
    ↓
 LISPでコンパイラを書くとグラフの実現でつまづく気がする
    ↓
 Schemeの方が単純で良いと思う
    ↓
 継続と末尾再帰最適化でハードル高くなるのでは?


↑ここまでは低脳の漏れにも分かる。。
インタプリタでコンパイラのコードを記述して実行すれば
所望するコンパイラが生成される。(違いますか?)
コードを記述する際、開発環境の言語の特性上、
継続と末尾再帰最適化に気を使うのも分かる。

開発環境にMiniSchemeを使えば継続と末尾再帰最適化を
GC任せに出来るので、コーディングしてる人はその辺未熟でも
許されるという意味ならこれも分かる↓ 

『MiniSchemeとか、継続も末尾再帰もGCまかせにする単純な方法がある』

これ↓はコンパイラを生成するコードをコンパイラで記述するってことですよね。

『まあ極力GCを避ける実装とか、
コンパイルするとかなるとそれなりに大変だけど、
自己記述できるからだいぶ小さくまとまる。


じゃ、これ↓はターゲットとしているコンパイラのことですか?
それとも>>343自体が『MiniSchemeコンパイラを作れば?』ってこと??

『下手な俺流言語でがんがるよりはマシ。』

336 :デフォルトの名無しさん:04/11/30 02:00:40
どーか漏れの幼い書き込みで荒れないで下さい。お願いします。

337 :デフォルトの名無しさん:04/11/30 02:01:57
>>336
誰だよお前

338 :デフォルトの名無しさん:04/11/30 02:05:41
オレオレ

339 :333:04/11/30 02:07:00
>>334
まあ継続とかのフレームを毎回ヒープからアロケートしまくれば簡単なんだけど、
知らないと難しい類いの問題じゃないかな。

どうでもいいが、

LispよりSchemeの方が単純で良いと思う。

継続と末尾再帰最適化が義務になるので却ってハードル高くなんない?

下手な俺流言語でがんがるよりはマシ。

いつのまにLispが下手な俺流言語になったんだろうw

>>335
「Lispを書く」と「Lispで書く」が各人ばらばらでつよ。
繋がってるようで繋がってない。


340 :デフォルトの名無しさん:04/11/30 02:10:29
>>339
まあ、下手な俺流 Lisp はあり得るかな。
下手かはともかく、遥か昔はみんな俺流 Lisp だったといえなくもないわけだし。

341 :デフォルトの名無しさん:04/11/30 02:12:24

(´◕ω◕`)ばらばらか・・そっか・・

342 :デフォルトの名無しさん:04/11/30 04:55:35
このスレ共通言語をSchemeにすれば全て解決

343 :デフォルトの名無しさん:04/11/30 06:01:33
>>342
却下

344 :デフォルトの名無しさん:04/11/30 21:37:48
>>343
なんで?

345 :デフォルトの名無しさん:04/11/30 23:05:30
グラフが扱いにくい

346 :デフォルトの名無しさん:04/11/30 23:07:24
>>345
グラフって?

347 :デフォルトの名無しさん:04/12/01 00:16:25
flex,bisonについて、このスレ的な見解はありますか?

348 :デフォルトの名無しさん:04/12/01 00:20:45
flex2.5.31

349 :デフォルトの名無しさん:04/12/01 00:40:15
>>347
手軽に済ませたければ使うとよろし。きめ細かなエラー回復処理を
したいとか、特殊な構文山盛りの言語だと、手でパーサー書いた
方が良い。

ただ C だと文字列操作繁雑だから、個人的には C++ 処理系と
組み合わせて使えるヤツを勧めておくが。

350 :デフォルトの名無しさん:04/12/01 10:54:19
S式で書けばflexもbisonも(゚听)イラネ


351 :347:04/12/01 17:23:08
どうも

352 :デフォルトの名無しさん:04/12/01 18:24:40
Rubyの青木さんの256本を買った。
いや、これなら自分でも読めそうだったんで。

353 :デフォルトの名無しさん:04/12/01 18:38:20
現状 flex はいいとしても、bison又はyacc に変わるものなし
と思う俺は実用主義


354 :デフォルトの名無しさん:04/12/01 18:44:04
よほどの特殊事情がないかぎりflexとbisonで済ませるね
不足を感じたことは今のところなし。

355 :デフォルトの名無しさん:04/12/01 19:40:35
c++から使いにくいインタフェースは改善されたんだっけ?
Parser ClassとかLexer Classは提供されてる?

356 :デフォルトの名無しさん:04/12/01 20:23:00
sfにあるreentrantなflexは本家にマージされないの?

357 :デフォルトの名無しさん:04/12/01 23:05:49
JavaCCとANTLRとSableCCとCUPとnotavaccの比較ってだれかやってくんない?
notavaccのページにはJavaCCとの比較が、SableCCのページにはANTLRとの比較があるけど、ほかのも知りたい。
他力本願ですまん。識者の意見求む。

358 :デフォルトの名無しさん:04/12/01 23:11:44
LISP に変わるもの無しと思っている俺は非実用主義


359 :デフォルトの名無しさん:04/12/01 23:39:51
>>353
前に評価したけど yacc からの移行なら yayacc がなかなか良いよ。
過去の遺産の都合で未だに flex + bison な仕事を抱えてて、移行
できてないが>俺

360 :デフォルトの名無しさん:04/12/01 23:44:39
javaで作るパーサの本読んだ人いる?
ああいう感じで構文をクラスに落としてくれるコンパイラコンパイラってないのかな?


361 :デフォルトの名無しさん:04/12/01 23:59:54
>>360
JavaCCじゃ不満?

362 :デフォルトの名無しさん:04/12/02 00:01:19
>>361
http://www.pearsoned.co.jp/washo/java/wa_java01-j.html
この本なんだけどね、すごく綺麗なパーサ用パーツ群なんだよね。


363 :デフォルトの名無しさん:04/12/02 00:37:41
>>362
せっかくその本読んだんなら自作してみては?

364 :デフォルトの名無しさん:04/12/02 00:49:56
ソースとかヴィダルサスーン並に綺麗なん?

365 :デフォルトの名無しさん:04/12/02 00:56:08
その本わかりやすく簡潔で超おすすめだった!
自分でなんとなく興味があっても、結構手が出しにくく思える「パーサ関連」の良書だった。

コンピュータサイエンス等の基礎が全くなくても、
JAVAでオブジェクト指向をある程度なら把握できている人には、超おすすめ。

本の構成も非常に考えられていて、まったくのパーサ未経験者でも頭から読んでいけば
最後には自分でプログラミング言語を作成できるところまでたどり着けた。



366 :デフォルトの名無しさん:04/12/02 01:03:08
作者か関係者か。いいかげんウザいから消えろ。

367 :デフォルトの名無しさん:04/12/02 01:04:10
君、アマゾンの・・

368 :デフォルトの名無しさん:04/12/02 01:05:51
作者←海外から青い目の2chねらーかよw

369 :デフォルトの名無しさん:04/12/02 01:12:25
http://www.amazon.co.jp/exec/obidos/ASIN/4894714078/
375はカスタマーさんですか??

370 :デフォルトの名無しさん:04/12/02 01:18:27
中身Javaクラスべったりで萎えた




371 :デフォルトの名無しさん:04/12/02 01:45:37
>>366
すぐ関係者とかを疑うのって痛くないか?


372 :デフォルトの名無しさん:04/12/02 01:50:02
横から悪いが>>360はその本にそんなに感銘受けてるっつーなら
それ使ってりゃいいのでは?

373 :デフォルトの名無しさん:04/12/02 02:06:39
C#で使えるまともなBisonご存知ないですか?
GCの効くJavaでもいいですが、C#の方がコーディング早いから、できるの
であればいいかなぁ程度なのですが、XMLの規格の解析するだけなので速度は
気にせず、解析できればおっけーなのです。

374 :!=360:04/12/02 02:10:57
>>372
その本は読んだことないけれど、本に載っているサンプルよりももっと「でき」がよい
ものはあるかどうか、っていうことじゃないかな?

375 :360=362:04/12/02 02:20:04
なんか荒れてますね
>>372,361
javaCCとかってパースクラス本体が妙にでかいのができるんで、件の本(これはパーサを作る為の細かいパーツの集合なんでBNFから自動展開とかはしないのです)
の物みたいに粒度の細かいクラスに分解するようなコンパイラコンパイラは在りませんかって問いかけだったんです。


376 :デフォルトの名無しさん:04/12/02 02:31:04
>>360>>362から>>375を把握できるヤシはESP

377 :デフォルトの名無しさん:04/12/02 02:35:37
>>363はBNFから自動展開出来るように君が作ればぁ〜って言ってるんだよw

378 :デフォルトの名無しさん:04/12/02 10:34:27
>>377
作ってるよ、お前の書き込み面白くない、どっかいけよ。

>>363
ライブラリに最初から入っているxmlパーサじゃだめなん?

379 :デフォルトの名無しさん:04/12/02 11:09:59
自家撞着?

380 :デフォルトの名無しさん:04/12/03 09:45:40
>>373
Bisonじゃないけど、ANTLRはC++、Java、C#で使えたはず。


381 :デフォルトの名無しさん:04/12/04 00:05:49
ANTLRは文法に癖あるってきいていたのでマークしてなかったですが、
がんばって使ってみますね。どもです。

382 :デフォルトの名無しさん:04/12/04 03:30:01
Flexの正規表現でシフトJIS日本語文字列(""括りで\がエスケープ文字)を
定義するのはどうしたらいいのでしょうか?とりあえず
\"(([\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])|\\.|[^\\"])*\"
としてみたのですが、2バイト目が\の"表"とかが最後になっていると
"がエスケープされてしまいそのさらに次の"までが文字列になってしまいます。
よろしくお願いします。

383 :デフォルトの名無しさん:04/12/04 12:08:56
>>382
2バイトめ"\"のパターンを使え


384 :382:04/12/04 13:14:05
>>383
シフトJISの2バイト目"\"のパターンは
([\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])
で引っかかると思うのですが、
これじゃダメなんでしょうか?

385 :デフォルトの名無しさん:04/12/04 13:32:42
>>382
\"(\\.|[^\\"])*\"
と同じ意味。

[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]

[^\\"]*
で吸収できちゃうから。

386 :382:04/12/04 14:02:51
>>385
解決できました。ありがとうございます。

387 :デフォルトの名無しさん:04/12/05 20:42:28
>>386
結果を張っといたら?


388 :デフォルトの名無しさん:04/12/05 20:47:08
(V)o\o(V)

389 :デフォルトの名無しさん:04/12/05 20:58:35
バルタン星人かよ!

390 :デフォルトの名無しさん:04/12/05 22:21:17
>>387
私は自力で解決しました。
あなたも自分で考えてみてください。

391 :デフォルトの名無しさん:04/12/06 23:40:48
>>390
こういう奴が、スレを糞化させる。


392 :デフォルトの名無しさん:04/12/06 23:42:41
糞化したスレ
http://pc5.2ch.net/test/read.cgi/tech/1101986365/

393 :デフォルトの名無しさん:04/12/07 00:17:37
もともと糞化してただろ。

394 :デフォルトの名無しさん:04/12/07 04:28:08
>>381

ANTLRの書き方って独特だよね。おれもよくわからん。
いちばんわかりやすいのはSableCCだな。BNFだけ定義すればよく、JavaコードとBNFとをごちゃまぜにする必要がない。

395 :デフォルトの名無しさん:04/12/07 14:37:37
>>391 必死だな

396 :デフォルトの名無しさん:04/12/07 14:40:41
>>392
ほんとの意味で糞化だ(笑

397 :デフォルトの名無しさん:04/12/08 00:31:38
>>395
アフォ目、洩れがアドバイス出してやったんだがw


398 :デフォルトの名無しさん:04/12/08 02:32:41
アンタのアドバイスはこっちのトンチンカンな方だろ。

383 名前:デフォルトの名無しさん 投稿日:04/12/04 12:08:56
>>382
2バイトめ"\"のパターンを使え

399 :デフォルトの名無しさん:04/12/08 02:37:47
>>397
つーか知ってるなら自分で貼ったらいいじゃん。

400 :デフォルトの名無しさん:04/12/08 11:54:01
そして張ったとたんに間違っていると判明と(藁

401 :デフォルトの名無しさん:04/12/09 09:34:35
(\)o\o(\)

402 :デフォルトの名無しさん:04/12/15 22:47:03
.

403 :デフォルトの名無しさん:04/12/16 01:19:20
どなたかこいつを弄ったことのある方いらっしゃいますか。
ttp://www.cminusminus.org/

404 :デフォルトの名無しさん:04/12/18 15:10:46
 

405 :デフォルトの名無しさん:04/12/21 18:59:06
.

406 :デフォルトの名無しさん:04/12/21 21:35:17
ここのスレをまとめたページはないのかい?

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

408 :デフォルトの名無しさん:04/12/21 23:35:38
>407
無謀

409 :デフォルトの名無しさん:04/12/21 23:47:06
コンパイラの入門書を読め

410 :デフォルトの名無しさん:04/12/21 23:58:53
なぁ、友達にアセンブラを知らないと作れないといわれたのだが、本当か?

411 :デフォルトの名無しさん:04/12/22 00:06:01
>>410
その友達に理由を聞けよ

412 :デフォルトの名無しさん:04/12/22 00:06:17
ネイティブコンパイラを作ろうと思うならな

413 :デフォルトの名無しさん:04/12/22 00:11:18
>412
そうか、アセンブラはいるのか。。。
アセンブラを勉強してから出直してくるよ。


414 :デフォルトの名無しさん:04/12/22 00:12:36
アセンブラなんてCより覚える事少ないぞ

415 :デフォルトの名無しさん:04/12/22 00:18:06
>414
そうなのか?
Cも覚えることはほとんどなかったが。。。。
まぁ、いいや。
はじめて読む8086からはじめるよ。


416 :デフォルトの名無しさん:04/12/22 00:22:34
言語なんてのはすぐに覚えられるが、問題はその先だな。

417 :デフォルトの名無しさん:04/12/22 00:27:08
>>408
そうでもないよ。
言語を理解するには実際に自分で作ってみるのが手っ取り早いよ。

418 :デフォルトの名無しさん:04/12/22 00:30:54
その先は、何を作るかによるだろう。

419 :デフォルトの名無しさん:04/12/22 00:40:03
つーかそれ作って何するかだな
漠然と作ってもただのゴミだし
時間を有効に使う意味では言語処理系なんて手を出さないが吉

420 :デフォルトの名無しさん:04/12/22 00:46:08
>>419
できあがった完成品が重要なのではなく、その過程でできたものがもっとも重要な
物・事である事が多いと思いますよ。
完成品なんてタダでくれてやればいいが、その過程で得たものは絶対誰にもあげない。
そう思います。
って青木淳さんの受け売り…

421 :デフォルトの名無しさん:04/12/22 00:47:22
このスレと路線がずれてないか?
そろそろ元に戻そうぜ。

422 :デフォルトの名無しさん:04/12/22 00:51:01
953 名前:名前は開発中のものです。 [] 投稿日:04/12/21 20:13:01 ID:ZZkG0tzm
AliceSoftのSystem(開発環境)見たいなのを作りたいのですが、どうしたらいいのでしょうか?
私は、Cの入門書を読み終わったくらいLvです。

954 名前:名前は開発中のものです。 [sage] 投稿日:04/12/21 20:39:50 ID:y3o3j+dn
>>953
「コンパイラ・スクリプトエンジン」相談室4
http://pc5.2ch.net/test/read.cgi/tech/1100097050/


ゲ製板の初心者質問スレで発見。

423 :デフォルトの名無しさん:04/12/22 00:59:30
それ、>407の書いたものだろう?

424 :デフォルトの名無しさん:04/12/22 04:42:53
Cで書こうとすると色々と複雑になって辛くない?
先にC++覚えたほうが楽だと思う

425 :デフォルトの名無しさん:04/12/22 08:11:24
>>422
それだったらアセンブラ知っとく必要ないじゃん。
とりあえず「yacc インタプリタ」でぐぐって好きなの読むといいんじゃない?

426 :デフォルトの名無しさん:04/12/22 11:43:40
「私はこれで仕事をやめました。」

427 :デフォルトの名無しさん:04/12/22 11:46:40
「私はこれで仕事をやめさせられました。」

428 :デフォルトの名無しさん:04/12/22 13:55:40
>>410
アセンブラというものがどういう構造なのか知っておくと便利だけど、
アセンブラ言語そのものを覚える必要は無いと思う。
それよりコンピュータがどうして動いてるか理解する方が大事。

メモリから命令を拾って来る→なんかする→次の命令を処理
という流れはどっちも変わらないから。

429 :410:04/12/23 00:52:02
とりあえず、>407とは別人だぞ。
なんか、一緒にされてる気がするので。

>428
え、ネイティブなら必要だと、上のレスにあるが。。。。



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

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

431 :デフォルトの名無しさん:04/12/23 01:43:13
今んとこ最強の成書↓
http://www.amazon.co.jp/exec/obidos/ASIN/1558603204/qid=1103732714/sr=1-3/ref=sr_1_2_3/250-6820354-3087400
amazon.comで古本買ったほうが安いかもしれん。
ただしちょっと古い(1997)

FORTRANなら↓
http://www.amazon.com/exec/obidos/tg/detail/-/1558602860/qid=1103733617/sr=1-2/ref=sr_1_2/002-7592221-6291209?v=glance&s=books

物好きには↓
http://www.amazon.com/exec/obidos/tg/detail/-/0444001581/qid=1103733470/sr=8-1/ref=sr_8_xs_ap_i1_xgl14/002-7592221-6291209?v=glance&s=books&n=507846
持っているといばれる。

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

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

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


433 :デフォルトの名無しさん:04/12/23 02:19:14
http://www.amazon.com/exec/obidos/ASIN/0805316701/ref=pd_sxp_elt_l1/002-7592221-6291209
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
http://yaneurao.hp.infoseek.co.jp/ygs2k/
↑のソースは参考になる?

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
こっちに移動してください
http://pc5.2ch.net/test/read.cgi/tech/1103874346/


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
はっきりいってエロゲーは日本の方がどの分野も進んでるぜ
http://www.illusion.jp/preview/jinkousyoujyo2/
http://www.teatime.ne.jp/infor/ld_top.htm

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

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

501 :デフォルトの名無しさん:04/12/24 19:25:51
今日の雑談は↓スレへどうぞ
http://pc5.2ch.net/test/read.cgi/tech/1103874346/


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
そろそろ板違いなんで↓に逝ってくれんか>年寄り
http://bubble2.2ch.net/i4004/

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
http://pc5.2ch.net/prog/

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ってのが出ているのに気づいたのですが、
どう変わったか知っている方いますか?

http://sourceforge.net/project/showfiles.php?group_id=23617

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
http://www.jorgon.freeserve.co.uk/ExceptFrame.htm

昔、参考にさせてもらったサイト。もう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 先生のってこれでよろし?
ftp://publications.ai.mit.edu/ai-publications/pdf/AITR-474.pdf
面白そう……だけど結構な分量だな。プリントアウトしたら大変そうだ。

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
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLD,GGLD:2004-40,GGLD:ja&q=%E6%8C%BD%E5%9C%B0%E7%AF%A4%E5%BF%97

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

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

言語・機種に非依存なオブジェクト最適化の研究
http://www.watalab.cs.uec.ac.jp/OBandG/nobuharu/research/B-Thesis/paper.html

はガイシュツですか?


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
http://www.amazon.co.jp/exec/obidos/ASIN/4781905854/
http://www.amazon.co.jp/exec/obidos/ASIN/4781905862/
通称ドラゴンブック。バイブル。

●コンパイラ構成法 原田 賢一
http://www.amazon.co.jp/exec/obidos/ASIN/4320029224/
http://www.hara.cs.keio.ac.jp/kCompiler/ (ソース、正誤表のダウンロード)

●プログラミング言語処理系 岩波講座 ソフトウェア科学〈5〉 佐々 政孝
http://www.amazon.co.jp/exec/obidos/ASIN/4000103458/
一冊で済ませたい人へ。

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

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
「言語仕様と開発論法」
http://pc5.2ch.net/test/read.cgi/tech/1104394930/l50
ここです。

626 :デフォルトの名無しさん:04/12/30 19:33:06
http://www.rubyist.net/~matz/20041227.html#p03
こんな短いプログラムで比較するのもどうかと思うのだが、 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
http://www.rubyist.net/~matz/20041227.html#p03
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
その話題は
http://pc5.2ch.net/test/read.cgi/tech/1104394930/l50
にぴったりだ、一発ブチかまして良スレにしてやってくれ。

656 :デフォルトの名無しさん:04/12/30 21:07:06
>>643 のリンク先見たけど開発者がこれでは…
ずっとマイナーなままなのそれなりに理由があるからだろ。

657 :デフォルトの名無しさん:04/12/30 21:08:56
>>656
その理由を
http://pc5.2ch.net/test/read.cgi/tech/1104394930/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が示してくれた記述方法は
↓と同じですよね。(この記述方法が一番読みやすい)
http://www.wormjp.umin.jp/jp/acemanjp13/node28.html

でも>>674が示してくれた標準となっている「ISO/IEC 14977:1996」では
↓のように若干記述方法が違うんですよね。
http://www.atmarkit.co.jp/fxml/ddd/ddd004/ddd004-bnf.html

ま、この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
レスdクス。
やはり無いですか…
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論争はこっちでやれ


言語仕様と開発論法
http://pc5.2ch.net/test/read.cgi/tech/1104394930/


723 :デフォルトの名無しさん:05/01/01 18:21:35
むしろここでやれ
HSP vs Ruby
http://pc5.2ch.net/test/read.cgi/tech/1104571259/

724 :デフォルトの名無しさん:05/01/01 18:24:57
いやここでやれ

725 :デフォルトの名無しさん:05/01/01 18:27:58
ここもあるよ
【因縁の】DelphiVSHSPVSRuby【対決】
http://pc5.2ch.net/test/read.cgi/tech/1101498622/

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とか。
ttp://www.pygame.org/projects/

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
不勉強にして知らなかったからちょっと調べてみた。
http://www.namikilab.tuat.ac.jp/~sasada/prog/parrot-intro.html

とりあえず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
http://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
これって出て来た?
http://www.namikilab.tuat.ac.jp/~sasada/prog/parrot-intro.html

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
http://dictionary.goo.ne.jp/search.php?MT=parse&kind=ej&mode=0&base=1&row=0

758 :デフォルトの名無しさん:05/01/02 17:24:33
pythonの言語仕様は素晴らしいと思う。

759 :デフォルトの名無しさん:05/01/02 18:26:43
>>758
言語仕様と開発論法
http://pc5.2ch.net/test/read.cgi/tech/1104394930/

こちらへどうぞ

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
わりと参考になった本を紹介しときます。(関係者じゃないですよ、念のため。)
http://www.amazon.co.jp/exec/obidos/ASIN/4320027981/249-0278157-3285121

788 :デフォルトの名無しさん:05/01/04 21:57:33
Rie 属性文法
ftp://ftp.is.titech.ac.jp/pub/Rie/


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
ftp://ftp.is.titech.ac.jp/pub/Rie/more-examples/pascal-S/pascal-S.rie

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
ttp://www.sbpnet.jp/shop/art.asp?newsid=1403

825 :824:05/01/07 14:44:52
ごめん、インタフェースも、か。読み間違えた。

826 :デフォルトの名無しさん:05/01/07 17:31:22
http://www.csg.is.titech.ac.jp/~chiba/lecture/os/index.html

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 って結構良いね。
これをターゲットにコンパイラ書いたら面白そう(楽出来そう)。

http://www.parrotcode.org/docs/

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文法と正規表現
http://www-6.ibm.com/jp/developerworks/linux/041203/j_l-cpregex.html

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スレ
http://pc5.2ch.net/test/read.cgi/tech/1105796351/


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勉強するのに、この本は買いでしょうか?
http://www.amazon.co.jp/exec/obidos/ASIN/4781904548/

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
学部生なのか専門学校生なのか知らんが、
こっちに移住してやってくれ ↓ 

http://pc5.2ch.net/test/read.cgi/prog/1071367436/

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が構文解析的な仕様書レベルで式や文を再帰的定義の形で納得するのでなく、
意味論のレベルも含めて理解したければ、例えば「プログラム意味論」
http://www.amazon.co.jp/exec/obidos/ASIN/4320026578/qid=1106053650/sr=1-2/ref=sr_1_2_2/250-2768765-9598655
の冒頭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がやねうらおなら笑える。
http://d.hatena.ne.jp/yaneurao/20050123

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の文は値を持つ。
それは仕様で定められてるのだから仕方がない。
作者の勝手なんだよ。
デタラメをやらない限りな。

999 :デフォルトの名無しさん:05/01/19 17:37:26
1000ならC厨は死滅!

1000 :デフォルトの名無しさん:05/01/19 17:38:20


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

229 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)