トップページ⇒tech
1001コメント305KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさんNGNG
言語仕様や処理系の話題に関するスレッドです。

字句解析・構文解析から,データフロー解析,ループ並列化,タスク並列化,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 あたり
0002デフォルトの名無しさんNGNG
いらん。
0003デフォルトの名無しさんNGNG
くそスレ立てる子もいらん。
0004デフォルトの名無しさんNGNG
コンパイラ等を扱ったドキュメント

色々なツールの紹介
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
0005デフォルトの名無しさんNGNG
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/
0006デフォルトの名無しさんNGNG
その他のパーサジェネレータ等

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
0007デフォルトの名無しさんNGNG
ガベコレ

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/
0008デフォルトの名無しさんNGNG
参考書籍

●コンパイラ 原理・技法・ツール 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
0009デフォルトの名無しさんNGNG
処理系,スクリプト

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
0010デフォルトの名無しさんNGNG
LISP?はぁ?
負け組言語は不要w

0011M.B.NGNG
>>10
馬鹿め、Lisp と Forth はどこにでもいるのだぞ。
侮ってはイカン。
0012デフォルトの名無しさんNGNG
LISPはCと同じ速度、Javaよりも省メモリ、AI関係に使用しやすい
とかの理由でボーイング777の製造とかYahooStoreのシステムに
フレームワークとして利用されてるよね。。

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

Prologもコンパイルできる…とか、法律家気取りの言語マニアな
意見は抜きにして簡単に教えて。
0013sageNGNG
コンパイラとバーチャルマシン
http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-13308-7
0014デフォルトの名無しさんNGNG
漏れはいつも構文解析まではフンフンって読めるけど、
意味解析やコード生成以降はホント、チンプンカンプン。

CPUとかアセンブラとかの勉強、やっぱ必要か(笑)?
0015デフォルトの名無しさんNGNG
>>12
LispとPrologを同列視してる時点で何もわかっちゃいないのが丸わかりだが、ま、
WAMをキーワードにぐぐってみれ。
0016デフォルトの名無しさんNGNG
リスパーとか来ると嫌だなあ。
0017デフォルトの名無しさんNGNG
LisperでもSmalltelkerでもコアな言語をゴリゴリ使ってて自分コンパイラをその上で作っちゃう人もかなり
居るらしいからいいんでね?

でもLispとかSmalltalkの話を聞くとかなり初期段階で他の言語の処理系を作ってるね。
あれはなんでだ?(w
0018デフォルトの名無しさんNGNG
>>15
うほっ
0019デフォルトの名無しさんNGNG
後半何がいいたいのかよくわからん……
0020デフォルトの名無しさんNGNG
>>17
Java で Lisp のインタプリタ書くのは簡単。
けどハマりそうでイヤ。
0021デフォルトの名無しさんNGNG
>>9 にも『やさしい Lisp の作り方』とかあるけど、それとは別に
「JAVAでLISPを作るのはCなどで作るよりも3倍は楽でないかと思われます。」
とか言いながらJavaLispをつくるサイトがここにもあたよ。

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

書かれてある理由のとおりJavaでのLispは卑怯なぐらい簡単。
0022デフォルトの名無しさんNGNG
いつもはじめからS式で書けば字句解析も構文解析も
いらないじゃんと思う。面白いのはそっから先だよな。
0023デフォルトの名無しさんNGNG
全く同感。>>14みたいのを見るたびそう思う。
Cみたいな言語の構文解析をやって、そっから先に進みがたかったら
Lispのコンパイルを理解すればいい。
後からその両者を真中でつなげれば楽ちん。
0024デフォルトの名無しさんNGNG
> Lispのコンパイルを理解すればいい。

わかった。Lispのコンパイルを自作を目指して勉強する。
お勧めの情報源があれば教えてチン子。
0025デフォルトの名無しさんNGNG
コンパイラ研究・開発情報の一集積所
ttp://compilers.cs.uec.ac.jp/
0026デフォルトの名無しさんNGNG
http://v.isp.2ch.net/up/1ed9c2013b91.jpg
0027デフォルトの名無しさんNGNG
なんか>>1のスレッド紹介がバージョンアップしてるな。
羊頭狗肉になりそうな気もするが…
0028M.B.NGNG
M.B.==20
いきなりコアな話だが、変数スコープの扱いにだけは気をつけれ。
「funarg問題」でググると出てくる。
0029デフォルトの名無しさんNGNG
LISPってかなり、マニアックな言語だと思うんだけど(学術的に)
LISPを勉強するメリットって何かありますか?
0030デフォルトの名無しさんNGNG
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Lisp
0031デフォルトの名無しさんNGNG
実装が楽なので最初はいいかもね>LISP
0032デフォルトの名無しさんNGNG
インタプリタの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とくらべてどうするんべさぁ(笑
0033デフォルトの名無しさんNGNG
25歳、LISPを勉強するまでは金無し君だったけど(ry
0034デフォルトの名無しさんNGNG
素人丸出しで悪いが
インタプリンタとかって結局
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が実際に演算するような関数を作ればと
思ったんですが実装では遅くなりそうですが
もっと良い実装方法はありませんか?
0035M.B.NGNG
>>29
LOGO と同じくらい簡単。本当に、小学生でも大丈夫。
いろんなオマジナイを書かなくても、
電卓なみに簡単に使える。こういう言語でメジャーな言語は
Lisp と FORTH くらい。
OR や AND が制御文っつーのも目からウロコ。
教育用には Pascal と Lisp と FORTH はかなり向いているので、
Java でインタプリタ書いておくといいかも。
ちなみに FORTH インタプリタは、正味一日あれば書ける。
0036デフォルトの名無しさんNGNG
>>32
lisp ていうか scheme のコンパイラネタはここから辿ってみるのはどうでしょ。
知ってたらごめんね。
ttp://library.readscheme.org/page8.html
0037デフォルトの名無しさんNGNG
連投すまないけどコードが間違ってたので

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の演算のような
関数を作って、そこで計算さえる方法だと実際に
他の関数内で演算をさせるより実装が遅くなりそうなんですが
もっと速い実装方法がありますか?
0038M.B.NGNG
>>34
Java の「中間コード+仮想マシン」方式が、
なんだかんだいっても一番実際的。
USCD の p-System とか、BCPL の IntCode とか。
とりあえずこの方式で動かしてみて、
「遅い」と思ったら javaCC なり BISON なりに
乗り換えるのが実際的。
何より移植が楽だしな。
0039デフォルトの名無しさんNGNG
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の実装方法が載ってる本でもあるのでしょうか?
自分もそういった本が欲しかったので探したのですが
見つからなかったので・・・
0040デフォルトの名無しさんNGNG
LISPのlambda知っとくだけでかなり変わるよなあ
Cでコールバック関数別途用意するとかがアホらしくなる
JavaScriptはその辺のLISPの良い所をうまく抽出した言語
0041デフォルトの名無しさんNGNG
忘れてるよ

以下未整理とネタ

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
0042デフォルトの名無しさんNGNG
>>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の倍程度は速くなる。
0043デフォルトの名無しさんNGNG
あ、上は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の中身を実行する順に並べればいい。
0044デフォルトの名無しさんNGNG
>>42
なるほど、VM(CPU部分)を呼び出さずに、
命令コード毎、関数内でGotoを使って飛ばしていけばいいのですね

確かにこっちの方が速いですね。
0045デフォルトの名無しさんNGNG
>>36
   彡´⌒ヽミ
   (´・ω・`)   知らなかったでし。
    (つ甘と)    親切にどうも。
    `u―u´
0046デフォルトの名無しさんNGNG
>>41
ギゴBASICみる限り、自分が考えた設計と同じですね

来週から1週間掛けて、スクリプトを作るつもりです。
0047デフォルトの名無しさんNGNG
>>42
これ他の言語にも欲しいよね、インタプリタ作るにはもってこいの機能で、
アセンブラで書けば一発なのに、高級言語では全く書けない。
0048デフォルトの名無しさんNGNG
>>42
gccにテーブルジャンプ書く機能あるなんてしらんかった。
自分のVMを書き換えてみるよ、ありがとん。
0049M.B.NGNG
>>39
×USCD
○UCSD (カリフォルニア州立大学サンディエゴ校)

BCPL については
リチャーズ&スティーヴンズ
『BCPL 言語とそのコンパイラ』共立出版
0050デフォルトの名無しさんNGNG
>>42のようなのはVCではできんのかぇ?
0051M.B.NGNG
>>50
VCでできるかどうかはワカランけど、
BASIC では定跡とのこと。
0052デフォルトの名無しさんNGNG
はぁ?
0053デフォルトの名無しさんNGNG
26歳、VMを覚えるまでは金無し君だったけど(ry
0054デフォルトの名無しさんNGNG
マジお勧め。
0055デフォルトの名無しさんNGNG
bignumのライブラリでよさげなのないですか?
ライセンスとか面倒なのは避けたいので
DLL形式で使えるとうれしい。
0056デフォルトの名無しさんNGNG
アフォ?
ライブラリでもライセンスは関係する罠w
0057デフォルトの名無しさんNGNG
M.B. age sugi
0058M.B.NGNG
>>57
sage ?
0059M.B.NGNG
いま Java で Lisp を書こうとして、禿死苦悩んでいる。
atom や car や cdr は List クラスのメソッドにするとして、
read/write や eval って何のメソッドにするんだ?
入出力ストリームを extend して List を扱えるようにするのか?
ListProcceser とかいうクラスを定義して eval メソッドを実装するのか?
なんやらオブジェクト同士のつかみ合いみたいになって、
設計が綺麗くなんないんだが。
0060デフォルトの名無しさんNGNG
つまんないことで悩んでるな。
Lispとしての関数と、それを実装するJavaでの話は全く関係ないよ。

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

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);
}
}
006260NGNG
殴り書きその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);
}
006360NGNG
その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(略); }
}
}
006460NGNG
しまった、関数かマクロかで判別して、関数のときは先に引数を評価するんだった。
直すのマンドクセ。
0065デフォルトの名無しさんNGNG
ここはお前の日記帳じゃねえんだ(ry
006660NGNG
いやなに、59の参考にでもなればと思って。
0067デフォルトの名無しさんNGNG
SICPの「メタサーキュラ・インタプリタ」の章を嫁.
あそこのコードは素のSchemeでなくOOPLだったらもっと簡潔に書ける.
0068デフォルトの名無しさんNGNG
> メタサーキュラ・インタプリタ
関係ないが、この言葉を見るとprologスレの論争を思い出す。
結局誰が正しかったのかな。
0069デフォルトの名無しさんNGNG
>>68
論争って何?
0070デフォルトの名無しさんNGNG
記録自体はもぅ何年も前のものなのに
そのまま生々しく残ってて痛々しいよね。
0071デフォルトの名無しさんNGNG
まぁ、プロログ、リスプと言ってる時点で
実用的なプログラムを書いていない証拠だなw
0072デフォルトの名無しさんNGNG
>>71
煽りならよそへ池
0073M.B.NGNG
設計で悩んでたら、eval 以外の関数だけで半日潰れちまった

甘かった _| ̄|○
0074デフォルトの名無しさんNGNG
今週は>>21の
http://www.laplata.ne.jp/javalisp/
でも読んで、雰囲気つかんだ後、
来週の週末あたりに携帯Lispでも開発したら・・?
0075M.B.NGNG
あれは邪道。LinkedList なんぞ使っちゃイカン。
結局 eq と equal の区別ができなくなって詰まってる。
現在、
中西正和『Lisp入門 システムとプログラミング』近代科学社
黒川利明『LISP入門』培風館
竹内郁雄『初めての人のためのLISP』サイエンス社
を読みながら悪戦苦闘中。
0076M.B.NGNG
>>71
> まぁ、プロログ、リスプと言ってる時点で
> 実用的なプログラムを書いていない証拠だなw
まぁ、tsv や XML で間に合う仕事をしてる香具師には
無縁な話なのだがね。それが悪い訳ではまったくないが。
0077デフォルトの名無しさんNGNG
なんかキチッとしたもの作り込んでるみたいなんで
完成したらサイトも作ってアップして下さい。
0078デフォルトの名無しさんNGNG
>>75
まあ本人の自由だろうけど、そういうレベルの人が言語処理系について
知ったような口をきくのはどうかと思う(>>35とかね)。
0079デフォルトの名無しさんNGNG
>>78
象牙の塔の中で言語論争してるわけじゃないからイイでし。
ここは78さんのために用意された花園でも、まして法廷でもないし。

そういうことをPrologスレを眺めてオモタ。
0080デフォルトの名無しさんNGNG
>>78
お前何様だよ(^^;
0081M.B.NGNG
>>78
前回 Lisp を書いたときは、
言語が FORTRAN (「大文字のフォートラン」、つまり60)で、
しかも再帰呼び出しが使えないので
(なにせ関数呼び出し用のスタックがなく、レジスタに直接
割り当てていたので、7層までしか使えない)、
プリプロセッサの皮を被せて「再帰呼び出し可能なFORTRAN」を
実現し(RATFOR みたいなもんだ)、その上で LISP を書いて、
その上に機械翻訳システムを実現したもんだ。

とはいえ N88 BASIC 上に LISP も PROLOG も実装したことがあるのだが
内部構成が全然思い出せない _| ̄|○
0082M.B.NGNG
なんか思い出してきたぞ。
あのころはメモリが少なくて実用的なプログラムが書けるような環境が
立てられなかったのと、LISP はあくまで数式処理なんかに使う
ツールでしかなかったので、動いたところで「こんなん使えねーや」
っつーんで捨てちゃったんだ。
今なら Java で Lisp インタプリタ書いて、その上で Prolog の処理系
(Lisp で六百行くらい)を動かしても十分実用になる。
いい時代になったもんだ。
0083デフォルトの名無しさんNGNG
だからさあ
ここはお前の日記帳じゃねえんだ>MB
つーかRATFOR出てくるなんていつの時代の人間だよ
>>75の文献も古すぎだぞ
古い本見ながら中途半端なLISP作るより
R5RSでも読んでScheme覚えたほうがいい
0084デフォルトの名無しさんNGNG
>>83
別にいいじゃん、興味ないから読んでないけど(汗
まあ内容はここに一応ふさわしい。
極めてスレ違いな言語論争で埋め尽くされるよりマシ。
0085デフォルトの名無しさんNGNG
スモールコムパイラを作ろうのねーちゃんは何歳だ?
0086デフォルトの名無しさんNGNG
10さい
0087M.B.NGNG
>>83
> つーかRATFOR出てくるなんていつの時代の人間だよ
知ってんじゃねーか。
0088デフォルトの名無しさんNGNG
>>57 プンスカプー。
0089デフォルトの名無しさんNGNG
コンパイラ
と
コンバイナ
と
コンバンワ
の区別が出来ない人がいるのですが、どうしたらいいですか。
0090デフォルトの名無しさんNGNG
そういえば某スレにこんなのがあったなぁ
#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");}}
0091デフォルトの名無しさんNGNG
ネタはマ板でやると喜ばれます
0092デフォルトの名無しさんNGNG
まぁ、LISPなんぞ哲学みたいなものだ。

つまり、概念なりを学には大変よい言語だが、
実用的な価値は、ほぼゼロに近いw
0093デフォルトの名無しさんNGNG
>>92
言語論争は死滅スレでやると喜ばれます、死ね
0094デフォルトの名無しさんNGNG
hai hai
0095M.B.NGNG
>>88
正直スマンカッタ orz
0096デフォルトの名無しさんNGNG
>>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
を思い出した。 哲学とも高尚な抽象概念とも関係ない使い道の例だお。





0097M.B.NGNG
>>96
「親分! てぇへんだ!」
「おいおい、どうしたんだ八」
「まぁまぁ八兵衛さん、朝御飯はお済みになったの?」
「すんませんお内儀さん、ってそれどころじゃ無ぇんで。
大川にお六字が……」
0098M.B.NGNG
>>97
……ってこんだけネタ振っといて八兵衛じゃなくて八五郎だ

またやっちまった _| ̄|○
0099デフォルトの名無しさんNGNG
コテハンってどうしてこんな(ry
0100デフォルトの名無しさんNGNG
100get!!!!!
0101デフォルトの名無しさんNGNG
煽り以外で >>92 に反論できる LISPer は居ない?
0102デフォルトの名無しさんNGNG
誰かあの文章を紹介してやれよ。「普通のやつらを作り出せ」とかいうやつ。
0103デフォルトの名無しさんNGNG
と、LISPのことが気になって仕方の無い>>101が語られました。
0104M.B.NGNG
>>101
数式処理は Lisp 以外の言語で書く気がせん。
これで十分。
……つーか Mule があるじゃん。あれって Lisp だろがよ。
0105デフォルトの名無しさんNGNG
竹内郁雄さんが
新しいマシンを開発するときは
その上に Lisp を実装すると非常に楽だと
bit の連載(TAO かなんかの開発の話)に書いてたな。
0106デフォルトの名無しさんNGNG
その辺にしておくべし。 LISPのことばっか喋ると
怠け者の>>101がまた荒らしで知識を得ようと熱くなる。

結局スレに迷惑かかる。多様な話題のほうが楽しいし。
0107デフォルトの名無しさんNGNG
>101
これ以上LISPerを呼ぶなよ
0108デフォルトの名無しさんNGNG
LISPer は独自スレを立てれ。
0109デフォルトの名無しさんNGNG
つーかLISPスレ立ってるだろ
0110デフォルトの名無しさんNGNG
処理系依存でない LISP スレが・・・ナイ!
0111デフォルトの名無しさんNGNG
LISPerは自体は構わんよ、下らん言語論争やフレームの元になるような事を書く奴さえこなければ。
このスレは実装技術のスレだ、個々の言語の良し悪しや独善的思想はフレームの元、

>>104
そういう奴にレスを付けると百害あって一利ないから一切書くな。
どうしてもレスを付けたければ死滅スレを立ててそこでやれ
0112デフォルトの名無しさんNGNG
連想配列って意外に不便。
キーワードのスペル間違えてデバッグに半日。
型なし言語も意外に不便。
評価しそこなってデバッグに半日。
PerlとPHPのソースコードレベルの検証ツールをキボンヌ
0113デフォルトの名無しさんNGNG
LISPのエンジン設計の話しはスレ的に歓迎なんだが・・・

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

個人のレベルにイチャモンつけるようなのは良くないよ
最初はみんな初心者
0115デフォルトの名無しさんNGNG
>>101 >>92
↑わざわざこのスレにきて学ぶ姿を見せつける美しい初心者の例
0116デフォルトの名無しさんNGNG
友達いないだろう?
死ねば〜
0117デフォルトの名無しさんNGNG
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

コンパイラに渡すまでもなくこれぐらいの変換はユーザー関数レベルで可能なとことか
まあコンパイラ自体もユーザー関数レベルで書けるけど
0118デフォルトの名無しさんNGNG
>>112
インタープリタ系言語はインタラクティブな環境があると開発しやすい。
自分で作った言語処理系もってるけど、そういう環境ができるまでは至極面倒だった(某ゲームの移植性をあげるために中間コード使っただけなのであんまり良いものじゃないけど)
perlはデバッグモードがあるが、phpはお手軽な環境が無いから面倒になったんだろう。
だいたい連想配列のキー間違いなんざインスペクタ使えば一発で解りそうなもんだよ。
0119デフォルトの名無しさんNGNG
>>118
いや、漏れはPerlからJavaに乗り換えたのでモウマンタイなのだが、
「CGIはPerlかPHP」って頭っから信じてる香具師がいて
そいつが管理してるプロジェクトからブツが上がってこないんで
迷惑してるんだが、下っ端のプログラマーに聞いてみると、
どうやらソースが荒れてて手がつけらんなくなってるらしいのだ。
かといって開発ツールを導入するのにも消極的なのだ。
だから、なんかしらソースコードレベルで適用できるツールはないもんかと。
0120デフォルトの名無しさんNGNG
PerlUnit
0121デフォルトの名無しさんNGNG
ここで聞く内容じゃないね
0122デフォルトの名無しさんNGNG
Ruby以外の言語は糞・
0123デフォルトの名無しさんNGNG
eval.c を読んでから言え。
0124デフォルトの名無しさんNGNG
LISPer ですが、何か?
0125デフォルトの名無しさんNGNG
RubyはRecursive Decentでつか?
0126デフォルトの名無しさんNGNG
Ruby >>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Lisp
0127デフォルトの名無しさんNGNG
>>125
ソース読んでないけどLALR(1)じゃなかったっけ?
0128デフォルトの名無しさんNGNG
emacs の弱点の1つがlispだったり擦るわけだがw
0129デフォルトの名無しさんNGNG
>>128↓
http://pc5.2ch.net/test/read.cgi/unix/1091212668/
        (戻ってこない方向で)
0130デフォルトの名無しさんNGNG
Emacsは元々LISP用のエディタだったんだろ?
逆にLISPだからこそここまで生き残ったとも言える。

S式嫌いならフロントエンド作ればいいだけの話な気がするけど、
>>129のスレはそういうことじゃないみたいだな。
emacsとviがUNIXのイメージを悪くしたのは確かな様だ。
0131M.B.NGNG
>>130
> emacsとviがUNIXのイメージを悪くしたのは確かな様だ。
現在でも UNIX 上で動くエディタの標準は emacs 互換の Mule。
「テトリス」と並ぶ有名なゲーム「rogue」の操作は vi 互換。
それを言うなら「emacs派とvi派の対立が」だろうと思うが、
実際には棲み分けができていたように思われ。
0132デフォルトの名無しさんNGNG
>>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年、何にもてに付けてねーや・・・。
0133デフォルトの名無しさんNGNG
いろいろ勉強してたけど、そろそろネイティブバイナリも吐ける
コンパイラを作ろうかなって気になったよ。
なんつーか、コンパイラ作成って楽しいな。
0134デフォルトの名無しさんNGNG
石田綾ってなにもの?
過去の実績を知りたい。
0135M.B.NGNG
>>133
つーか言語処理系の開発って、
(゚∀゚)イイ!
0136デフォルトの名無しさんNGNG
>>134
ttp://www.pureadult.co.jp/whtml/ishidaaya.html
0137デフォルトの名無しさんNGNG
再帰下降は仕組みが簡単だし最強っぽいのですがなんで
LALRやらLLやらを使うコンパイラが多いのですか?
0138デフォルトの名無しさんNGNG
>>132
何その痛いサンプルコード
0139ほんたまNGNG
おみゃ〜らよ、HSPはメニューつくれるのか?
おみゃ〜らよ、HSPのヘルプに目を通したが、命令語の一覧眺めたが、メニューつくる命令はないっぽかったが、どうか?
おみゃ〜らよ、Windowsソフトってメニューはつきものだろう?
そのWindowsソフトをつくるHSPにメニューをつける命令がないのはどういうこっちゃ?
おみゃ〜らよ、しゃくせんのあるけん、どうじ?
0140デフォルトの名無しさんNGNG
↑
誤爆??
0141デフォルトの名無しさんNGNG
>>132
何かが間違っている気がする
0142デフォルトの名無しさんNGNG
HSPスレに逝け
0143デフォルトの名無しさんNGNG
>>137
再起下降では解析できない文法があるから。自分でLALRとか書いてるじゃん。
0144デフォルトの名無しさんNGNG
>>137
LL の文法を解析するパーサが再帰下降型パーサだが……

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

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

ちょっと頑張れば LL に書き直せるけど、よけいな非終端記号が増えて
面倒な上、文法が直感的でなくなる。そんな機械的な作業はプログラムに
任せたいっしょ?
0145デフォルトの名無しさんNGNG
>>132
目次を見たときは結構いい構成になってると思ったけど,
ソースコードはかなり苦しいな
本の限られたスペースに載せるにはああしなきゃ
いけないとか決まりでもあるんだろうか?


0146デフォルトの名無しさんNGNG
>>144
再帰下降型というのは、LLじゃなくてrecursive decentの事です。
LLは下降型ですが再帰下降とは別物じゃないですか?
0147デフォルトの名無しさんNGNG
でも結局左再帰の問題はつきまといそうですね。
だから難しい上昇型使うのですね。
0148デフォルトの名無しさんNGNG
再起加工って文法の名前なのか?
0149デフォルトの名無しさんNGNG
>>132のコードも別に普通の手書き再帰下降パーサですよね。
なんか問題有るんですか?
0150デフォルトの名無しさんNGNG
LL(k)の事を再帰下降って言ってるだけ?
0151デフォルトの名無しさんNGNG
再帰下降は下降型解析法(LL)のやりかたの一つ
一度コンパイラの本でも読め
0152デフォルトの名無しさんNGNG
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 ]
0153デフォルトの名無しさんNGNG
ありがとう。読んでみる。
0154デフォルトの名無しさんNGNG
まぁ、口ばかり達者な奴がいるみたいだが(例 >>138 >>145)
それほどの実力の持ち主なら、
そちら様の完成コードでも拝見さしてもらいましょうかな?
0155デフォルトの名無しさんNGNG
>そちら様の完成コードでも拝見さしてもらいましょうかな?
>そちら様の完成コードでも拝見さしてもらいましょうかな?
>そちら様の完成コードでも拝見さしてもらいましょうかな?
0156デフォルトの名無しさんNGNG
>>154
pやらGやらVやら何って感じだが、
それよりなにより是非って( ゚д゚)ポカーン
基本的な日本語が使えてない。
コード以前に中学の国語あたりをやり直せ。
0157デフォルトの名無しさんNGNG
>>152
LL(k)構文解析で解析できる文法をLL(k)文法っていうんじゃないの?
0158デフォルトの名無しさんNGNG
>http://www.cbook24.com/bm_detail.asp?sku=4774121770
監:中田育男

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

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

読んで分かりやすいプログラムを書くのは
ある程度プログラムを読んだり書いたりの
経験がないと難しいだろうけど、ガンガレ。
あと、配列じゃなくてListを使うとか、
文字リテラルはinternしなくていいとか
もうちょっとJavaを勉強しよう。
0159デフォルトの名無しさんNGNG
http://www.amazon.co.jp/exec/obidos/ASIN/4254121393/249-6122590-2043526
中田育男はこれ書いた日本のコンパイラ最適化の第一人者ですな
0160158NGNG
著者が中田先生の下の学生かと思ったです。
0161デフォルトの名無しさんNGNG
G…Gikukaiseki
K…Koubunkaiseki
V…VM
これくらい想像できないようでは現場のコードは読めないぞ
0162デフォルトの名無しさんNGNG
”コンパイラの最適化”と”アーキテクチャごとのコードの最適化”は、
考え方のレイヤが違いますよね?
やはりコンパイラを作成する場合、ターゲットとなるアーキテクチャに対しても
詳しくないと本当の意味での最適化コードは作成できない??
0163デフォルトの名無しさんNGNG
>>161
マジですか?!
0164デフォルトの名無しさんNGNG
>>162
だいたい同じPentiumでも種類ごとに適した最適化手法が違うし
0165デフォルトの名無しさんNGNG
定数値の最適化やら誘導変数の最適化やらはCPUが何だろうができると思うが。
0166デフォルトの名無しさんNGNG
>>165
???
0167デフォルトの名無しさんNGNG
>>165
君は>>162を100回読み直したまえ。
0168デフォルトの名無しさんNGNG
>>158
そういう小姑みたいな性格は何処に行っても嫌われますよ〜
0169デフォルトの名無しさんNGNG
Gokiburi
Kokkurochi
Varusan
0170デフォルトの名無しさんNGNG
>>168
嫌ってくれて構わんよ
0171折れ目もNGNG
なぜ Threading Code なのか?
http://www.kt.rim.or.jp/~tyamamot/forthj/threaded-codej.html

マイクロベンチ.興味深い.
http://www.complang.tuwien.ac.at/forth/threading/
Pentiumならsubroutineが速い
0172デフォルトの名無しさんNGNG
>Pentiumならsubroutineが速い
そりゃそうだろ(w

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

JavaのVM向けのコードを生成する簡単なコンパイラが乗っているというので買いました。
非常に参考になると思います。
ただ、よけいなことかも知れませんが、この本の構文解析の部分は、中田育男著の「コンパイラ」の本と、
例題や説明までほとんど同じなので驚きました。
著作権の方は大丈夫なのでしょうか。
0174デフォルトの名無しさんNGNG
ガクガクブルブル
0175デフォルトの名無しさんNGNG
中田先生監修だからなあ。
0176デフォルトの名無しさんNGNG
>>175
それどころか前書き見たいのも中田先生が書いてた
0177デフォルトの名無しさんNGNG
弟子が中田先生の本の改訂を引き受けた、ってことでFA?  印税山分けだったりして
0178デフォルトの名無しさんNGNG
石田綾なんて人間ははじめから居なかったっつうことだろ
0179デフォルトの名無しさんNGNG
>>178
するどいな
0180デフォルトの名無しさんNGNG
始めて読むコンパイラ本としてはいかがですか?
0181デフォルトの名無しさんNGNG
ところで、最適化の話なんだけど、
ドラゴンブックにある「基本ブロック」
っていう考え方って、何かセンス悪い気がしない?

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

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

現実のコンパイラでも「基本ブロック」って
いう戦略は、よく使われているんだろうか?
0182デフォルトの名無しさんNGNG
買っちゃいましたorz
0183デフォルトの名無しさんNGNG
本屋で見かけたので買ってきた。中田育男監修の文字を見たからw



0184デフォルトの名無しさんNGNG
本屋に行ったけど見当たらなかった
0185 NGNG
http://www.cbook24.com/bm_detail.asp?sku=4774121770
あっという間に品切れになってる。
0186デフォルトの名無しさんNGNG
>>181
基本ブロックが何かわかってないだろ。
基本ブロック自体はグラフそのものじゃなくて、
グラフの節点だぞ。
0187デフォルトの名無しさんNGNG
>>181
コンパイラ書いてみろ。どんなに頑張っても、基本ブロックの概念を使わないコンパイラは、
仮に>>181が天才で、同じ質のコード生成を達成したとしてもコンパイル速度は100倍
遅くなる。更に言えば、基本ブロックの性質を完全に無視するとするなら、同じ質の
コードは生成できない。

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

ついでに言うと、一般のプログラムってのは再帰的な構造を持っていることを考えると、
基本ブロックという概念はむしろセンスが良い。
0188デフォルトの名無しさんNGNG
>>186
基本ブロックの中の人とはリストであり、
すなわち縮退したグラフだと思うけど?

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

後はそれを「よいセンス」と捕らえるかどうかの差だね。
0189デフォルトの名無しさんNGNG
認るでしょ
認るでしょ
認るでしょ
0190デフォルトの名無しさんNGNG
>>188
> 基本ブロックの中の人とはリストであり、 
> すなわち縮退したグラフだと思うけど? 
細かく分けすぎ。そこまで分けて最適化に役に立つのか?
何のためのグラフか考えてみろって。
語義的には確かに正しいんだが、その反論はちょっと苦しいと思うぞ。

自分も基本ブロックはセンスが良いと思うほうに一票。
0191デフォルトの名無しさんNGNG
相談なのですが、flex,bison とC#を連携させて
言語処理系を開発するとしたら、みなさんなら
どういう実装戦略をとりますか?
0192デフォルトの名無しさんNGNG
Ruby!>>>>>>>>>>>>>>>>>>>>>>>>>>C#
0193デフォルトの名無しさんNGNG
>>191がどんな言語処理系を求めて
開発を始めようとしているのか、まずそれから語るんだ。
0194デフォルトの名無しさんNGNG
>>191
リフレクションで丸ごと生成できないかなと・・・
思っただけ(汗
問題はBNFを何処に書く、というところ?
boostみたいに言語中言語にできれば、シームレスで最高なんですが、
C#のジェネリッククスは果たしてどこまでできるのか?
てところ。
VisualStudio.NET2005でたら、ちょっとアタックしてみよかと思ってます。
0195デフォルトの名無しさんNGNG
えっ?
0196デフォルトの名無しさんNGNG
>>194に手段が目的になってしまっている人をboost病患者と呼びます
0197デフォルトの名無しさんNGNG
>>196
「手段」を作る方法を語るのが目的のスレで何を言う
0198デフォルトの名無しさんNGNG
古くは m4 病患者とも呼んだな。。。
0199デフォルトの名無しさんNGNG
-- かなづちを持つ者には、すべてが釘に見える
0200デフォルトの名無しさんNGNG
                         -- Minamo Narukaze
0201デフォルトの名無しさんNGNG
flex,bison,リフレクション,BNFの記述,boost,…、どれ一つとて実際に
使いこなしてないのまる分かりだぁ。。 (o´C_,`o) ハズカスィ〜

それっぽい用語並べていけば、自発的に連結して
素敵な何かが自然発生する・・・とか、連結方法が思いつかないから
みなさんに『実装戦略』の糸口を聞きにきた、とかか…。 ハ・ス・゙カ・スィ〜
0202デフォルトの名無しさんNGNG
スルーしろよ
0203デフォルトの名無しさんNGNG
0204デフォルトの名無しさんNGNG
>>201
作りたいからやってんだろいいじゃネェか
使いこなしているかどうかは関係ないってしてほしいね
0205デフォルトの名無しさんNGNG
「何」を作りたいのか? (回答例) >>194

頭に浮かんだ抽象像を前に悩む前衛彫刻家みたい
0206デフォルトの名無しさんNGNG
ツチやノミを前にしただけでイッパイ・イッパイなのが見て取れるから
>>196みたいなこと言われるっち。 
0207デフォルトの名無しさんNGNG
>>205
意味不明の煽りヤメレ、フレーム引き起こしたいなら適当な死滅スレにでも逝け
0208デフォルトの名無しさんNGNG
>イッパイ・イッパイなのが見て取れるから
余計な一言
0209デフォルトの名無しさんNGNG
                l   
        /\___/ヽ
        /       :::::::\
       |  ''''''   ''''''   .:::|   / ̄ ̄ ̄ ̄ ̄ ̄ ̄
      |(●),   、(●)、.::::| < 糞スレで余計なこと
       |  ,,ノ(、_, )ヽ、,, .:::::::|   | 二度と聞かねぇょ・・・
       \ `-=ニ=- ' .:::::/   \_______
           `ー`ニニ´-一´ヽ、
          /    _    l
         /  ̄`Y´   ヾ;/  |
______,|    |    |´  ハ
           |    |    |-‐'i′l
            |__ |   _|   7'′
         (   (  ̄ノ `ー-'′\
           ̄   ̄          \


0210デフォルトの名無しさんNGNG
何もできない奴があせる必要もないのに、勝手にあせって人の邪魔をしようと必死なだけ、気にスンナ。
0211デフォルトの名無しさんNGNG
                l   
        /\___/ヽ
        /       :::::::\
       |  ''''''   ''''''   .:::|  
      |(●),   、(●)、.::::| .。oO( プッ
       |  ,,ノ(、_, )ヽ、,, .:::::::|  
       \ `-=ニ=- ' .:::::/  
           `ー`ニニ´-一´ヽ、
          /    _    l
         /  ̄`Y´   ヾ;/  |
______,|    |    |´  ハ
           |    |    |-‐'i′l
            |__ |   _|   7'′
         (   (  ̄ノ `ー-'′\
           ̄   ̄          \
0212デフォルトの名無しさんNGNG
boostってさ、C++の機能だけでなんとかしようとしてるけど
あそこまですんならperlとか駆使すればいいじゃんねえ
0213デフォルトの名無しさんNGNG
>>212
一度使ってみたら?
別ファイルとして扱っていた文法定義ファイルが、
ライブラリーになるという意味がどれだけ重要かわかるよ。
0214デフォルトの名無しさんNGNG
C++でPerlの処理系を書いて丸ごと埋め込むよりは
C++の機能だけで実装した方がネイティブな感じがして(・∀・)イイ!!
0215デフォルトの名無しさんNGNG
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> C++=糞言語 >>>>>>>>>>>>>>Perl=汚物
0216デフォルトの名無しさんNGNG
Rubyは動的評価の手段が文字列をevalするだけだから
このスレ的にはいまいちだろ。やはりLisp >>> Ruby、とか言ってみる。

Lispのほかにも構文木をファーストクラスオブジェクトとして扱える言語は
あるのかな?
0217デフォルトの名無しさんNGNG
Pythoooooooooooooooooooooooooooooooooooooooooooooooooooooon
0218デフォルトの名無しさんNGNG
                l   
        /\___/ヽ
        /       :::::::\
       |  ''''''   ''''''   .:::|  
      |(●),   、(●)、.::::|
       |  ,,ノ(、_, )ヽ、,, .:::::::|  
       \ `-=ニ=- ' .:::::/  
           `ー`ニニ´-一´ヽ、
          /    _    l
         /  ̄`Y´   ヾ;/  |
______,|    |    |´  ハ
           |    |    |-‐'i′l .。oO( プッ
            |__ |   _|   7'′
         (   (  ̄ノ `ー-'′\
           ̄   ̄          \
0219デフォルトの名無しさんNGNG
>>216
誤解があるようです。
Ruby のイテレータメソッドはそんな単純なものじゃないです。
0220デフォルトの名無しさんNGNG
>>219
じゃあどんなもんなの?
0221デフォルトの名無しさんNGNG
>>216とイテレータメソッドに何の関係があるのだろうか
0222デフォルトの名無しさんNGNG
>>217
Pythonの構文木ってLisp使いが考えるようなものじゃないようだから
あてはまらないと思う。

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

の「Lisp プログラマが Python を学ぶときの要点」の12番参照。
0223デフォルトの名無しさんNGNG
>>221
これこそ本物の知ったかって奴
0224デフォルトの名無しさんNGNG
>>223
オレも221と同じ疑問をもってるのでよろしければどういうことか
教えてください。
0225デフォルトの名無しさんNGNG
Ruby以外は糞
死ね
0226デフォルトの名無しさんNGNG
>>225
Rubyの評判を落としたいのか?
それともスレの趣旨が理解できない池沼か?
0227デフォルトの名無しさんNGNG
>>224
これは221に語りかけたものです、ちょっと足らなかったですね
でも、なんでも煽りに見えるのは良くないです。

#つか、そんなスレになっている元凶は死ね、
#いくら煽ったってお前の実力は向上しないし、稚拙でもタコでもやる奴の実力のみが向上するんだよ。
#おまえの行き着く先は何もできない才能も人望も無いロートル爺だ。
0228デフォルトの名無しさんNGNG
       /\___/ヽ                           l   
      /:::::::       \                  /\___/ヽ
     .|:::.   ''''''   ''''''  |   / ̄           /       :::::::\
      |::::.,(一),   、(一)| < >>227         |  ''''''   ''''''   .:::|      
     .|::::::: ノ ,,ノ(、_, )ヽ、,, |  \_          |(●),   、(●)、.::::| .。oO( 心の敵とアツク戦い始めた・・・
      \:::::.ヽ`-=ニ=- ' /                |  ,,ノ(、_, )ヽ、,, .:::::::|       ソッ、としておくべし
     /   `一`ニニ´-,ー´                  \ `-=ニ=- ' .:::::/  
     /  | |   / |                       `ー`ニニ´-一´ヽ、
    /   | |  / | |                      /    _    l
    /   l | /  | |                     /  ̄`Y´   ヾ;/  |
__/    | ⊥_ーー | ⊥_ _____________,|    |    |´  ハ
   |  `ーヽl_l_l.} ヽl_l_l.}                       |    |    |-‐'i′l
  (、`ーー、ィ   } ̄`   ノ                       |__ |   _|   7'′
    `ー、、___/`"''−‐"                    (   (  ̄ノ `ー-'′\
                                   , ̄   ̄          \
0229デフォルトの名無しさんNGNG
2chでなにをムキになってるんだかw
0230デフォルトの名無しさんNGNG
まったりしよう
0231191NGNG
知らぬ間に荒れてるし・・・
え〜とですね。
JavaでLispという企画を読んで、そんなら俺はC#で
Lispみたいに考えただけなんですけど・・・
ガーベジコレクションはC#任せにできるけど
字句解析構文解析で既存の生成系を生かせないかなと
思っただけなんですね、はい
S式ならそんなの必要ないとかそういう突っ込みはなしで
お願いします・・・
0232デフォルトの名無しさんNGNG
↓以後何事もなかったかのようにどうぞ
0233デフォルトの名無しさんNGNG
で、あや本の話はどうなった?
0234デフォルトの名無しさんNGNG
今日大学病院行ってしまい一日仕事休んだから買ってきて読んでみるつもり
0235デフォルトの名無しさんNGNG
あや本のソース見ていると、Javaの書き方じゃないね。
C言語のソースから写しましたって感じだなあ。
0236デフォルトの名無しさんNGNG
JAVA作るのに、JAVAの書き方せんだろ?
0237デフォルトの名無しさんNGNG
haxa?
0238デフォルトの名無しさんNGNG
>>236
ボケの方向があさって過ぎ。
0239デフォルトの名無しさんNGNG
21st Century Compilers
http://www.amazon.com/exec/obidos/tg/detail/-/0321131436/

いつでるの?来年の11月かよ・・・
0240デフォルトの名無しさんNGNG
あや本
http://www.amazon.co.jp/exec/obidos/ASIN/4774121770/
0241デフォルトの名無しさんNGNG
>>235
大学院の実習で作ったプログラムみたいだね。
java.util を使ってないところがすごい。
0242デフォルトの名無しさんNGNG
ヲマイラ何打カンダであやの掌(テノヒラ)の上で転がされてるっす・・

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


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

.    曰
     | |   ,,-─-、
    ノ__丶 [lllllllllll]     ./ ̄いくら煽ったってお前の実力は向上しないし、
    ||中|| |||`_ゝ´|||_  <  稚拙でもタコでもやる奴の実力のみが向上するんだよ。
     ||田||  丿 ( .| ¢、 .\_ おまえの行き着く先は何もできない才能も人望も無いロートル爺だ。
  _ ||育|||/丿  .    ̄丶.)
  \ ||男||L二⊃ . ̄ ̄\
  ||\`~~´  (<二:彡) ←「コンパイラ・スクリプトエンジン」相談室住民
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
   .  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
0244デフォルトの名無しさんNGNG
>>241
インポートはjava.ioだけだったような・・・。
0245デフォルトの名無しさんNGNG
まあ藻前裸はその程度の本を書く実力と人脈さえ無いんだけどな(w
0246デフォルトの名無しさんNGNG
λ......         λ......       λ......
  λ......            λ......
 λ......      λ......        
        λ......                  λ......
    λ......             λ......
                λ......
 λ......       λ......          λ...... 
0247デフォルトの名無しさんNGNG
>>242
この手の技術書は初刷 2000 冊くらいだぞ。
2000円 * 5% * 2000 = 20万円
バイト代程度じゃん。
0248デフォルトの名無しさんNGNG
現状売り切れ続出
0249デフォルトの名無しさんNGNG
今日買ってみたよ。安かったんで。
0250デフォルトの名無しさんNGNG
>>248
田舎では売れ残っているが。
0251デフォルトの名無しさんNGNG
ソースに関するレスが多いけど
本文はどう?>買った人
0252デフォルトの名無しさんNGNG
コン・パイラさんががんばってます。
0253デフォルトの名無しさんNGNG
あれはおかしいよな。コンバイ・ラの方がいいよな
0254デフォルトの名無しさんNGNG
結局誰も買ってないのか(´д`)
0255デフォルトの名無しさんNGNG
いや、俺と >>252-253は買ってると思う
0256デフォルトの名無しさんNGNG
買ったよ、本当に言語処理初心者向けに書いてあって、ある意味面白かったけど。
中田先生の本とかを読む人には向かないんじゃないかな(最適化技法の本でこれだったら随喜の涙だけど)

0257デフォルトの名無しさんNGNG
>>256
すまん、分かるように書いてくれ。
0258デフォルトの名無しさんNGNG
もしかして、あや本は虎の巻だけ読めばOK?
0259デフォルトの名無しさんNGNG
>>257
綾本は言語処理に興味がでたごくごく一般的な人向けに書かれている。
中田先生の書籍は専門書なので、これらを読む人には退屈だろう、ただしこういう感じで一般向けに最適化技法を説明してくれれば楽しい思いができると思う。

これならわかってもらえますか?
0260デフォルトの名無しさんNGNG
>>259 = 綾本
>>256 = 専門書
0261デフォルトの名無しさんNGNG
Javaのコンパイラを作ってみようかと思ってます。
Parser GeneratorはJavaCCやANTLRなどいくつかあるけど、Bytecode Generator作成を支援してくれるツールはありますか。
ぶっちゃけ、既存のJavaコンパイラと同じASTを作成すれば、Bytecode生成はそのコンパイラのバックエンドに任せることが
できるんではないかと考えてはいるんですが。
0262デフォルトの名無しさんNGNG
>>261
2chで聞く前に自分で調べる行動力が無いと無理
0263デフォルトの名無しさんNGNG
もはや作るとは言わんような。
0264M.B.NGNG
>>261
swap と loop〜until〜do〜repeat 構文を実現できるんなら、
Java 拡張言語のコンパイラは作ってもいいかなと思っている。
JavaCC を使えば Java のライブラリはそのまんま利用できるしな。
0265261NGNG
>>262
いや、ググってもバックエンド部分がわからなかったから聞いているんだが。
パーサジェネレータはたくさん見つかったんだが、バックエンドは見つからないぞ。

>>264
swapやloopではないんだが、独自に文法を拡張したコンパイラを作ってみたいと思って。
0266デフォルトの名無しさんNGNG
Javaのコンパイラで
ソース公開されてるやついじればいいじゃん。
何でメタツールの話から入るかねぇ。
0267デフォルトの名無しさんNGNG
>>259
分かりました。
どうもです。
0268デフォルトの名無しさんNGNG
コンパイラとスクリプトだと作る難しさは違いますが?

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

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

コンパイラ・スクリプトはそのなかでどれくらいの難易度なのか
もうしわけありませんが宜しくお願いします。
0269デフォルトの名無しさんNGNG
>>268
違いますが?
↓
違いますか?

でOK?何いきなり煽ってるんだと思ったんだけど。
0270デフォルトの名無しさんNGNG
>>269
すいません。”違いますか?”です。

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

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

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

OSやデータベースなどが規模にもよるけど難しいそうと思うのですが?
0271デフォルトの名無しさんNGNG
>>270
ピンキリ。
スクリプトもOSも、簡単な物は比較的簡単に作れるけど、
ちゃんとしたものを作るのは難しい。
0272デフォルトの名無しさんNGNG
>>268
期待してる答えとは違うと思うけど、
とりあえず将棋や囲碁でプロに勝つのが難しい。
0273デフォルトの名無しさんNGNG
ドラゴンブックと中田育男本、今から買って読むとしたらどっちがお勧めですか?
0274デフォルトの名無しさんNGNG
対象読者や用途が違うので
0275デフォルトの名無しさんNGNG
というか、コンパイラの基礎も知らないで育男本は無理。
0276デフォルトの名無しさんNGNG
育男本の用途は最適化、
ドラゴンブックは原理・技法・ツールの紹介だと思うのですが、

対象読者はやっぱり育男本がエキスパート、
ドラゴンブックは学部生あたりと考えてよろしいでしょうか?
0277デフォルトの名無しさんNGNG
>>276
どっちも教科書だよ。
ドラゴンブック読んで、それから育男本って感じか。
強いていうなら、学部生向けと修士学生向けってくらいの違い。

いずれにせよ、どちらもコンパイラの専門家が改めて読むレベル
の本じゃない。
0278デフォルトの名無しさんNGNG
コンパイラ屋のプロは何読んでるの?
0279デフォルトの名無しさんNGNG
ドラゴンブック
http://www.esbooks.co.jp/books/detail?accd=09093768

 「勉強し終わると、滅多に開くことはありませんが :−) 」
0280デフォルトの名無しさんNGNG
>>278
たぶん・・学会集とか論文じゃない??
プロのコンパイラ屋としてどのくらいが飯食っていけてるのかしらんけんど・・
IBM東京基礎研究所のひととか想像すればいいのか?
0281デフォルトの名無しさんNGNG
電気メーカーにショボイコンパイラ屋たくさんいるぞ。
0282デフォルトの名無しさんNGNG
そっ、そうなのか、
優しい気持ちになれました
0283デフォルトの名無しさんNGNG
最適化って最適するパターンを作ってそれに合うか
合わないかというものでしょうか?

CPU毎の最適化とは別に他は思い浮かばないのですが
0284デフォルトの名無しさんNGNG
定数式の最適化とか依存しない物もたくさんあるだろ。
0285デフォルトの名無しさんNGNG
電気メーカーのショボイコンパイラ屋です。
文献はPLDI、POPL、TOPLAS、CCあたりが定番でしょうか。

他のコンパイラ屋の方々はどの辺をチェックしてます?
0286デフォルトの名無しさんNGNG
>>283
不変式のループ外移動とか、ループアンロールとか、グラフの状態を探索しないといけない最適化はいくらでもある。
0287デフォルトの名無しさんNGNG
こういう地味な仕事してる奴って、地味な言語つかってたりするのかな?
0288デフォルトの名無しさんNGNG
またあったので報告。上のほう。
ちょっと痛めのドキュもあり・・。下の方。
http://www.tom.sfc.keio.ac.jp/~psnow/
0289デフォルトの名無しさんNGNG
グラフの探索にあこがれるんだけど
自分の頭では無理っぽい
3番地コードからやってみるか・・
0290デフォルトの名無しさんNGNG
>>288
完成してたんだ.
0291デフォルトの名無しさんNGNG
知人?
0292デフォルトの名無しさんNGNG
>>289
3番地コードってのが三つ組みの事なら、グラフの方が楽ですよ、何でもかんでもつっこんじゃうから頭がこんがらがるのも解るけど。
0293デフォルトの名無しさんNGNG
>>288
慶応の卒研でもこんなものか。
ちょっと勇気づけられた。

しかし慶応大生でもこんなのか。
もうどうしていいやら……
0294デフォルトの名無しさんNGNG
>>280
そでもないよ、もっと簡単に済ましてる。
開発時間との戦いは別にどの業種と限ったものじゃないです。
0295デフォルトの名無しさんNGNG
>>285
漏れは高卒なのでアカデミックな世界のことはなーんも
分からんのですが、カンファレンスみたいなものから
著名人の名前と研究テーマを探して、名前でぐぐって、
研究者のHPを見つけ、論文一覧から欲しいものを探す、
そういう感じですか?
0296デフォルトの名無しさんNGNG
>>295
情報学会誌とかACMとか購読してる方が多いと思う。
Webで検索するよりノイズ少ないし。
0297デフォルトの名無しさんNGNG
>>296
日本情報処理学会って ACM と比べてどう?
入会する価値ある?
0298デフォルトの名無しさんNGNG
>>297
ACM と IEEE だけで十分だと思うよ。
0299デフォルトの名無しさんNGNG
>>298
でも日本で何が起きているのか知る一端にはなる。
それと辞書無しでも読めるんで休憩時間には向いてる。
0300デフォルトの名無しさんNGNG
>>299
世界的にはトレンドから外れちゃったけど、なぜか日本では
続いているってなネタもあるしね。暇つぶしにはなるわな。
0301デフォルトの名無しさんNGNG
日本情報処理学会
顔見知り同士のしょぼいミニコミ誌
0302デフォルトの名無しさんNGNG
海外だって一部の除けば似たようなもんじゃん
0303デフォルトの名無しさんNGNG
>>302 それ本当?たとえば?
0304デフォルトの名無しさんNGNG
たとえば、って大抵の分野は狭いので自然と知り合い同士になるのが道理なんだが
0305デフォルトの名無しさんNGNG
>>304
必ずしも「しょぼい」わけではないんでない?
0306デフォルトの名無しさんNGNG
>>287
LIS(ry
0307デフォルトの名無しさんNGNG
>>268
>実際にプロのプログラマーだと、PC関係のソフトで難しいプログラムは
>なんでしょうか
Mathematicaみたいなソフトも作るのむずかしそう。
0308デフォルトの名無しさんNGNG
>>307
IE も大変だと思うよ。不正な HTML でもそれなりに表示する必要があるし、
HMTL, CSS, XML あたりは規格もそれなりにデカイ上に、画像の遅延表示や
ユーザが任意のタイミングでリロード、戻る、進むなんかを実行できることが
大前提になってる。

部分的な実装に関わるだけならともかく、全体の設計からって話だと
Office なんかも大変だろう。
0309デフォルトの名無しさんNGNG
>>308
不正のタグの事。
結構打ち込みタグでエラー起こしてるけど、エラー処理してるとは
思えないな。

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

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

単純にIEみたいなもののスクリプト系の表示プログラムは
簡単そうだし。
0310デフォルトの名無しさんNGNG
javascriptとかの解釈は?
0311デフォルトの名無しさんNGNG
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
0312デフォルトの名無しさんNGNG
Lispが気になってしょうがない奴がいるなこのスレ。
0313デフォルトの名無しさんNGNG
>>309
> 結構打ち込みタグでエラー起こしてるけど、エラー処理してるとは
> 思えないな。
Amaya とか使うと、IE がいかに適当(良い意味で)に処理してるか良く分かるぞ。
0314デフォルトの名無しさんNGNG
lispに骨髄反射してる奴がいるな、この摺れw
0315デフォルトの名無しさんNGNG
Rby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>lisp
0316デフォルトの名無しさんNGNG
骨髄・・・バンク
0317368NGNG
こんな事聞いたら怒られるかもしれないですが、
XMLのいろいろな規格を解釈するリーダーを作成しようと思ったら、
どのような手順を踏めばいいのですか?頭がよろしくなく理解力がないですが
よろしくお願いします。
0318デフォルトの名無しさんNGNG
未来からこんにちは。
0319デフォルトの名無しさんNGNG
368に近づくまでまだ時間がある。それまでに理解力をつけるんだ。
0320デフォルトの名無しさんNGNG
単純に<〜>を付いてるものを3つのポインタを使った

typedef staruct tagXML{
〜
struct tagMML *prev;
struct tagMML *next;
struct tagMML *yoko;
char *namel;
char *data;
}

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

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

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

0321デフォルトの名無しさんNGNG
HTMLも基本は一緒だよ。

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

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

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

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


tableとイメージとpreを使った簡単なブラウザを今度作ってみるつもり
だけど・・・。
0322デフォルトの名無しさんNGNG
>>320 >>321
誰か翻訳してくれ
0323デフォルトの名無しさんNGNG
イラネ
0324デフォルトの名無しさんNGNG
tabel
0325デフォルトの名無しさんNGNG
描写するだけぁない。


酔っ払いか?
0326デフォルトの名無しさんNGNG
>>227
0327デフォルトの名無しさんNGNG
   なんでも煽りに見えるのは良くないです。

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

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

0328デフォルトの名無しさんNGNG
コンパイラの学習はLISPが良いな
0329デフォルトの名無しさんNGNG
初心者がLISPでコンパイラを書こうとすると、グラフの実現でつまづく気がする。
0330デフォルトの名無しさんNGNG
LISP最高!
これ覚えると他がアフォらしく見えるよ!
0331デフォルトの名無しさんNGNG
なんでも煽りに見えるのは良くないです。
つか、そんなスレになっている元凶は死ね、
いくら煽ったってお前の実力は向上しないし、
稚拙でもタコでもやる奴の実力のみが向上するんだよ。
おまえの行き着く先は何もできない才能も人望も無いロートル爺だ。

【語り・・・「コンパイラ・スクリプトエンジン」相談室4 >>227】
0332デフォルトの名無しさんNGNG
LispよりSchemeの方が単純で良いと思う。
0333デフォルトの名無しさんNGNG
継続と末尾再帰最適化が義務になるので却ってハードル高くなんない?
0334デフォルトの名無しさんNGNG
>>333
MiniSchemeとか、継続も末尾再帰もGCまかせにする単純な方法があるから、
そんなに大変じゃないよ。
まあ極力GCを避ける実装とか、コンパイルするとかなるとそれなりに大変だけど、
自己記述できるからだいぶ小さくまとまる。
下手な俺流言語でがんがるよりはマシ。
0335デフォルトの名無しさんNGNG
『コンパイラの学習はLISPが良い
    ↓
 LISPでコンパイラを書くとグラフの実現でつまづく気がする
    ↓
 Schemeの方が単純で良いと思う
    ↓
 継続と末尾再帰最適化でハードル高くなるのでは?
』

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

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

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

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

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

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

『下手な俺流言語でがんがるよりはマシ。』
0336デフォルトの名無しさんNGNG
どーか漏れの幼い書き込みで荒れないで下さい。お願いします。
0337デフォルトの名無しさんNGNG
>>336
誰だよお前
0338デフォルトの名無しさんNGNG
オレオレ
0339333NGNG
>>334
まあ継続とかのフレームを毎回ヒープからアロケートしまくれば簡単なんだけど、
知らないと難しい類いの問題じゃないかな。

どうでもいいが、

LispよりSchemeの方が単純で良いと思う。
↓
継続と末尾再帰最適化が義務になるので却ってハードル高くなんない?
↓
下手な俺流言語でがんがるよりはマシ。

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

>>335
「Lispを書く」と「Lispで書く」が各人ばらばらでつよ。
繋がってるようで繋がってない。
0340デフォルトの名無しさんNGNG
>>339
まあ、下手な俺流 Lisp はあり得るかな。
下手かはともかく、遥か昔はみんな俺流 Lisp だったといえなくもないわけだし。
0341デフォルトの名無しさんNGNG

(´◕ω◕`)ばらばらか・・そっか・・
0342デフォルトの名無しさんNGNG
このスレ共通言語をSchemeにすれば全て解決
0343デフォルトの名無しさんNGNG
>>342
却下
0344デフォルトの名無しさんNGNG
>>343
なんで?
0345デフォルトの名無しさんNGNG
グラフが扱いにくい
0346デフォルトの名無しさんNGNG
>>345
グラフって?
0347デフォルトの名無しさんNGNG
flex,bisonについて、このスレ的な見解はありますか?
0348デフォルトの名無しさんNGNG
flex2.5.31
0349デフォルトの名無しさんNGNG
>>347
手軽に済ませたければ使うとよろし。きめ細かなエラー回復処理を
したいとか、特殊な構文山盛りの言語だと、手でパーサー書いた
方が良い。

ただ C だと文字列操作繁雑だから、個人的には C++ 処理系と
組み合わせて使えるヤツを勧めておくが。
0350デフォルトの名無しさんNGNG
S式で書けばflexもbisonも(゚�听)イラネ
0351347NGNG
どうも
0352デフォルトの名無しさんNGNG
Rubyの青木さんの256本を買った。
いや、これなら自分でも読めそうだったんで。
0353デフォルトの名無しさんNGNG
現状 flex はいいとしても、bison又はyacc に変わるものなし
と思う俺は実用主義
0354デフォルトの名無しさんNGNG
よほどの特殊事情がないかぎりflexとbisonで済ませるね
不足を感じたことは今のところなし。
0355デフォルトの名無しさんNGNG
c++から使いにくいインタフェースは改善されたんだっけ?
Parser ClassとかLexer Classは提供されてる?
0356デフォルトの名無しさんNGNG
sfにあるreentrantなflexは本家にマージされないの?
0357デフォルトの名無しさんNGNG
JavaCCとANTLRとSableCCとCUPとnotavaccの比較ってだれかやってくんない?
notavaccのページにはJavaCCとの比較が、SableCCのページにはANTLRとの比較があるけど、ほかのも知りたい。
他力本願ですまん。識者の意見求む。
0358デフォルトの名無しさんNGNG
LISP に変わるもの無しと思っている俺は非実用主義
0359デフォルトの名無しさんNGNG
>>353
前に評価したけど yacc からの移行なら yayacc がなかなか良いよ。
過去の遺産の都合で未だに flex + bison な仕事を抱えてて、移行
できてないが>俺
0360デフォルトの名無しさんNGNG
javaで作るパーサの本読んだ人いる?
ああいう感じで構文をクラスに落としてくれるコンパイラコンパイラってないのかな?
0361デフォルトの名無しさんNGNG
>>360
JavaCCじゃ不満?
0362デフォルトの名無しさんNGNG
>>361
http://www.pearsoned.co.jp/washo/java/wa_java01-j.html
この本なんだけどね、すごく綺麗なパーサ用パーツ群なんだよね。
0363デフォルトの名無しさんNGNG
>>362
せっかくその本読んだんなら自作してみては?
0364デフォルトの名無しさんNGNG
ソースとかヴィダルサスーン並に綺麗なん?
0365デフォルトの名無しさんNGNG
その本わかりやすく簡潔で超おすすめだった!
自分でなんとなく興味があっても、結構手が出しにくく思える「パーサ関連」の良書だった。

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

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

0366デフォルトの名無しさんNGNG
作者か関係者か。いいかげんウザいから消えろ。
0367デフォルトの名無しさんNGNG
君、アマゾンの・・
0368デフォルトの名無しさんNGNG
作者←海外から青い目の2chねらーかよw
0369デフォルトの名無しさんNGNG
http://www.amazon.co.jp/exec/obidos/ASIN/4894714078/
375はカスタマーさんですか??
0370デフォルトの名無しさんNGNG
中身Javaクラスべったりで萎えた


0371デフォルトの名無しさんNGNG
>>366
すぐ関係者とかを疑うのって痛くないか?
0372デフォルトの名無しさんNGNG
横から悪いが>>360はその本にそんなに感銘受けてるっつーなら
それ使ってりゃいいのでは?
0373デフォルトの名無しさんNGNG
C#で使えるまともなBisonご存知ないですか?
GCの効くJavaでもいいですが、C#の方がコーディング早いから、できるの
であればいいかなぁ程度なのですが、XMLの規格の解析するだけなので速度は
気にせず、解析できればおっけーなのです。
0374!=360NGNG
>>372
その本は読んだことないけれど、本に載っているサンプルよりももっと「でき」がよい
ものはあるかどうか、っていうことじゃないかな?
0375360=362NGNG
なんか荒れてますね
>>372,361
javaCCとかってパースクラス本体が妙にでかいのができるんで、件の本(これはパーサを作る為の細かいパーツの集合なんでBNFから自動展開とかはしないのです)
の物みたいに粒度の細かいクラスに分解するようなコンパイラコンパイラは在りませんかって問いかけだったんです。
0376デフォルトの名無しさんNGNG
>>360>>362から>>375を把握できるヤシはESP
0377デフォルトの名無しさんNGNG
>>363はBNFから自動展開出来るように君が作ればぁ〜って言ってるんだよw
0378デフォルトの名無しさんNGNG
>>377
作ってるよ、お前の書き込み面白くない、どっかいけよ。

>>363
ライブラリに最初から入っているxmlパーサじゃだめなん?
0379デフォルトの名無しさんNGNG
自家撞着?
0380デフォルトの名無しさんNGNG
>>373
Bisonじゃないけど、ANTLRはC++、Java、C#で使えたはず。
0381デフォルトの名無しさんNGNG
ANTLRは文法に癖あるってきいていたのでマークしてなかったですが、
がんばって使ってみますね。どもです。
0382デフォルトの名無しさんNGNG
Flexの正規表現でシフトJIS日本語文字列(""括りで\がエスケープ文字)を
定義するのはどうしたらいいのでしょうか?とりあえず
\"(([\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])|\\.|[^\\"])*\"
としてみたのですが、2バイト目が\の"表"とかが最後になっていると
"がエスケープされてしまいそのさらに次の"までが文字列になってしまいます。
よろしくお願いします。
0383デフォルトの名無しさんNGNG
>>382
2バイトめ"\"のパターンを使え
0384382NGNG
>>383
シフトJISの2バイト目"\"のパターンは
([\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])
で引っかかると思うのですが、
これじゃダメなんでしょうか?
0385デフォルトの名無しさんNGNG
>>382 は
\"(\\.|[^\\"])*\"
と同じ意味。

[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]
は
[^\\"]*
で吸収できちゃうから。
0386382NGNG
>>385
解決できました。ありがとうございます。
0387デフォルトの名無しさんNGNG
>>386
結果を張っといたら?
0388デフォルトの名無しさんNGNG
(V)o\o(V)
0389デフォルトの名無しさんNGNG
バルタン星人かよ!
0390デフォルトの名無しさんNGNG
>>387
私は自力で解決しました。
あなたも自分で考えてみてください。
0391デフォルトの名無しさんNGNG
>>390
こういう奴が、スレを糞化させる。
0392デフォルトの名無しさんNGNG
糞化したスレ
http://pc5.2ch.net/test/read.cgi/tech/1101986365/
0393デフォルトの名無しさんNGNG
もともと糞化してただろ。
0394デフォルトの名無しさんNGNG
>>381

ANTLRの書き方って独特だよね。おれもよくわからん。
いちばんわかりやすいのはSableCCだな。BNFだけ定義すればよく、JavaコードとBNFとをごちゃまぜにする必要がない。
0395デフォルトの名無しさんNGNG
>>391 必死だな
0396デフォルトの名無しさんNGNG
>>392
ほんとの意味で糞化だ(笑
0397デフォルトの名無しさんNGNG
>>395
アフォ目、洩れがアドバイス出してやったんだがw
0398デフォルトの名無しさんNGNG
アンタのアドバイスはこっちのトンチンカンな方だろ。

383 名前:デフォルトの名無しさん 投稿日:04/12/04 12:08:56
>>382
2バイトめ"\"のパターンを使え
0399デフォルトの名無しさんNGNG
>>397
つーか知ってるなら自分で貼ったらいいじゃん。
0400デフォルトの名無しさんNGNG
そして張ったとたんに間違っていると判明と(藁
0401デフォルトの名無しさんNGNG
(\)o\o(\)
0402デフォルトの名無しさんNGNG
.
0403デフォルトの名無しさんNGNG
どなたかこいつを弄ったことのある方いらっしゃいますか。
ttp://www.cminusminus.org/
0404デフォルトの名無しさんNGNG
 
0405デフォルトの名無しさんNGNG
.
0406デフォルトの名無しさんNGNG
ここのスレをまとめたページはないのかい?
0407デフォルトの名無しさんNGNG
コンパイラを作りたいのですが、どうしたらいいんでしょう
私は、Cの入門書を読み終えた程度です。
0408デフォルトの名無しさんNGNG
>407
無謀
0409デフォルトの名無しさんNGNG
コンパイラの入門書を読め
0410デフォルトの名無しさんNGNG
なぁ、友達にアセンブラを知らないと作れないといわれたのだが、本当か?
0411デフォルトの名無しさんNGNG
>>410
その友達に理由を聞けよ
0412デフォルトの名無しさんNGNG
ネイティブコンパイラを作ろうと思うならな
0413デフォルトの名無しさんNGNG
>412
そうか、アセンブラはいるのか。。。
アセンブラを勉強してから出直してくるよ。
0414デフォルトの名無しさんNGNG
アセンブラなんてCより覚える事少ないぞ
0415デフォルトの名無しさんNGNG
>414
そうなのか?
Cも覚えることはほとんどなかったが。。。。
まぁ、いいや。
はじめて読む8086からはじめるよ。
0416デフォルトの名無しさんNGNG
言語なんてのはすぐに覚えられるが、問題はその先だな。
0417デフォルトの名無しさんNGNG
>>408
そうでもないよ。
言語を理解するには実際に自分で作ってみるのが手っ取り早いよ。
0418デフォルトの名無しさんNGNG
その先は、何を作るかによるだろう。
0419デフォルトの名無しさんNGNG
つーかそれ作って何するかだな
漠然と作ってもただのゴミだし
時間を有効に使う意味では言語処理系なんて手を出さないが吉
0420デフォルトの名無しさんNGNG
>>419
できあがった完成品が重要なのではなく、その過程でできたものがもっとも重要な
物・事である事が多いと思いますよ。
完成品なんてタダでくれてやればいいが、その過程で得たものは絶対誰にもあげない。
そう思います。
って青木淳さんの受け売り…
0421デフォルトの名無しさんNGNG
このスレと路線がずれてないか?
そろそろ元に戻そうぜ。
0422デフォルトの名無しさんNGNG
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/


ゲ製板の初心者質問スレで発見。
0423デフォルトの名無しさんNGNG
それ、>407の書いたものだろう?
0424デフォルトの名無しさんNGNG
Cで書こうとすると色々と複雑になって辛くない?
先にC++覚えたほうが楽だと思う
0425デフォルトの名無しさんNGNG
>>422
それだったらアセンブラ知っとく必要ないじゃん。
とりあえず「yacc インタプリタ」でぐぐって好きなの読むといいんじゃない?
0426デフォルトの名無しさんNGNG
「私はこれで仕事をやめました。」
0427デフォルトの名無しさんNGNG
「私はこれで仕事をやめさせられました。」
0428デフォルトの名無しさんNGNG
>>410
アセンブラというものがどういう構造なのか知っておくと便利だけど、
アセンブラ言語そのものを覚える必要は無いと思う。
それよりコンピュータがどうして動いてるか理解する方が大事。

メモリから命令を拾って来る→なんかする→次の命令を処理
という流れはどっちも変わらないから。
0429410NGNG
とりあえず、>407とは別人だぞ。
なんか、一緒にされてる気がするので。

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

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

目的が現在の言語の性能が気に入らんから、言語はそのままでより良いオプティマイザを実装しようというなら
いきなりアセンブラで行けというところで。
0431デフォルトの名無しさんNGNG
今んとこ最強の成書↓
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
持っているといばれる。
0432デフォルトの名無しさんNGNG
ドラゴンブックは今日では読む価値はほとんどない。
記述が難しい上に古い本なので初学者にも上級者にも無用。

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

初学者なら佐々本がベストだと思う。
古い本だが、ある程度のレベルを保ちつつこれ以上わかりやすい本は
他には知らない。
0433デフォルトの名無しさんNGNG
http://www.amazon.com/exec/obidos/ASIN/0805316701/ref=pd_sxp_elt_l1/002-7592221-6291209
lccは全く実用にはならないのだが、
この本はかなりおもしろく、また、類書が全くないので一読の価値あり。
0434デフォルトの名無しさんNGNG
吉里吉里とかコンパイルすると、シナリオファイルの中身が読めないファイルに変換されていますが、
あれはどうやっているのですか?

(ここではスレちがい?)
0435デフォルトの名無しさんNGNG
スクリプトの実装ではなく設計の哲学などを扱った書籍はありませんか?
0436デフォルトの名無しさんNGNG
>>434
暗号化してるだけだろ
0437デフォルトの名無しさんNGNG
暗号化っちゅうか、
コンパイルってことは普通バイナリファイルにするわけで、
バイナリになったら普通人は読めないだろ。
0438デフォルトの名無しさんNGNG
>>432
ドラゴンブックが古い本なのは確かだが、コンパイラ理論の基礎なんて
ドラゴンブックの時代から変わってないから問題ないよ。

佐々本は読んだことないから、そっちの方が良いという意見は否定しないが。
0439デフォルトの名無しさんNGNG
ドラゴンブックは原書でしか読んでないが、古めかしさ的には
佐々本と大差ないと思われる(属性文法あたりの差分はあるけどね)。
日本語で読みたいなら、佐々本の方が良い。1冊にまとまっているし、
なによりドラゴンブックの日本語訳はヤバい。

中田本はちゃんと読んでいないので何とも言えないが、元の論文
読む羽目になるのは仕方ないんじゃないか? というか、中田本を勉強
しなきゃいけないやつは、どうせ元論文だけでなくもっと新しい論文を
読まなきゃ仕事にならんでしょ。
0440デフォルトの名無しさんNGNG
>>431
"Advanced Compiler Design and Implementation"
この本は主にどの言語で書かれていますか?
C? C++?
0441デフォルトの名無しさんNGNG
>>440
漏れは431ではないが、アルゴリズムの説明などで用いられている擬似言語はpascal風。
とはいっても内容は全くプログラミング言語に依存しない。というか、コンパイラの本で内容が
特定のプログラミング言語に依存するものってあまりないと思う。

ベクトル化コンパイラの本はFortran向けに書かれていることがよくあった気もするが。
0442デフォルトの名無しさんNGNG
>434

Javaと同じと考えていいんでない?
0443デフォルトの名無しさんNGNG
How to WSDL convert to SOAP?
0444デフォルトの名無しさんNGNG
>>443
HTML や XML は正規表現を憶えてツリー型のデータ構造を憶えれば完成だから、
正規表現のスレッドや初心者相談系のところにいったらいいよ。
0445デフォルトの名無しさんNGNG
http://yaneurao.hp.infoseek.co.jp/ygs2k/
↑のソースは参考になる?
0446デフォルトの名無しさんNGNG
コンパイラを作りたいのですが、どうしたらいいんでしょう
私は、Lispの入門書を読み終えた程度です。
0447デフォルトの名無しさんNGNG
じゃLISPコンパイラ作れ
0448デフォルトの名無しさんNGNG
>>446
lex yacc または bison flex といった所をやる
オライリーの動物本でもどうぞ
もしCができないなら先にそっちをやる。
Cが分らないとツール群の使い方が理解できない。
0449デフォルトの名無しさんNGNG
>448

Cでなくて、C++でもいいんでない?
0450デフォルトの名無しさんNGNG
>>449
Cが分らないならC++をやるのはただの遠回り、そこまでやらなくてもツールは使える。
C++で使うにはかなり詳しくC++を知る必要があるから、そんな所に迷い込んだら永久にできなくなってしまう。
大規模になってくれは必然的にC++やる事になるのだから、そのときで十分。
0451デフォルトの名無しさんNGNG
yaccとかbisonって、構文解析と字句解析に使うんだろ?
0452デフォルトの名無しさんNGNG
Lispのコンパイラを作るのにlex+yaccはいらんなあ。
バイトコードに落とすLispのコンパイラを作るのは結構簡単なわりに面白いよ。
0453デフォルトの名無しさんNGNG
>452

おすすめのソースとかある?
0454デフォルトの名無しさんNGNG
>>9のやさしいLispの作り方はどう?
0455デフォルトの名無しさんNGNG
>454 
ありが�d
Javaの復習にもいいね。

そろそろこのスレをまとめたサイトが欲しいね。
0456デフォルトの名無しさんNGNG
>>454
あれはS式をそのまま解釈するインタプリタなのでコンパイラは出てきませんね。
でも入門書を読み終えた程度って人なら処理系のイメージを軽くつかむにはいいかな。

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

0457デフォルトの名無しさんNGNG
>>420
俺と考えが違いますね

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

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

アメリカやインドに比べてソフト開発力が低い?と言われてるのだから、
その部分を補う部分が欲しいと思いますね。
0458デフォルトの名無しさんNGNG
>>420 頭のいい人
>>457 口をあけて待ってるバカ
0459デフォルトの名無しさんNGNG
>>458
馬鹿で悪かったな・・・
C言語を覚えるのに、C言語の入門からマニュアルが一杯でてるだろ
おまぇはそれすら観なかったのかよ?

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

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

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

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

0460デフォルトの名無しさんNGNG
>>458
こいつはコンパイラの本を見ずにコンパイラを自力で作れるすごい奴なのかも
しれないwww
0461デフォルトの名無しさんNGNG
別に凄くないと思うぞ
0462デフォルトの名無しさんNGNG
>>461
自力で作れる奴がここに来るのか??www
0463デフォルトの名無しさんNGNG
>>462
もし来ないと思っているなら、それは偏見だよ。
別にここでの書き込みに何か期待しているわけじゃない。
ただ、専門分野での雑談を楽しんでいるだけだよ。
0464デフォルトの名無しさんNGNG
>>436
彼はC言語のマニュアルしかみないでプログラマーやってる
スーパープログラマーだから、相手にしない方がいいな。
0465デフォルトの名無しさんNGNG
>>463
彼はすごいよ。
数学の数式や方程式も自分で考えたんだよ。

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

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

先人の発見した知識は彼には必要ないんだよ
彼は全部自分で考えて、自分で作れるんだから・・・www
0466デフォルトの名無しさんNGNG
俺はC言語なぞコンパイラのユーザマニュアルだけで使えるようになったけどな。
そういう人間は別に少なくないだろう。分布が偏在しているだろうとは思うが。
それはさておき>>457=>>459だろうが言ってることが滅茶苦茶だぞ。

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

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

457を見て感じるのは、こいつには「頭のいい人」のものの考えは絶対理解できないだろうなということ。
自分をその範疇から外していて、そうなる意志もないだろうというのも感じる。
0467デフォルトの名無しさんNGNG
>>466
はぁ〜、まぁ〜いいや、プログラムだけでなく
方程式とかも自分で解いたんだろ、、全部。

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

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

授業で英語の教科書を見て英語覚えたのなら、
それは英語を覚えた経験した事を、本で覚えて
英語を覚えたことになるんだぞ。
0468デフォルトの名無しさんNGNG
誰かが、覚えた経験を元に書かれた英語の教科書や、専門書を
観ないで覚えたのか

でした
0469デフォルトの名無しさんNGNG
この話題で初めて書き込むが,
>>466 アホだな…
本や論文を読まずに〜というのは, 要するにその内容を完全に理解したから,
その文献を再び参照することなく, 新規性のある事ができる, という意味だろうに…
0470デフォルトの名無しさんNGNG
>>466
彼はエジソンだね。学校の授業は人の経験を教科書にして覚えると言う
行為だから・・・

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

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

そういうスーパーな人は、新しい言語でも作って世の中で有名でもなって
ください。
0471デフォルトの名無しさんNGNG
>まさに、プログラマー界にエジソンだよ。
あなたはまず日本語を勉強しましょう
0472デフォルトの名無しさんNGNG
>>471
それくらいスーパーなプログラマなら脳内変換できないのか?
0473デフォルトの名無しさんNGNG
>>457
落ち着け。>>420は

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

と言ってるんだぞ。お前にソースは見せん、と言ってるんじゃない。
0474デフォルトの名無しさんNGNG
>>457
なんかフレーム引き起こしてますな、僕も420と同意見で
他人の作ったものをとってきて喜べるたちの人間ではないですね、
自分で何か作る事にのみ喜びを感じます、
アルゴリズムも自分で思いついてこそ楽しいのです。
作業効率なんてどうでもいいんですよ。
貴方の意見を読んでいるとプログラミングが恐ろしくつまらない作業の繰り返しに思えます。
0475デフォルトの名無しさんNGNG
0476デフォルトの名無しさんNGNG
>>457-476は役に立たない塊ですので透明あぼーんしましょう
0477デフォルトの名無しさんNGNG
>>474
プログラミング自体を楽しめるのなら良いが
作るという行為だけ楽しめる人もいるんですよ

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

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

彼はライブラリも使わないと思うよ。
ライブラリだって人の作ったプログラムを使ってるんだから、スーパーな
プログラマは我慢できないんじゃないかな?
0478デフォルトの名無しさんNGNG
こっちに移動してください
http://pc5.2ch.net/test/read.cgi/tech/1103874346/
0479デフォルトの名無しさんNGNG
>ライブラリだって人の作ったプログラムを使ってるんだから、スーパーな
>プログラマは我慢できないんじゃないかな?
この辺りからして感覚が違う気がしますね、我慢できないのではなくて、中身が興味深そうなら自分も作ってみるのです。
0480デフォルトの名無しさんNGNG
結局、どこまでが基礎でどこからが応用かという問題だろ。

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

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

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

でも本やインターネットでコンパイラについて書かれた内容を理解した
人は、その本を読んで理解しろと言う場合と、もっと解りやすい本が
あればもっと簡単に覚えられたと思う人もいるだろ
簡単に言えば解りやすいコンパイラの本が日本語で出るだけで、新たな
言語が出る可能性が出て面白くなると思うけどね。
0481デフォルトの名無しさんNGNG
ここはdjbみたいな人が沢山いるインターネットですね。
0482デフォルトの名無しさんNGNG
LLパーサやDDA位なら自力でたどり着いた事あるぞ。
つかそのころコンピュータ書籍は英語で書かれている物以外は論文くらいしかなかったし、しかも俺は英語を習う前だったから読むもクソも無かった。

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

0483デフォルトの名無しさんNGNG
まあ>>457みたいな人が、自分の得た知識や経験をわかりやすくまとめて公開する
ことは絶対ないんだけどね。これはコンパイラに限らず。
0484デフォルトの名無しさんNGNG
ここはバカの壁が如実なインターネットですね。
読んでると壁の両側に綺麗にわかれていて面白い。
0485デフォルトの名無しさんNGNG
>>482
コンパイラ以外でも先人の経験を元にしなかった?
アルゴリズムの本を読んだり、会社の先輩にソースを見せて貰ったとか・・・
人の経験を全く真似ないで自分だけでやってこれたと言う人が
本当にいるのなら観てみたいね。

職業のプログラマーだけでなく、他のあらゆる事が先輩の真似から
入ることが多いでしょ。
0486デフォルトの名無しさんNGNG
>>484
彼も、先人達の経験を全く必要としない人らしい。
自分だけでやってこれたと思ってる人って素晴らしいね

自分なんて人のおかげで、色々と覚えられたと思ってるし・・・
0487デフォルトの名無しさんNGNG
相談室と書いていながらここは、単に本やインターネットを
みないでコンパイラを作れる人が、時々、本とかインターネットを
使って、コンパイラを作ろうとしてる人が書き込んだ人を馬鹿に
しようとする為にスレということが解ったよ。
0488デフォルトの名無しさんNGNG
正

相談室と書いていながらここは、単に本やインターネットを
見ないでコンパイラを作れる人が、時々、本とかインターネットを
使って、コンパイラを作ろうとして書き込んだ人を馬鹿にしようとする為の
スレということが解ったよ。
0489デフォルトの名無しさんNGNG
お前らクリスマスイブ暇だからって張り切りすぎ
0490デフォルトの名無しさんNGNG
クリスマスツリーにネコでも吊るして和んでください
0491デフォルトの名無しさんNGNG
決まりきったパターンだね。
人格攻撃に始まるって奴は負ry
0492デフォルトの名無しさんNGNG
>>487
スレは「ある」ものではなく「作る」ものだ。
君が親切な相談員になればいい。
0493デフォルトの名無しさんNGNG
そんなことより、もまいら今日の晩ごはんはカレーですよ。
0494デフォルトの名無しさんNGNG
>>492
俺が君ほどレベルが高くなく本と見てコンパイラを作れるレベルなんだよ
そのレベルの話で良ければ教えてもいいけどね。
0495デフォルトの名無しさんNGNG
ゲーム業界の話なんだが、アメリカは新しい技術を作られると
それを作ったクリエータ自ら、ゲーム業界の学会?みたいな
場所で発表するらしい。

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

日本は技術を自分で作ることが重視になってる。
技術を1から覚えないと、物を作る資格がないと思ってるみたいだ・・・
0496デフォルトの名無しさんNGNG
何度もすまないが

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

アメリカは自分で作りたいものがどのような形で作られようが問題ないみたい
人が作ったものだろうが、それで自分が作りたいものが出来るのなら
問題なく使うけど、日本人は1から作らないと気がすまないみたいだ。
0497デフォルトの名無しさんNGNG
アメリカに劣等感を持つのは勝手だが
何の根拠もない妄想をここでやるなよw
0498デフォルトの名無しさんNGNG
はっきりいってエロゲーは日本の方がどの分野も進んでるぜ
http://www.illusion.jp/preview/jinkousyoujyo2/
http://www.teatime.ne.jp/infor/ld_top.htm
0499デフォルトの名無しさんNGNG
>>494
それ位のレベルの人が一番わかりやすく教えられるんじゃない?
学校の先生より家庭教師の説明の方がわかりやすいのと同じで。
0500デフォルトの名無しさんNGNG
ここは「コンパイラ・スクリプトエンジン」相談室です。
雑談はマ板でお楽しみください。
0501デフォルトの名無しさんNGNG
今日の雑談は↓スレへどうぞ
http://pc5.2ch.net/test/read.cgi/tech/1103874346/
0502482NGNG
先人の本なんかなかったよ、あったのはモトローラのMC6800マニュアル(英文)、しかも読めた(のか?)は電気回路の部分と命令表、
信号線は親に読んでもらった。
482で書いた事は自分が小学6年から中学1年に掛けての事だから本当に役に立つ書籍は無かった。
ちなみに石田晴久の「マイコン入門」が出たのが自分が中学2年か3年の時。

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

0503デフォルトの名無しさんNGNG
>>502
あぁ、あの東大のDQNね。
0504デフォルトの名無しさんNGNG
そろそろ板違いなんで↓に逝ってくれんか>年寄り
http://bubble2.2ch.net/i4004/
0505デフォルトの名無しさんNGNG
クリスマスだから気が立っているのか。愚かしいな。
0506デフォルトの名無しさんNGNG
この流れなら言える。

prologでコンパイラ作ってる人いますか?
パターンマッチ最適化や、高レベル中間語→低レベル中間語→アセンブリの変換等が
きれいに書けそうな気がするんですが。
0507デフォルトの名無しさんNGNG
>>495
共有するって感じかな?
どちらかというと自分の意見を学会にぶっつけて反応を確かめて
自分の方向性を決めるといった感じの印象を受けるのだが。
共有を目的にしている人は一部のオプソ狂信者(日本にも居るね)だけだと思うな。
0508デフォルトの名無しさんNGNG
>>506
きれいに書けませんよ。
嘘だと思うならやってみたら。
0509デフォルトの名無しさんNGNG
>>506
そういう研究はあり、確かにきれいに書ける。
ただし、prologでなく、より汎用的なlogical framework(twelfとか)を使うことが多い。
0510デフォルトの名無しさんNGNG
>>495
なんとなく納得。
なにげに日本の習慣って秘密主義なのかも。
0511デフォルトの名無しさんNGNG
>>510
チンケなプライドがあるために他人のツールを使えないだけ。
高卒のくせにな。
0512デフォルトの名無しさんNGNG
http://pc5.2ch.net/prog/
0513デフォルトの名無しさんNGNG
>>511
自分やっているプログラムが詰んなくない?
それでストレス溜まって高卒ごときにムキになってない?
まぁ、最近そな人多いね、実際自分も仕事ではまるでベントコンベアの前にいるライン工の気分だしね。
嫌な時代ではある。

世の中生産性が全てではないと思うのだが・・・
せめて趣味の世界では爆発していたい。
プログラミングは爆発だ!!
0514デフォルトの名無しさんNGNG
ゆんゆん
0515デフォルトの名無しさんNGNG
やんやん
0516デフォルトの名無しさんNGNG
なんだろ
年末ずっとこの調子?この人
0517デフォルトの名無しさんNGNG
あのねのね
0518デフォルトの名無しさんNGNG
bison1.35をつかっていたんですけど、1.875ってのが出ているのに気づいたのですが、
どう変わったか知っている方いますか?

http://sourceforge.net/project/showfiles.php?group_id=23617
0519デフォルトの名無しさんNGNG
そういうのは作者に問い合わせたほうが早いよ
0520デフォルトの名無しさんNGNG
ソースとってきてchangelogみりゃええやないの
0521デフォルトの名無しさんNGNG
構造化例外処理を自作言語に取り入れたいんですが、
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
0522デフォルトの名無しさんNGNG
正直、lexだのyaccだの使ってる奴はアホ。
一文字ずつswitchで入れ子にするのが速いし、メモリも食わないし、プログラミングも実は一番楽。
0523デフォルトの名無しさんNGNG
まあそれで書けちゃうぐらい単純なやつならそれでもいいでしょ。
0524デフォルトの名無しさんNGNG
>>522
ぜーたいありえネェ〜
0525デフォルトの名無しさんNGNG
>522
あー、つーか、単純なやつならそれで出来るかもしれんが、あまりにも世界が狭すぎ。
全てそれでいけると本気で思っているのなら、もう一度勉強し直してこい。
0526デフォルトの名無しさんNGNG
>>522
根拠が弱い

アホいうんなら、おまえの方法とlex、yaccを使う方法の
長所、短所ふまえてちゃんと説明してみんなを納得させろ
0527デフォルトの名無しさんNGNG
普通に釣りっぽい
0528デフォルトの名無しさんNGNG
>>522はビルゲイツ。
0529デフォルトの名無しさんNGNG
大漁大漁w
0530デフォルトの名無しさんNGNG
>>521
VC++固有のライブラリの使い方なら
VC++スレ行ったほうがいいと思う。
構造化例外を使いたいだけなら、
Structured Exception Handling
でぐぐればよさげ。
0531デフォルトの名無しさんNGNG
釣り師は>>529のような負け惜しみは書かん

>>529書いた時点で真性確定。
0532デフォルトの名無しさんNGNG
真性に釣られる馬鹿ハケーンw
0533デフォルトの名無しさんNGNG
w真性キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
0534デフォルトの名無しさんNGNG
\  釣られたクマー
  \ 助けてクマー
   \∩_∩    今助けるクマー
    (;(エ); )∩_∩    ∩_∩
    ⊂. ⊂ |(・(エ)・; )_○ (・(エ)・; ).∩_∩ 頑張るクマー
    ⊂_⊂/⊂⊂___つ⊂⊂  |(・(エ)・; ).∩_∩
                   |    ⊂⊂   |(・(エ)・ )
                  ∪ ̄∪|   ⊂⊂   |  〜〜
                       ∪ ̄∪|    |○  〜〜〜
                            ∪ ̄∪  〜〜
0535デフォルトの名無しさんNGNG
>522
>プログラミングも実は一番楽
ありえねえ
自力で遷移状態管理しろ、つうたら泣けるなあ
0536デフォルトの名無しさんNGNG
LL(1)なら別にいいじゃん。
0537デフォルトの名無しさんNGNG
俺はschemeのreader書くのにlex/yaccのお世話になろうかと
真剣に悩んだよ。

結局、手で書いたが。
0538521NGNG
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の持ち回り)使ってるから
フレーム統合するのは難しそうです。
別の手段考えます。
0539522NGNG
馬鹿だな。複雑な文法ほどそう書くのがいいんだよ。
人間が考えてる要領でうまくかける。
yaccだのlexだのはかえって難しいんだよ。
複雑な文法になるほどな。
0540デフォルトの名無しさんNGNG
飽きたからもういいよ。
0541デフォルトの名無しさんNGNG
                             |
                             |
      ∩___∩             |
      | ノ  _,  ,_ ヽ        ((  | プラプラ
     /  ●   ● |         (=)
     |    ( _●_)  ミ _ (⌒)   J  >>539
    彡、   |∪|  ノ
⊂⌒ヽ /    ヽノ  ヽ /⌒つ
  \ ヽ  /         ヽ /
   \_,,ノ      |、_ノ
0542デフォルトの名無しさんNGNG
>>538
Win32 Exception handling for assembler programmers by Jeremy Gordon
http://www.jorgon.freeserve.co.uk/ExceptFrame.htm

昔、参考にさせてもらったサイト。もう1ヶ所ぐらいあったんだけどURL紛失した。
0543デフォルトの名無しさんNGNG
でも、マジレスすると scanner は自主開発蟻としても
parserはyaccか互換ソフト以外実用プログラムでは使われていないからなぁ

お前ら、もっと現実を見ろ!
0544デフォルトの名無しさんNGNG
飽きたからもういいよ
どうせなら新しいネタにしようぜ
0545デフォルトの名無しさんNGNG
マジレスすると、
Java5.0はyaccだと難しい。
0546デフォルトの名無しさんNGNG
Rubyも確か、yacc廃止するような話が上がってるみたいだね。
PythonやPerlはどうなの?
0547デフォルトの名無しさんNGNG
なんか字句解析と構文解析の話ばっかりだな。
漏れが知りたいのはその先の話なのに。
0548デフォルトの名無しさんNGNG
522の言うことも一理あるかと
gccも最初はyaccだったが今は手書きらしいし
0549デフォルトの名無しさんNGNG
コード生成とか最適化の話がしたいとな?
0550デフォルトの名無しさんNGNG
みんな自動生成系で骨格作って手直しをしてという風ではないの?
0551デフォルトの名無しさんNGNG
中間言語にコンパイルする話はどの書籍に載ってるでしょうか。
googleで調べても見つからないので。
0552デフォルトの名無しさんNGNG
今おれが借りてる本に詳しく載ってるな。
中間言語と言っても色々レベルがあるけどな。
0553デフォルトの名無しさんNGNG
>>552
書籍名を教えてくださいYO!
ほとんど知識の無いままSchemeのインタプリタを書き始めたんですが
3日くらいで大体の機能が実装できました。
問題はGCと継続なんですが、CPSという中間言語を使うと継続が楽に
実装できるという噂をききまして、どんなものかなあと。
コンパイルしないと遅すぎるってことや実装が簡単すぎた(さすがScheme)
っていうのも動機なんですけど。
0554デフォルトの名無しさんNGNG
>>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に選択されて載っているから、これなら技術系の大学の
図書館辺りで見つけられるでしょ。
0555デフォルトの名無しさんNGNG
沢山の情報ありがとうございます。
CPSにこだわっている訳ではないんですけど、東大のコンパイラの授業
のページにのってたのでメジャーなのかと思ってました。
一般的に中間言語の話はどの本がいいんでしょうか。
とりあえずいろいろ調べてみます。
0556デフォルトの名無しさんNGNG
>>553
CPSは中間言語ではないよ。
それに直接速くなるわけでもない。
CPSというのは継続のたらいまわしで、実装が自ずと
スタックレスになり、末尾の検出が不要になることと
継続の抽出が単純(というか継続の抽出そのもの)になるというだけで。

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

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

ちなみに借りた本は「コンパイラの構成と最適化」
CPSとはあんま関係ないね。
0557デフォルトの名無しさんNGNG
>>554
Steele 先生のってこれでよろし?
ftp://publications.ai.mit.edu/ai-publications/pdf/AITR-474.pdf
面白そう……だけど結構な分量だな。プリントアウトしたら大変そうだ。
0558デフォルトの名無しさんNGNG
>>555
中間言語の話題で一般的に良い本を挙げるってのは難しい。
というか、ソースから中間言語への変換辺りの話題だと、
ドラゴンブックで充分だし、最適化の話題よりのコンパイラの
教科書だとその辺りは大抵省略されている。

AppelのModern Compiler Implementation in {ML,Java,C}辺り
だとコンパイラについてlexer、parserからcode generationまで
一通り書かれていて、GCなんかも取りあげられているから良
いかもしれない(漏れはJava版しか読んだこと無いからMLや
C版の内容は知らない)。
0559デフォルトの名無しさんNGNG
>>557
凄いな。
こ れ が 修 論 か
0560デフォルトの名無しさんNGNG
_| ̄|○
0561デフォルトの名無しさんNGNG
あのな、CPSなんてきょうび流行んねーんだよ。ボケが。
得意げな顔して何が、CPSで、だ。
お前は本当にCPS変換したいのかと問いたい。問い詰めたい。小1時間問い詰めたい。
お前、スタック使いたくない だけちゃうんかと。
中間言語通の俺から言わせてもらえば今、中間言語通の間での最新流行はやっぱり、 A normal form、これだね。
大盛り一時変数。これが通の頼み方。
A normal formってのは制御フローが明示的に入ってる。そん代わり継続は暗黙的。これ。
で、それにtail call最適化。これ最強。
しかしこれを頼むと次からAppelにマークされるという危険も伴う、諸刃の剣。
素人にはお薦め出来ない。
まあお前、1は、型付きCPS変換でもしてなさいってこった。
0562デフォルトの名無しさんNGNG
不勉強なオレはいまいち面白さが分からないが、
メル欄ワロタ
0563デフォルトの名無しさんNGNG
せっかくなので A normal form ってのについて教えて下さい。
ポインタでもいいから。
0564デフォルトの名無しさんNGNG
>>509のlogical frameworkと関連した内容ですか。
0565デフォルトの名無しさんNGNG
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
0566デフォルトの名無しさんNGNG
コミックバンチの修論いきなり見せられてもA normal formのことサパーりでしょ。>>553
0567デフォルトの名無しさんNGNG
電気通信大学 情報工学科
渡邊(坦)研究室

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

はガイシュツですか?
0568デフォルトの名無しさんNGNG
>>567
何も新しいことは書かれていない気がす。
ドラゴンブックに出て来るレベルの最適化を実装してみました
ってやつですな。
0569デフォルトの名無しさんNGNG
>>567
学部生レベルの卒論としては合格
0570デフォルトの名無しさんNGNG
●コンパイラ 原理・技法・ツール 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/
一冊で済ませたい人へ。

読む順番とかあるの?
なければ、『コンパイラ構成法 原田 賢一』を買おうと思っている。
0571 ◆MWRLp2GQ3U NGNG
初心者の疑問なんですけど、言語処理系って
フリーの有名所(例gcc)や一部の超メジャー処理系(M$)
でないと全くダメダメなのななんででしょう?

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

言語処理系以外なら、そんなことないと思うんですよねぇ
やはり、作り込みが難しいからですか???
0572デフォルトの名無しさんNGNG
既にフリーでいい物があるから、
わざわざ作る気も起きないってのも大きいでしょ
0573デフォルトの名無しさんNGNG
人生を言語処理系の作成に捧げる気があるなら
>フリーの有名所(例gcc)や一部の超メジャー処理系(M$)
これらにも対抗できるものが作れるんじゃねーの?(鼻くそほじりながら
0574デフォルトの名無しさんNGNG
>人生を言語処理系の作成に捧げる気があるなら
んで、できるかどうかは兎も角そんな連中がここに居るわけだ。
0575デフォルトの名無しさんNGNG
まあ面白いし
0576デフォルトの名無しさんNGNG
>>574
売り物レベルになるかはともかくを言ったら
処理系自体はちょっと時間あれば作れるしな
0577デフォルトの名無しさんNGNG
HSPぐらいならなんとかなるんじゃね?
0578デフォルトの名無しさんNGNG
HSPみたいな頭の悪そうな処理系思い浮かぶやつには無理だろw
0579デフォルトの名無しさんNGNG
Nスクよりマシかな。
0580デフォルトの名無しさんNGNG
2ch発の言語とかってないの?
0581デフォルトの名無しさんNGNG
>>580
いくつか過去にもスレは立ったけど成功したもんはなさそう。
ADVRUN…はちょっと違うか
0582デフォルトの名無しさんNGNG
>>580
ギコBASIC
0583デフォルトの名無しさんNGNG
少なくともHSPはそれなりにメジャーになりはした。
0584デフォルトの名無しさんNGNG
HSPはあの言語仕様なのに、それなりに流行っていることを考えると、
言語の良し悪しが、決定的なんじゃないということがよくわかる
0585デフォルトの名無しさんNGNG
Windowsでexeが作れて配布できる。
初心者でも簡単に使える。
初心者用ドキュメントがある。

こういう、ヲタク向けの言語では軽視されがちな部分が
大きいんじゃないかな。
0586デフォルトの名無しさんNGNG
>>585
剥げ同。

最先端言語技術や高度な理論よりも、リアルに使えることの方が
はるかに重要と最近日々感じる…
0587デフォルトの名無しさんNGNG
でも楽しくないよね。
0588デフォルトの名無しさんNGNG
楽しいよ
すぐに窓表示したり文字表示したり、コントロール作ったり、3DのDirectX画像が動かせるからね
すぐに目に見えて成果が現れるところがミソ
0589デフォルトの名無しさんNGNG
じゃあexeが作れない言語はクソ
0590デフォルトの名無しさんNGNG
>>589
世の中の全てが詰らなさそうな奴だな
0591デフォルトの名無しさんNGNG
>>589
MSと心中しとけ。
0592デフォルトの名無しさんNGNG
>>586
禿げ同

しかし初心者にはいいかもしれないけど、
プログラマとしては絶対使いたくない言語だよね。
そこんところがシームレスに使える言語があるといいのかなぁ。
0593デフォルトの名無しさんNGNG
初心者には取っつきやすく、高度な要求にも耐えられる言語か
難しいね
0594デフォルトの名無しさんNGNG
Java
0595デフォルトの名無しさんNGNG
組み込みHSP?
激しく嫌すぎる・・・
0596デフォルトの名無しさんNGNG
HSP使うぐらいなら素直にアセンブリ使うよ。
0597586NGNG
念のため行っとくけど、俺はHSPは使ったこともないからなw
0598デフォルトの名無しさんNGNG
どこ行くんだよw
0599デフォルトの名無しさんNGNG
お前ら
ありあまる暇があったら、
どんな言語・処理系作りたい?
0600535NGNG
HSPってなに?
0601デフォルトの名無しさんNGNG
>>592
このスレに居るなら、そう思ったら自分で作れ。
0602デフォルトの名無しさんNGNG
>>600
気にする程のものではない。
ゲームを書く為だけの簡易言語だよ。
0603デフォルトの名無しさんNGNG
>>599
汎用の処理系って作ったことないからなあ。
特殊用途のだけ。

なんで、手始めはやっぱりLisp系かな。
SICPみながらSchemeからだろうか。
0604デフォルトの名無しさんNGNG
>>603
minischemeのコード見てみなよ。
たった2000行程度だから。
0605デフォルトの名無しさんNGNG
>>602
ゲームだけじゃない
Windowsアプリが実に簡単に出来る
こういう面も人気の理由の一つ
普段MFC使ってる俺でも昔覚えたHSP使うことがたまにある
手軽だから
0606デフォルトの名無しさんNGNG
ここは既存の言語や処理系について、文句たれたり、布教活動したりするところなん?
0607デフォルトの名無しさんNGNG
大学生ならコンパイラ作るよな
0608デフォルトの名無しさんNGNG
やはり実際に物が作れるということと、敷居が低いことは重要だよな。
Cより言語仕様が優れた言語は腐るほどあるのに
結局Cより流行る言語はほとんどない。
一方では、お手軽にGUIやゲームなどが作れるというだけのことで、
糞仕様のHSPがそれなりに流行ったりする。
0609デフォルトの名無しさんNGNG
課題で必ず出るね
0610デフォルトの名無しさんNGNG
>>608
言語論争したいのならどっか別の所へ行け
0611デフォルトの名無しさんNGNG
そうではない
コンパイラを作るに当たってなにが大切かを述べてるにすぎない
0612デフォルトの名無しさんNGNG
>>611
ハァ?バカでね?
0613デフォルトの名無しさんNGNG
なんかレベル下がったなこのスレ
0614デフォルトの名無しさんNGNG
今までにレベルの高いレスなんてあったか?
0615デフォルトの名無しさんNGNG
HSP厨が紛れ込んじゃったんだろ。
0616デフォルトの名無しさんNGNG
なぁ、ここにいるやつらで2ch言語でも作ってみないか?
0617デフォルトの名無しさんNGNG
>>616
おまえが作れ
0618デフォルトの名無しさんNGNG
>>616
言語仕様のアイデアはあるのか?
0619デフォルトの名無しさんNGNG
板グループがオブジェクトで各板名がメソッドとか。

PC等.プログラマー("hoge);
0620デフォルトの名無しさんNGNG
あー、"閉じ忘れた。まあいいや。
エラーが出たときは

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

と。
0621デフォルトの名無しさんNGNG
>>611
いらねーよ、言語仕様ってのは作り手の趣味の問題だ、他人にゴチャゴチャいう筋合いのものじゃねぇ。
そんなもん、そんな作りもしない何もしないクレクレ厨房の書き込みなんざ読んでもウザイだけだ。
0622デフォルトの名無しさんNGNG
>>619
そりゃ言語仕様じゃなくてライブラリの仕様じゃねえか
0623デフォルトの名無しさんNGNG
ここはネタすれじゃないんだから他でやれや>>616-622
0624デフォルトの名無しさんNGNG
言語仕様議論専用スレがあったほうがいいかね、建ててみるね。
「言語仕様と開発論法」でやってみてください。

0625デフォルトの名無しさんNGNG
「言語仕様と開発論法」
http://pc5.2ch.net/test/read.cgi/tech/1104394930/l50
ここです。
0626デフォルトの名無しさんNGNG
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は最高の言語なのだから。
0627デフォルトの名無しさんNGNG
>>626
単純にRubyはマイノリティなだけ。
使われてないなら潜在バグの洗い出し率も低いだろうし
信頼性保守性等々で考えて業務に使う必然性がない。
0628デフォルトの名無しさんNGNG
>>627
禿同
0629デフォルトの名無しさんNGNG
Ruby以上のものを作ることのできない糞どもが何を言おうが無駄。
汚らしいRubyアンチは消えろ
0630デフォルトの名無しさんNGNG
と、言うことは>>629には そ れ な り に 普 及 し た プログラミング言語以上のそれの作成経験があると言うことになる。
0631デフォルトの名無しさんNGNG
最高言語Rubyユーザ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> おのスレでしがない糞処理系を作ってる奴等ww
0632デフォルトの名無しさんNGNG
Perlでええやん。
0633デフォルトの名無しさんNGNG
HSP使ってる奴とRuby使ってる奴って
なんか共通点が有るな。
0634デフォルトの名無しさんNGNG
>>633
いいよなぁ。自分の価値観が万人の常識であるとか思ってる奴。
0635デフォルトの名無しさんNGNG
最高言語Scheme!!!!!!!
0636デフォルトの名無しさんNGNG
荒れるからHSP厨とRuby厨は >>625 のスレ逝ってよ。
0637デフォルトの名無しさんNGNG
やっぱ
日本発->他の言語より日本語の情報が多い->厨が増える
という流れなのだろうか。
0638デフォルトの名無しさんNGNG
単純になぜか安置が多いというお話。
たぶん同一人物が自作自演交えてやってるんだろうけど。
正直、俳優か小説家になれば大ブレイク。
こんなところで才能を食いつぶしている彼らが不憫だ。
0639デフォルトの名無しさんNGNG
単純になぜか厨が多いというお話。
たぶん同一人物が自作自演交えてやってるんだろうけど。
正直、俳優か小説家になれば大ブレイク。
こんなところで才能を食いつぶしている彼らが不憫だ。
0640デフォルトの名無しさんNGNG
>>639みたいなのが典型と言うことで。
0641デフォルトの名無しさんNGNG
どっちも根拠を挙げてるわけでもないし
どっちも典型でしょ。
専用スレが腐るほど有るんだしそっちでやってよ。
0642デフォルトの名無しさんNGNG
で、何かこのスレと関係あるのか?
0643デフォルトの名無しさんNGNG
http://www.rubyist.net/~matz/20041227.html#p03
Ruby>>>>>>>>>>>>>>>>Java>>>>>Python>>>>>C++>>>>>PHP>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>HSP>Perl
0644デフォルトの名無しさんNGNG
Perlに恨み骨髄という感じだな。
0645デフォルトの名無しさんNGNG
Rubyはレンタル鯖でつかえねーからダメ
ライブドアだけじゃん
0646デフォルトの名無しさんNGNG
Rubyって仕事で使えるほどフレームワークあったっけ?
0647デフォルトの名無しさんNGNG
コミュニティ文化の話なんてどうでもいい
技術の話をしないやつは(・∀・)カエレ!
お年玉で>8買って読んでから来い
0648デフォルトの名無しさんNGNG
貴様らがポチポチ作った処理系なんか自分以外誰が使うんだよ。
Rubyレベルのものが貴様らに作れるのか?
0649デフォルトの名無しさんNGNG
先生!お店に禿げたドラゴンブックした売ってません!!
0650デフォルトの名無しさんNGNG
Rubyの劣化コピーでしかない貴様らが
死に物狂いでRubyを不正で苦しさ晴れたち日をしているwwwwwwww

やはり劣等感である〜〜〜 くすくす^^;
0651デフォルトの名無しさんNGNG
国産処理系
HSP、LGP、System3.x、Ruby

こうして並べるとRubyすげーのかどうか微妙だな
0652デフォルトの名無しさんNGNG
ドラゴンブック程度を読んで分かったつもりになった厨房が
メイジャーなRubyを必死に貶すことで憂さ晴らししているスレはココですか?
0653デフォルトの名無しさんNGNG
>>652
うっせー禿げ
0654デフォルトの名無しさんNGNG
ム板では NG ワードにプログラミング言語「るび」を指定することが
推奨されています。
0655デフォルトの名無しさんNGNG
>>626
その話題は
http://pc5.2ch.net/test/read.cgi/tech/1104394930/l50
にぴったりだ、一発ブチかまして良スレにしてやってくれ。
0656デフォルトの名無しさんNGNG
>>643 のリンク先見たけど開発者がこれでは…
ずっとマイナーなままなのそれなりに理由があるからだろ。
0657デフォルトの名無しさんNGNG
>>656
その理由を
http://pc5.2ch.net/test/read.cgi/tech/1104394930/l50
に書きなさい、ちゃんと議論してみろ。
0658デフォルトの名無しさんNGNG
matzはジョークのひとつも言ってはいけないのか……
0659デフォルトの名無しさんNGNG
面白ければ許可する
0660デフォルトの名無しさんNGNG
Rubyアンチに「じゃあ、Rubyの欠点を挙げてみろ」と言うとだんまりになってしまうのが面白くてしかないwww
0661デフォルトの名無しさんNGNG
マイナーすぎてレンタル鯖で使えない所が多い。
0662デフォルトの名無しさんNGNG
cgi.rbの 1.8 や 1.8.2 であった問題
0663デフォルトの名無しさんNGNG
Unicode、半角カナを含めた文字コードの扱い
0664デフォルトの名無しさんNGNG
>>661
今をときめくライブドアで使えますが?
0665デフォルトの名無しさんNGNG
>>661-663
ほら書き写してやった、向こうでつづけて書け。
0666デフォルトの名無しさんNGNG
Windowsでexeが作れない
0667デフォルトの名無しさんNGNG
自己記述ができない
0668デフォルトの名無しさんNGNG
開発者が
>それくらいだったらマイナーなままでいてくれた方がずっと良い。
って言ってるんだからマイナーなんだろ。
0669デフォルトの名無しさんNGNG
今度は厨が良い所を挙げてくれ。
0670デフォルトの名無しさんNGNG
BNF記法の正式な書き方ってありますか?
なんか検索して色々なサイト見るとそれぞれ
若干記述の方法がちがうんですよね。
あとEBNFについての書き方ってのは
調べても詳しく解説してるサイトがないんですよね。
識者の意見求む!
0671デフォルトの名無しさんNGNG
>>670
表記法は規格によって様々だけど、表す物は同じ
一番元になったAlgolの時点では、
<>で囲った物が非終端記号
::=が超記号
|がOR
の3つ。

EBNFになって
省略可能が[...]
0回以上の繰り返しが{...}
くくりが(...)
という書き方が可能になった

とコンパイラ構成法に書いてあります
0672デフォルトの名無しさんNGNG
Rubyで金取れる仕事ってできるの?(品質保証込み)わしバグとか怖くて使えんけどまじで
大丈夫なの?
0673デフォルトの名無しさんNGNG
おk
0674デフォルトの名無しさんNGNG
>>670
規格になってるのには、ISO/IEC 14977:1996 とか RFC2234 とかがあったり。
0675デフォルトの名無しさんNGNG
>>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通りを知っておけばいいって感じですかね?
0676デフォルトの名無しさんNGNG
どれも憶えておけば、折衷式俺定義BNFが出てきても読める。
0677デフォルトの名無しさんNGNG
>>676
すまん
0678Rubyist!NGNG
PerlやPythonのシンタックスはヘタレでかつ、醜悪
よく公開する気になれるものだなこんなもの
しかもはっきり言って便利でも何でもないよこんなの
こんなの好きだって奴はアホそのものだな、イラネ−
0679デフォルトの名無しさんNGNG
Rubyの汚いend end endよりはPythonのソース
の方が綺麗
0680デフォルトの名無しさんNGNG
このスレいたたたたたたたたた
漏れ儲でもなんでねねぇーけど、ここでRuby批判してる住人は妬みにしかみえねーな
『Windowsでexeが作れない』『自己記述ができない』『マイナーすぎてレンタル鯖で使えない所が多い』・・・
メイジャーになるだけの言語を作れないもしくは作る勇気も技術もない香具師の嫉妬だな
そこまでいうおまいらの作った処理系は超クオリティで馬鹿流行するんだろうなw
新言語開発ってのははじめからなんの保障もねぇーんだよ
それをさもお客様ヅラして能無しどもが偉そうに素人相手にムキになって評価してやがるイタタタタタタタタ
こんなところでネチネチ陰湿に文句いうくらいならさっさとRubyアンインストして忘れろよ
0681デフォルトの名無しさんNGNG
うかつにRubyのような画期的な言語をつくってしまうと
自意識過剰の能なし共の嫉妬を買うねぇ。
0682デフォルトの名無しさんNGNG
誰かが結果を出した途端
出し抜かれたというか、ズルい事でもされたような錯覚に陥るんかねぇ。
ありもしない自分の可能性を信じさせられる平等教育の犠牲者はかわいそうだなぁ。
アンチRubyの方々にはまことに同情するよ。
0683デフォルトの名無しさんNGNG
俺が作ったわけじゃいけどCやPerlやPythonの方が流行ってるよw
もしかしたらHSPの方が流行ってね?www
0684デフォルトの名無しさんNGNG
LarryやGuidoのような才能の無い人間が作った言語が流行るのは、勘違いクンが増えるので良くない。
つか、悪い。もはや悪事。奴等は恥を知れ。
0685デフォルトの名無しさんNGNG
>>683
俺はRuby信者じゃない。
批判のフリした罵りが見苦しいだけ。
第三者が読んで含蓄のある批判をしてみたまえよ、みっともない。
0686デフォルトの名無しさんNGNG
少なくとも俺にはまともな批判に見えるがな
メジャーじゃない
これは立派な不満点だ
お前の方が煽りに見える
0687デフォルトの名無しさんNGNG
この板もid欲しいな。
0688デフォルトの名無しさんNGNG
アンチも信者も評価軸は同一次元上にあるんだよ。
信者は何があろうと持ち上げるし、
アンチはなにがあろうとくさすからな。
どっちも同じくらい間抜けだし邪魔だ。

だがRubyの場合はただ煽りたいだけの馬鹿がいるのよな。
これRubyやmatzのせいか?

あとメジャーじゃない点は確かに批判になりうるが、
でもそれはお前、pointy-haired bossじゃねえかよ。
0689デフォルトの名無しさんNGNG
まー万人に好かれる物を作るってのは無理だろな
ここで叩いてる連中も自分で何か作ったら同じように叩かれるがいいさ。
0690デフォルトの名無しさんNGNG
別に叩かれても全然構わん。
それを見て精進するだけの話。
叩かれたからってファビョるなよな。
0691デフォルトの名無しさんNGNG
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0692デフォルトの名無しさんNGNG
ここまで強烈なアンチを生み出したことをRubyは誇ってよいぞ。
0693デフォルトの名無しさんNGNG
厨も強烈なので誇っていいぞ。

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のような才能の無い人間が作った言語が流行るのは、勘違いクンが増えるので良くない。
つか、悪い。もはや悪事。奴等は恥を知れ。
0694デフォルトの名無しさんNGNG
Rubyは嫌いじゃないんだが痛い信者が居るのがいやなんだよなぁ。
0695デフォルトの名無しさんNGNG
この板で「Ruby最高!Perl,Python,etcはゴミクズ」と煽っているのは同一人物だろ。
Rubyコミュニティが何か他言語に排他的であるかのように印象操作するべく
アンチが自作自演を延々と続けているのは見ていて痛々しいな。
彼にとっては2chが全てなんだろう。暇なやつ。
0696デフォルトの名無しさんNGNG
def java_like_ruby(a)
sync |sock,a| {
...
}
end
0697デフォルトの名無しさんNGNG
//JavaのsynchronizedのよなことをRubyでやりたい
def sync_lock(a)
yield sync(a);
end
0698デフォルトの名無しさんNGNG
>>695
根拠も無しに都合の悪い事は全てアンチの仕業にしてるアンタも
見ていて痛々しいぞ。
0699デフォルトの名無しさんNGNG
 ,_  ,_  ___,    _,    __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"σ;‐'
 `ー'"  ー'  `-'’  '-‐'"  ゛ー‐'   ー'くノ `・’ `――"   `ー'   `・´ `´ くノ^ヽ´ ー' `ー'
0700デフォルトの名無しさんNGNG
         ,_,       ,_,.     ,_,        |~|
       _| |_.     | |     | | 、__,.  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.! | |/ く^\ ヽ ヽ         く              :| |_____| |
      ┌――' ,|  \ノ ヽ/                       .|_______|
      └─―‐"
0701デフォルトの名無しさんNGNG
最早このスレを破壊したくてやっているとしか思えないな・・・
0702デフォルトの名無しさんNGNG
みんなスレたいを見てから書き込んでくれ
0703デフォルトの名無しさんNGNG
|ω・`)ソーッ
嵐が収まったようなので質問させて下さい。
boost::spiritでyaccの%left %rightに相当するような
結合・優先順位の設定は可能でしょうか?
やはりBNFで表現するしかないのでしょうか
0704デフォルトの名無しさんNGNG
 ,_  ,_  ___,    _,    __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,ー・、  -' ノ  | (_
          ー’   'ー ' ´ ー'    ~   ̄ ̄     ー'     ‐’  ̄~   ̄   ゛ー '
0705デフォルトの名無しさんNGNG










      ____
     | ,__ _|   | ̄|                         | ̄ ̄ ̄ ̄ ̄ ̄ ̄|
     | |_| |  __|  |__,                       | | ̄ ̄ ̄ ̄ ̄| |
     | ,__  ̄||__  __|     ┌─────┐       | |_____| |
     | |_| | ̄   |  |          |  ネット ヲ  ::.|       .:| _____ |
     | ,__  ̄|   i’  'i,          |  ナメンナ! ::|         .| |       :| |
     | |_| | ̄  i'   'i、         |_________:|       :| |_____| |
     |___ ̄|/ /^ヽ ヽ        ヽ( ゚Д゚)ノ         .| _____ .|
    i-ii-ii-ii-i |  | /  ヽ ヽ         ( へ)           :| |       | |
    L.iL.!L!L.! | |/ く^\ ヽ ヽ         く              :| |_____| |
      ┌――' ,|  \ノ ヽ/                       .|_______|
      └─―‐"








0706デフォルトの名無しさんNGNG
>>703
別にEBNFで表現しても大して難しくないんとちゃうの?
0707デフォルトの名無しさんNGNG
>703
マニュアルにはなかったよ。
0708 【270円】 NGNG
0709703NGNG
>>706,707
レス�dクス。
やはり無いですか…
spiritで書くと、正直な所あまり綺麗ではないし分かりづらいので、
行数節約出来るに越したことはないかな、と思ったのですが…
おとなしく構文で規定することにします。

クオリティ低い質問でスンマソン(;´Д`)
0710デフォルトの名無しさんNGNG
HSPが仕様がクソでそれで作る人が馬鹿でも構わないが、
どの辺がクソか?言うか、もっと良い仕様のスクリプトを作って
公開すれば?
0711デフォルトの名無しさんNGNG
> もっと良い仕様のスクリプトを作って

既存のもっと良いものを指摘するだけでも十分でしょ?

0712デフォルトの名無しさんNGNG
HSPは自作字句解析+再帰下降自作ですかね?
やっぱflex+bison?
0713Rubyist!NGNG
他人の創造的行為に横からごちゃごちゃ口挟めば
自分も何か価値のある行為をしてると勘違い出来る
安っぽいクズが、自分の発言を権威付けしたい欲望に駆られて
Ruby叩きの誇大妄想的な発言をしてるだけ。騙される奴はアホー

「じゃあお前がやってみろ」
これは創造的な行為をしてる人間やその作品に対して
足引っ張り以上の価値のないネチョネチョな難癖つけてる頭でっかちに対して、
その身の程を知らせるためにふさわしい切り返しだ。
最低最悪なのはどちらの行為なのかよく考えたらいい。

創造的な領域にまで昇華された批評も「例外的」にあるが、
すくなくともプログラミング言語へのもので
批評家の自意識過剰以外の何かが伝わる
創造的批評なんて、お目にかかったこと滅多にねぇ。
0714Rubyist!NGNG
今は批評に名を借りた単なる誹謗中傷にしか過ぎないシロモノが幅を利かせ過ぎな面があるって事だろうな。
批評本来の価値を貶めるようなものがね。
批評は創作に比較すれば容易に参加できるから、批評家の本質自体を問われやすい。
批評家は利害・好悪を離れたところの公正さやそれを機能させる自制心が必要だが、今の批評家には欠けてるって事だな。
本来の価値の高い批評を操れるにふさわしい批評家が増えて欲しいね。
0715デフォルトの名無しさんNGNG
>>713
じゃあお前が批評してみろ
0716デフォルトの名無しさんNGNG
俺が批判してやろう
0717デフォルトの名無しさんNGNG

   ∩___∩ 
   | ノ      ヽ  
  /  ●   ● |   
  |  //// ( _●_)  ミ    
 彡、    ヽ(⌒ヽ/   Ruby、プッ
/ __    \  ヽ
(___)   / `ー‐'

0718デフォルトの名無しさんNGNG
Ruby厨に「じゃあ、Rubyの良い所を挙げてみろ」と言うとだんまりになってしまうのが面白くてしかないwww
0719Rubyist!NGNG
↑コピペつまんね。OHP見ろ。

作品として公開されたものが批評されるのは当たり前の事だが、
批評する以前の問題(サンプルを見ただけ、もしくはインストールすらしない、とか。まあ大抵のUNIXには入ってるけどなw
窓厨には敷居が高いかもしれん(pu)な奴が多すぎだ。
食わず嫌いに「批評」はできるのかと。
0720デフォルトの名無しさんNGNG
少しはマトモな議論に戻ろうぜ

・Rubyの(言語としての)メリット
 - オブジェクト指向の皮を被ったマルチパラダイム
 - プロトタイプベースチックなクラスベース(特異クラス・メソッド)
  -> 高い柔軟性を持つ
 - 充実したシンタックスシュガー

・デメリット
 - 実行パフォーマンスが悪い。スピード求めるならC&C++で。
 - 作者(matz)が保守的すぎて新しいパラダイムを受け付けなくなっている。
 - 構文が複雑。シンプル化も進まない。
  (シンタックスシュガーが充実している反面でもあるけど)


かねえ。Ruby2.0でどうなるかだけど、進退窮まっている感じがするよね。
0721デフォルトの名無しさんNGNG
>>719
アンタの意見も根拠の無い妄想ばかりでつまらんのだけど。
0722デフォルトの名無しさんNGNG
HSP vs Ruby論争はこっちでやれ


言語仕様と開発論法
http://pc5.2ch.net/test/read.cgi/tech/1104394930/
0723デフォルトの名無しさんNGNG
むしろここでやれ
HSP vs Ruby
http://pc5.2ch.net/test/read.cgi/tech/1104571259/
0724デフォルトの名無しさんNGNG
いやここでやれ
0725デフォルトの名無しさんNGNG
ここもあるよ
【因縁の】DelphiVSHSPVSRuby【対決】
http://pc5.2ch.net/test/read.cgi/tech/1101498622/
0726デフォルトの名無しさんNGNG
ワロタwwwwwwwww
HSP厨もRuby厨も頭悪すぎwwwwwwwwww
0727デフォルトの名無しさんNGNG
>>726
HSP厨のアホさ加減は半端無いよなw
0728デフォルトの名無しさんNGNG
>>727
よくこういった書き込みみるけど、具体的な内容を指摘したものは
いまだかつて1度もないw
0729デフォルトの名無しさんNGNG
今時あんなBASIC風の古臭い言語が流行ってるのは
日本にとってかなりマイナスだと思う。
0730デフォルトの名無しさんNGNG
>>729
他の国のプログラマはオブジェクト指向言語から始めてるのかい?
0731デフォルトの名無しさんNGNG
無難にC/C++から始めてると思う。
スクリプトならPython+SDLのPygameとか。
ttp://www.pygame.org/projects/
0732デフォルトの名無しさんNGNG
これで日本と海外のソフトウェア開発力の違いの原因が良く分かりましたね
0733デフォルトの名無しさんNGNG
初めての言語なんてその後ちゃんとオブジェクト指向を学べば関係ないだろ
N88BASICから始めた俺にはかなり不愉快
0734デフォルトの名無しさんNGNG
このスレでくだらん論争してる奴が馬鹿なのは間違いないな。
0735デフォルトの名無しさんNGNG
>>733
それはそういう時代だったからだろ。
俺も最初の言語はBASICだったし。
でも今あえてBASICみたいな言語から始める理由は無いと思うが。
HSPもCも覚える労力はそんなに差はないでしょ。
0736デフォルトの名無しさんNGNG
最初に何を覚えようがその後覚える技術は本人次第でいくらでも覚えられる
最初がCだろうがHSPだろうが関係ない
0737デフォルトの名無しさんNGNG
インタプリタなC++がいいってこったね('A`)
0738デフォルトの名無しさんNGNG
話は変わりますがparrotってどうですか?
0739デフォルトの名無しさんNGNG
Perl6のランタイムのこと?
0740デフォルトの名無しさんNGNG
Rubyなんてプッて感じ。
ブロック扱うためにイテレータとか言って特殊構文導入しちゃって必死すぎw
それでも全然自己記述出来ないのな。Lispには遠く及ばないな。
Smalltalkの統一性にも全然及ばないwww
ユーザーも各スレ荒らしまくって最悪だしな。
0741738NGNG
>>739
そうです。
なんか、「他の言語からも使ってもいいよ」みたいなことが書いてあったので、
どんなもんかなと思ったんですが。
0742デフォルトの名無しさんNGNG
>>741
不勉強にして知らなかったからちょっと調べてみた。
http://www.namikilab.tuat.ac.jp/~sasada/prog/parrot-intro.html

とりあえずPerl用に作られたVMなんすね。
この種のものってJVMじゃダメなのかな…
面白そうなのでもうちょっと調べてみます。いい拾い物をしたw
0743デフォルトの名無しさんNGNG
> 現在の Perl 5 の VM はスタックマシンだ(訳注:そうだったんだー)
そうだったんだ…
0744デフォルトの名無しさんNGNG
>print "String" とか、レジスタの値を表示するためにprint I3 とか、書けるけど、
>Parrot の演算は多態(polymorphic)ではない。
>アセンブラがちょっとトリッキーなことやって対応してる。

こういう変なHack入れるとグダグダになりそうな気がするんだけどなあ…
0745デフォルトの名無しさんNGNG
>>744
ただオペランドの種類で命令をリダイレクトしてるだけとちゃうの?
その程度ならさほど問題にはならなそうだけど
0746デフォルトの名無しさんNGNG
>>745
うん、ちょっと読み進めたらまさにそう書いてあったorz
0747738NGNG
http://www.parrotcode.org/

俺の受けた印象では、Groovyとか、違う言語からJavaバイトコードを
使おうってのとか、.NETのCLRとかも含めて、そういう
ものと似た動きに見えるんですがどうですか?
ならまじめに勉強して損はないかなと思うんですが。
最近そういう動きが盛んだな…
0748デフォルトの名無しさんNGNG
アプリケーションからハードは一切触らない、みたいな。それこそ
単純な加算などでさえも。
0749デフォルトの名無しさんNGNG
Parrot入れてみたんだが、SDLも既にバインドされてたりするのね…
0750デフォルトの名無しさんNGNG
これって出て来た?
http://www.namikilab.tuat.ac.jp/~sasada/prog/parrot-intro.html
0751デフォルトの名無しさんNGNG
>>750 >>742
0752デフォルトの名無しさんNGNG
C/C++で日本語プログラム作らないんだな、
0753デフォルトの名無しさんNGNG
、
0754デフォルトの名無しさんNGNG
parrotなんか糞
perl6はrubyの劣化コピー
0755デフォルトの名無しさんNGNG
Parser を正しく発音すると「パーサー」「パーザー」のどっち?
0756デフォルトの名無しさんNGNG
米語発音がパーサー。どっちも正しい
0757デフォルトの名無しさんNGNG
>755
http://dictionary.goo.ne.jp/search.php?MT=parse&kind=ej&mode=0&base=1&row=0
0758デフォルトの名無しさんNGNG
pythonの言語仕様は素晴らしいと思う。
0759デフォルトの名無しさんNGNG
>>758
言語仕様と開発論法
http://pc5.2ch.net/test/read.cgi/tech/1104394930/

こちらへどうぞ
0760デフォルトの名無しさんNGNG
>>747
流行ってるわけでも無いVMの勉強って
損得で言ったらどっちになるか微妙だとおもうぞ。
0761デフォルトの名無しさんNGNG
コンパイラ作る練習にいいかも
0762デフォルトの名無しさんNGNG
>>754
つInline::Ruby
0763デフォルトの名無しさんNGNG
>>760
やっぱ、やるならjavaのVMでつか?
0764デフォルトの名無しさんNGNG
どういう目的でVMの勉強したいのかわからんが
とりあえずJavaが無難じゃない?
0765デフォルトの名無しさんNGNG
いきなりJVMやるならアセンブラでも覚えたほうがいい
0766デフォルトの名無しさんNGNG
ここはやるスレじゃなくて作るスレなんで
0767デフォルトの名無しさんNGNG
作る前にやらんと意味わからん
0768デフォルトの名無しさんNGNG
そらそうだ
0769デフォルトの名無しさんNGNG
ここは作るスレじゃなくて相談室なんで
0770デフォルトの名無しさんNGNG
おまいら会話がエロすぎます。
0771デフォルトの名無しさんNGNG
作っちゃった時の相談もここ?
0772デフォルトの名無しさんNGNG
VBやDelphiなどの言語のコンパイラを
勝手に作ったら特許とかに引っかかりますかね?
0773デフォルトの名無しさんNGNG
>>772
先ず作ってから心配しろ。
0774デフォルトの名無しさんNGNG
>>773
作った後に駄目だったらキツイでしょ?
0775デフォルトの名無しさんNGNG
>>772
A.言語仕様自体は特許にならないから大丈夫。

ただし、付属しているライブラリは特許・著作権で保護されるので
そっちの回避法を考えておかないと駄目。
0776デフォルトの名無しさんNGNG
質問です。
コンパイラ本に良く載ってる実行時環境(スタックマシンとかレジスタマシンとか)っていうのは
何のためにあるんですか?最適化をしやすくするため?
実行時環境とか用意しなくても直接構文木を記号表と照らし合わせながら
実行コードに変換していく様な事はできないんですか?
0777デフォルトの名無しさんNGNG
↑自己解決しました。勘違いでした。
0778デフォルトの名無しさんNGNG
HSPくらいの言語なら簡単に作れますか?
0779デフォルトの名無しさんNGNG
>>778
あなたには無理です
0780デフォルトの名無しさんNGNG
最適化をあまり気にしなければ。
0781デフォルトの名無しさんNGNG
>>776
ただ単純に説明を楽にするためじゃないの?
「勘違いでした」って何を?
0782デフォルトの名無しさんNGNG
>>781
仮想マシンのスタックマシンと、CとかPascalのスタックベースメモリ割り当てを勘違いしてました。
0783デフォルトの名無しさんNGNG
>>775
ありがとうございます。
とりあえず勉強を兼ねてVBコンパイラ作ってみます。
0784デフォルトの名無しさんNGNG
LSI C-86 試食版
で、コンパイラをつくってみよ〜
0785デフォルトの名無しさんNGNG
質問させていただきます。
bnfを使って出来ることって字句解析、構文解析までですよね?
意味解析、中間コード生成までを定義できるようなbnfにしたいのですが、
そのような拡張がされたbnfの構文というのはあるのでしょうか?
0786デフォルトの名無しさんNGNG
>>785
とりあえず属性文法を学ぶのが良いと思う。
0787デフォルトの名無しさんNGNG
>>785
わりと参考になった本を紹介しときます。(関係者じゃないですよ、念のため。)
http://www.amazon.co.jp/exec/obidos/ASIN/4320027981/249-0278157-3285121
0788デフォルトの名無しさんNGNG
Rie 属性文法
ftp://ftp.is.titech.ac.jp/pub/Rie/
0789デフォルトの名無しさんNGNG
なるほど属性文法ですか。
手元の本でちょっと調べてみましたが
意味解析以降は格段に難易度上がりますね。
ちょー難い!
0790デフォルトの名無しさんNGNG
属性文法(((( ;゚Д゚)))
0791デフォルトの名無しさんNGNG
普通は、構文解析以降は手書きじゃ???
0792デフォルトの名無しさんNGNG
何が普通なんだか…
0793デフォルトの名無しさんNGNG
>>791
つまり、bnfのような定義ファイルにはできないってこと?
0794デフォルトの名無しさんNGNG
すぐ上にあんじゃねーか
0795デフォルトの名無しさんNGNG
YACCに限界を感じて、そろそろというプロジェクトはいくつかあるが、
パーサ手書きというのは、実用的なソフトではほとんどナイ。
0796デフォルトの名無しさんNGNG
>>794
属性文法の書式を例を踏まえて教えれ。
0797デフォルトの名無しさんNGNG
>>795
最近のgccは手書き。
次期rubyも手書きの予定。
0798デフォルトの名無しさんNGNG
>>794
ftp://ftp.is.titech.ac.jp/pub/Rie/more-examples/pascal-S/pascal-S.rie
0799デフォルトの名無しさんNGNG
属性文法使ってる処理系なんて聞いたことないぞ。
lexやyaccまでなら聞くけど。
構文解析以降は手書きじゃないか?
0800デフォルトの名無しさんNGNG
日本語の不自由な方がおらっしゃられるようです
0801デフォルトの名無しさんNGNG
Rieくらいは聞いたことあるんじゃないか?市販の製品に使われたって
言うのは聞かないけれども。
0802デフォルトの名無しさんNGNG
藻前らはコンパイラ作って市販するつもりなのか?
0803デフォルトの名無しさんNGNG
コンパイラ屋くらいだろうな、そんなことするの。
0804デフォルトの名無しさんNGNG
理恵タソ(;´Д`)ハァハァ
0805デフォルトの名無しさんNGNG
現場ではどうなのかわからないけれども、最適化ステージと
コードジェネレータを全部手書きってのは無いんじゃないかなあ。

最適化とコードジェネレーションについては、
Muchnick: Advanced Compiler Design & Implementation,
Morgan Kaufmann, 1997 が実践的で参考になった。
0806デフォルトの名無しさんNGNG
カウフマンつーとサイレントヒルだな
医者。仮眠明けで起きると誰も居ないでモンスターだらけと説明。
0807デフォルトの名無しさんNGNG
コンパイラ作る時のお勧めの中間コードは何ですか?
0808デフォルトの名無しさんNGNG
中間コード?
1パスにそんなもん必要ない
0809デフォルトの名無しさんNGNG
1パスでレジスタ割り当てとかの最適化まで出来るのですか?
0810デフォルトの名無しさんNGNG
どんな最適化を実装するつもりか自分でわかっているなら、
おのずと適切な中間コードもわかるはず。それが分かっていない
>>807にはどうせ非最適化コンパイラも作れない罠。
0811デフォルトの名無しさんNGNG
上の張ってある書籍ですが、読む順番はあるんですか?
ちなみに私は、Cをはじめてまだ1ヶ月です。
0812デフォルトの名無しさんNGNG
>>811
プログラミングを初めて1ヶ月?
0813デフォルトの名無しさんNGNG
先にCを完全にマスターして下さい。
どの本も何らかのプログラミング言語をマスターしている事を前提に書かれてます。
0814デフォルトの名無しさんNGNG
Cマガでコンパイラの特集が組まれてたのって何年何月号だか
ご存知の方いらっしゃいますか?
0815デフォルトの名無しさんNGNG
>812
そうです。

>813
マスターですか。。。。
K&Rがスラスラ読めるレベルでしょうか?
頑張ります。

0816デフォルトの名無しさんNGNG
>>814
手持ちでは…2003年8月号に
「コンパイラの仕組みを理解しよう」って特集があるけど、
そこまで突っ込んでは書いてない。
0817デフォルトの名無しさんNGNG
>>816
情報ありがとうございます。
私の手持ちで2003年1月号に「コンパイラの作成」
というそのものズバリの物がありました。
0818デフォルトの名無しさんNGNG
>>817
見事にその号が抜けてる orz
どのあたりまで書いてありますか?
0819デフォルトの名無しさんNGNG
Cマガの特集レベルなんてたかが知れてる
昔のインターフェース誌は濃かったなあ
0820デフォルトの名無しさんNGNG
インターフェースもCマガみたくバックナンバーをPDFにして売ってくれたりしないのかなぁ
0821デフォルトの名無しさんNGNG
>>820
しているじゃないか。
0822デフォルトの名無しさんNGNG
>>821
うお、知らなかった…_| ̄|○
01年までですか…。90年代のやつがもう一度読みたいんだけどなぁ
0823デフォルトの名無しさんNGNG
>>818
字句解析、構文解析、意味解析、コード生成までが
非常に分かりやすく書かれてます。
20ページくらいでソース付きです。
0824デフォルトの名無しさんNGNG
>822
ttp://www.sbpnet.jp/shop/art.asp?newsid=1403
0825824NGNG
ごめん、インタフェースも、か。読み間違えた。
0826デフォルトの名無しさんNGNG
http://www.csg.is.titech.ac.jp/~chiba/lecture/os/index.html
0827デフォルトの名無しさんNGNG
●プログラミング言語処理系 岩波講座 ソフトウェア科学〈5〉 佐々 政孝
上記の本を買おうと思ったら、中身パスカルだったぞ。
他のコンパイラの本もパスカル+Cって内容だった。

Cのみの本はないのか?
0828デフォルトの名無しさんNGNG
>>827
その本俺も持ってるし、俺はCしか書けないけど、大体読めるから自分で
書き直せるっしょ。元々そういう意図があるから複数の言語で書いてないん
じゃないの?
0829デフォルトの名無しさんNGNG
>827
なぜCのみである必要が?
パスカルのみでも読めるでしょ
逆に読めないなら問題
0830デフォルトの名無しさんNGNG
今の人には読めない読めない
無理も無い
パシカル本は今の本屋にどこにも置いてないからね
もしCより簡単だと言われても敬遠するだろう
パスカルで書かれているという事は大抵古い本で、
ポインタ記法とか本ごとに違ってたりするし
構文なのか演算子なのかわからない物もある
.の置き方に一貫性ないし
読んでもただ、混乱するだけである
0831デフォルトの名無しさんNGNG
Pascalの方が綺麗でしょ。
Cみたいにメモリ周りの汚さはなくて、純粋にアルゴリズムを記述しやすい。
0832デフォルトの名無しさんNGNG
綺麗・汚いの話をしてるわけではない
0833デフォルトの名無しさんNGNG
>>832
綺麗なら読みやすいだろう。
言語を覚えるコストよりもソースを読み解いたり書いたりするコストの方が遥かに高い。
0834デフォルトの名無しさんNGNG
読みやすさの話をしてるわけではない
綺麗ならSchemeの方が良い
0835デフォルトの名無しさんNGNG
>>834
では何の話なの?わかりやすく教えて。
0836デフォルトの名無しさんNGNG
本がないという理由なら、WEB上のリソースでも十分だけど。
0837デフォルトの名無しさんNGNG
なぞなぞです
0838デフォルトの名無しさんNGNG
>>834
関数型言語と手続き型言語では、さすがにプログラミングの定石からして
全く違うだろ。

記法が書籍毎に異なるなんてのは、良くある話。コンパイラ系の書籍だと
BNF 記法が良く出てくるが、あれも書籍毎に微妙に違ったりするし。その
あたりを自分で吸収できないようだと、専門書と取り組むのは難しい。
0839デフォルトの名無しさんNGNG
記法が多少違うなんてのはコンピュータに限らず、
大学で勉強すれば大抵でくわす話。
0840デフォルトの名無しさんNGNG
>>829
それはあんたはすでにパスカルを知っているから。
またはあんたが十分かしこいから。
よのなかの人間はあんたほど賢くないんだよ。

>>830
はげどう。
Javaが広まった理由のひとつが、「CやC++と見た目が似てるから」。
そのくらい、自分の知ってる言語に似ているかどうかは重要。かしこくない人間にとっては。
0841デフォルトの名無しさんNGNG
pascalライクな擬似コードくらい読めるだろ普通。
ま、おまいが読めなかったとしても
CSを志すような人間は大抵おまいより賢いから心配ご無用。
少なくともそんなつまらん理由で萎縮しない程度にはな。
0842デフォルトの名無しさんNGNG
>>840のように賢くない人間はコンパイラなんか書くなということだな。
0843デフォルトの名無しさんNGNG
大丈夫、そんな人間に自力でコンパイラなんて書けない。
時間の無駄を省けていいじゃん。
大学入試の足切りみたいなもんだと思え(入ったってついてけない奴もいるが)。
0844デフォルトの名無しさんNGNG
真面目な話の途中で申し訳ないんだけど、parrot って結構良いね。
これをターゲットにコンパイラ書いたら面白そう(楽出来そう)。

http://www.parrotcode.org/docs/
0845デフォルトの名無しさんNGNG
Javaの二番煎じ
0846デフォルトの名無しさんNGNG
JVM や CLR の系列だろうけど、ベンダーフリーでライセンスも緩いから使い易いと思う。
0847デフォルトの名無しさんNGNG
結構早いしな
0848デフォルトの名無しさんNGNG
てかParrot自体はちゃんと動くのか?
作ってもParrotのバグのせいでまともに動かなかったら悲しいぞ。
0849デフォルトの名無しさんNGNG
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Parrot
でかい顔するなぼけ
糞ぺrぇrはしね
0850デフォルトの名無しさんNGNG
字句解析でコードをトークン列にする際に、
if、forなどのキーワードは「keyword」という大きな
括りにするのと、それぞれ「keyword_if」、「keyword_for」
などのように細かく分けるのとどちらがよろしいでしょうか?
0851デフォルトの名無しさんNGNG
構文解析で必要な方。
0852デフォルトの名無しさんNGNG
>>850
作りたい言語似よるが、C や Pascal ライクな言語を作りたければ
後者の方が楽。
0853デフォルトの名無しさんNGNG
洗練されたPerl: Perl 6文法と正規表現
http://www-6.ibm.com/jp/developerworks/linux/041203/j_l-cpregex.html
0854デフォルトの名無しさんNGNG
Win32コンソール形式の実行ファイルを作りたいのですが
参考になるページはありませんか?
A := B + C
GOTO(L)
のような3番地文の中間コード形式の出力までは出来ています。
0855デフォルトの名無しさんNGNG
>>854
>>826
0856デフォルトの名無しさんNGNG
>854
x86ならnasmのinfoやIntelのwebサイト、
exeならPE形式、
実際の実装方法はgccのソース
を見ろよ
0857デフォルトの名無しさんNGNG
スモールコンパイラ買って着た。
結構美人
0858デフォルトの名無しさんNGNG
オライリyacc本が初売り在庫処分で100円だったので買ってしまった。
かなりすすけてるよ(´・ω・`)
読んでみますか。
0859デフォルトの名無しさんNGNG
ほ、欲しかった
0860デフォルトの名無しさんNGNG
構文解析ではよく構文木を作るって言うけど、
プログラムのデータとしてはどのように持てばいいのでしょうか?
0861デフォルトの名無しさんNGNG
リスト(木のノードも含む)とか配列じゃないかね。
LISPの場合はコードがそのまんま構文木なんだよな。
LISPに慣れてるならLISPと同じ構造を目指すとよい。
でもLISPのセルは普通の言語だとGCないから扱いにくい。
0862デフォルトの名無しさんNGNG
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の内部表現もそうだったかと
0863デフォルトの名無しさんNGNG
型やシンボルの属性情報はどうしてます?
0864デフォルトの名無しさんNGNG
記号表で別管理
0865デフォルトの名無しさんNGNG
(´・∀・`)ヘー
0866デフォルトの名無しさんNGNG
treeなんて意識しなくても大丈夫だよ。
あれはあくまでも学問。実務はパーサがやってくれる。
0867デフォルトの名無しさんNGNG
>>866
構文解析して即コードに落としちゃう場合はともかく、もう一ステージ挟む場合
(最適化するとか)は、いちど明示的にツリー作る必要があるよ。
0868860NGNG
>>861-862で
なんとなく考えが具現化してきました。
ただ今一分からないのが、字句解析で得たトークンを
構文解析でtree構造のデータとして持つとして
それを後の意味解析でどのように使うのでしょうか?
0869デフォルトの名無しさんNGNG
>>868
単純な最適化だと

        add
       /  \
       2     1

ってツリーがあったら、コンパイル時に計算して 3 に置き換えちゃうとか。
0870デフォルトの名無しさんNGNG
データフロー解析をする時は、ツリーを3つ組表現すると楽かも
0871デフォルトの名無しさんNGNG
>>869のような定数伝播ぐらいなら1パスでもできる
ただし1 + a + 2とかをa + 3にはできない
1 + aを読み終えた時点の出力を保留する様な仕組みは
もはや2パスとみなせるし、そこまでするなら木を作った方がいい
0872デフォルトの名無しさんNGNG
自分の自作言語で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のアラインメントも働いているということでしょうか?
0873デフォルトの名無しさんNGNG
>>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になる
0874デフォルトの名無しさんNGNG
>>873

仰るとおり理解するのが大変でした。
アラインメント指定された値は、あくまでもその大きさの型が出現した
ときに影響するってことで、それ以下のサイズについても
アラインメント指定された値以下であれば位置調整をしなくてはならない
ということですかね。

> 例えばcharしか持たない構造体はアラインメントが1になる

この言葉でようやくわかりました。

構造体を外から見るだけじゃなくて、その中の基本型まで遡って
把握しないと作れませんね。
お答えありがとうございました。
0875デフォルトの名無しさんNGNG
難しいね。

λ......         λ......       λ......
  λ......            λ......
0876デフォルトの名無しさんNGNG
名前の分からないライブラリ関数を、動的に与えられた名前を用いて
コールすることとかって出来ますか?
0877デフォルトの名無しさんNGNG
アドレスが分かればできるよ
0878デフォルトの名無しさんNGNG
ld
0879デフォルトの名無しさんNGNG
興味があったのでアラインメントの計算を考えてみました。

構造体が
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; // 次のメンバを置ける位置を再計算
 }
0880デフォルトの名無しさんNGNG
言語処理って文型向きでしょうか?理系向きでしょうか?
0881デフォルトの名無しさんNGNG
玄人向き
0882デフォルトの名無しさんNGNG
よくわからんが、構造体がネストしてたらそれを再帰的にやるんだろう。

Cの型定義をパースしてサイズやオフセットを返すだけの
モジュールでも作れば需要ありそうだな。
C言語作ってるならともかく、自作言語のFFI周りの作成とかでは
誰もがやりたくない部分の1つだし。
0883デフォルトの名無しさんNGNG
>>880
理系崩れ向き
0884デフォルトの名無しさんNGNG
>>880
廃人ムキ!
0885デフォルトの名無しさんNGNG
>>882
既存のC処理系にあわせなければならないなら
offsetofやsizeofを表示するプログラムを生成して
Cコンパイラにやらせるのが楽そうだな。どうせ
どう配置されるかなんて処理系依存なんだし、
いちいち調べるのはかったるい。

0886デフォルトの名無しさんNGNG
構造体のアラインメントの話、結構興味深いね。
久々のヒット、トンクス。
0887デフォルトの名無しさんNGNG
質問ですが、言語処理系の仕事って年収どれぐらいもらえるのでしょうか?
もちろん、条件によりさまざまだと思いますが、
平均的な所を知りたく思います。

お金の話は、禁句かもしれまえんが、
生活が出来ての仕事だと思います。
0888デフォルトの名無しさんNGNG
「『言語処理系』の仕事」って業種があるのですか?

私は寡聞にして聞かない。
0889デフォルトの名無しさんNGNG
>>887
実際に、応募してみれば良いじゃん。
0890デフォルトの名無しさんNGNG
   俺の”コンパイラ屋” 想像図↓

                 ┌─┐
                 |コ.|
                 |ン |
                 │パ│
                 │ゐ│
                 │ラ .|
                 │屋 .|
                 │ !!.│
                 └─┤     ∧∧
                    │     ( `Д)
                 | ̄ ̄ ̄|─□( ヽ┐U
                  ̄◎ ̄   ◎−>┘◎
0891デフォルトの名無しさんNGNG
まあ実際そんなもんだ
0892デフォルトの名無しさんNGNG
流しのコンパイラ屋や一匹狼のコンパイラ屋なんて聞かないから
メーカーのコンパイラ開発部門の社員に過ぎないだろうよ。
サラリーマンとして給料をもらうだけ。
0893デフォルトの名無しさんNGNG
Digitalmarsとかは最初は一匹狼のコンパイラ屋だったに違いない
0894デフォルトの名無しさんNGNG
>>892
そのサラリーマンの給料が知りたい、って話じゃないの? IT 系といっても
給料はピンキリだからなぁ。

個人的には、職種よりも企業の方が効いて来るに一票だが。Microsoft なら
たぶん高いよ。
0895デフォルトの名無しさんNGNG
スレ本来の技術的な話題で湧いた直後なのに・・。 可哀想な俺達。
0896デフォルトの名無しさんNGNG
>>894
おれも、そう思うに1トークン。

ただ、システム系やら(言語を利用した)開発系よりかは
悪いと思われる。

>>892
> 流しのコンパイラ屋や一匹狼のコンパイラ屋

ワロタ
0897デフォルトの名無しさんNGNG
アタマワルソ
0898デフォルトの名無しさんNGNG
HSP作者のおにたま氏はある意味コンパイラ屋?
本とかで儲けてるんだろうな。いいなぁ。
0899デフォルトの名無しさんNGNG
るby>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>。hsp
0900デフォルトの名無しさんNGNG
HSPはインタプリタ
0901デフォルトの名無しさんNGNG
Rubyモナー
0902デフォルトの名無しさんNGNG
>>898
あなたもやってみればいいのに。
俺はコンパイラじゃないけど、チャレンジしてるよ。
0903デフォルトの名無しさんNGNG
matz師とおにたまでは格が違いすぎて比較にならないだろ。
ぶっちゃけ頭の出来が違う。
0904デフォルトの名無しさんNGNG
( ゚∀゚)・∵.ブバッ
0905デフォルトの名無しさんNGNG
>>887
ボクチンの場合、一般のプログラマと変わらないです。
仕事の内容が違うだけ
0906デフォルトの名無しさんNGNG
>>902
実は俺もコンパイラ作ってます。
って言っても字句解析までしかできてませんが・・・
つーかコンパイラ作るのって楽しすぎ。
0907デフォルトの名無しさんNGNG
m4スレ立てました。
ここの住人なら興味深い言語でしょう。

m4スレ
http://pc5.2ch.net/test/read.cgi/tech/1105796351/
0908デフォルトの名無しさんNGNG
どうしてもブギャーに見えるw
OpenMCL が m4 使ってたな。
0909デフォルトの名無しさんNGNG
>>890
ワロタw

おれも、今の仕事やめて憧れだった
流しのコンパイラ屋でもやろうかな?
0910デフォルトの名無しさんNGNG
>>909
(・∀・)イイヨーイイヨーー
0911デフォルトの名無しさんNGNG
まずは、屋台を調達しろw
0912デフォルトの名無しさんNGNG
老後は屋台を引いて駅前で(ry
0913デフォルトの名無しさんNGNG
>906
あっしはプロトタイプベースのコンパイラ・インタプリタ作成中
ベースオブジェクトの設計にメドがたってきたから、ようやっと
字句解析にいけそう。

文法作るの楽しいよね。
0914デフォルトの名無しさんNGNG
3件の屋台が駅前で軒を連ねるのを思い浮かべてみた。
構文解析屋、字句解析屋、コード生成屋

       / / / / / / / / / / / / / /`、 ヽ
    ./ / / / / / / / / / / / / /=== 、ヽ
    / /_ / / / / / / / / / / / /     、ヽ
  |=構 ギ_l ̄||  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄||
  |=文∫  =:| ||               ||
  |= 解 コ..:| ||               ||
  |=析 =:|  || グツグツ       ∧∧ ||┌────────────────
  ~~~~~~~ | ||  ==┻==     (゚Д゚;) <構文解析屋の新装開店だ、ゴラァ!
        | ||   | ̄ ̄|      (|ギ ∪ || \_______________
      ┌┴┸───────┴─┴┸┐
    ┌┴─────────────┴┐
    └─┬───────────┬─┘
        | | ̄ ̄|    | ̄  ̄|  ....:.:::::|
        | |    |  ..:::::::|     |  ....::.::.:::|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0915デフォルトの名無しさんNGNG
あー邪魔くせえ
0916デフォルトの名無しさんNGNG
LISP勉強するのに、この本は買いでしょうか?
http://www.amazon.co.jp/exec/obidos/ASIN/4781904548/
0917デフォルトの名無しさんNGNG
ここはLISPや推薦図書のスレじゃありませんが。
0918デフォルトの名無しさんNGNG
ここは流しのコンパイラ屋スレです。
0919デフォルトの名無しさんNGNG
糞コテのほんたまって自分でアセンブラとリンカ書いたの?
それともnasmとかのフロントエンド書いただけ?
0920デフォルトの名無しさんNGNG
”Slim de Can”のこと言ってるなら、たぶん>>919の勘違い
0921デフォルトの名無しさんNGNG
"Slim de Can"って前はE言語という名前じゃなかったっけ?
0922デフォルトの名無しさんNGNG
Slim de CanってPEヘッダとかセクション分けは自力で吐いてるの?
0923デフォルトの名無しさんNGNG
そんなん聞いてどうすんだよ。てか本人に聞け。
0924デフォルトの名無しさんNGNG
収入の話だけど、最近は(善し悪しは別として)成果主義が結構
浸透していて、利益につながらないorつながりにくいと判断され
てしまっているところが多いみたい。
0925デフォルトの名無しさんNGNG
ふーん
0926デフォルトの名無しさんNGNG
学部生なのか専門学校生なのか知らんが、
こっちに移住してやってくれ ↓ 

http://pc5.2ch.net/test/read.cgi/prog/1071367436/
0927デフォルトの名無しさんNGNG
基本的な事で申し訳ないんですが、
文(Statement)と式(Expression)の違いは何ですか?
あと、2つの違いは言語に依存しますか?
0928デフォルトの名無しさんNGNG
式は結果の値を持つ。
文は制御構造しか持たず、結果の値はない。
Cは両方あるが、
Lispは式しかない。
092992705/01/17 19:39:40,
・値を持つもの→式(Expression)
・値を持たないもの→文(Statement)

ということですね。明確な回答ありがとうございます。
言語によっては必ずしも両方持たないものもあるようですが、
この定義が異なるようなケースor言語ってありますか?

それとも、この定義は一般的なものですか?

質問ばかりですいません。
いろいろ調べてはいるのですが、明確に定義or区別しているものに出会えず、
いままでなんとなく津かって来ましたので。。。
0930デフォルトの名無しさん05/01/17 20:48:43
> いろいろ調べてはいるのですが、明確に定義or区別しているものに出会えず、
その「いろいろ」に言語仕様書は入って無いのか。
0931デフォルトの名無しさん05/01/17 22:18:36
>>929
一般用語としてはそうだけど、
最終的には言語仕様でどう言葉を定義するかによる。
C言語で戻り値voidの関数呼び出しなんて
式なのに値がないかも(void型の値を持ってるのかもしれんが)。
あと、昔オレがCに似た構文のスクリプト言語作ったときは
Cの文に似たものを文と呼ぶことにしたが、文は全て値を持ってた。
0932デフォルトの名無しさん05/01/17 23:34:26
それは式だよ
値を返すなら文と呼ぶ意味が無いし
Rubyも制御構造が式だけど用語の整理ができてないみたい
0933デフォルトの名無しさん05/01/17 23:47:28
>>932
用語の統一なんて、あって無いようなものだろ?
0934デフォルトの名無しさん05/01/17 23:50:50
ちょっと気になったんで、K&R(古〜)を取り出してみた。
確かに、式に含まれる式の種類や、文に含まれる文の種類は
細かく書かれてあったが、式自体の定義と文自体の定義(そ
の違いを含む)は書かれてないな。
0935デフォルトの名無しさん05/01/17 23:55:23
C言語の <expr> ; は式文(expression-statement)と呼ばれるから
区別はつくでしょ。

式の中にif文やfor文置けるわけじゃないし
そういう拡張したならif式とかfor式と呼ぶべき
0936デフォルトの名無しさん05/01/17 23:58:18
>>933
Rubyリファレンスはif式だとかif文だとか統一されてない。
あれはいくらなんでもまずい。
0937デフォルトの名無しさん05/01/17 23:59:07
>式自体の定義と文自体の定義(そ の違いを含む)

BNFで書かれたものじゃ不足か?
0938デフォルトの名無しさん05/01/18 00:05:58
>>934
K&R日本語訳読んでるならp.277の付録A9に書いてあるぞ

>実行された文はその効果を残すが、値は持たない。
0939デフォルトの名無しさん05/01/18 00:16:07
付録A7が式の定義、A8が宣言の定義、A9が文の定義
てちゃんと書かれてるだろ。
付録Aの参照マニュアルは一番お世話になる章だと思うんだが。
094093105/01/18 10:02:07
>>932
もちろんそのときは文は式の一種。
Cの構文解析やらのプログラムを転用するから、
そこで「文」を他に言葉に変換するのは手間。
実装で使う単語と仕様書で使う言葉を分けるという手もあるが、
内輪でしか使わないやつだから統一したほうがよろしい。
仕様書では明示的に「文という言葉を普通じゃない意味で使う」と断った。
094193405/01/18 21:31:21
>>937
お前の理論だと、どのような言語もマニュアルならいらんということになるな。

>>938
ん?ページあってるか?
しかもそのような行はないぞ?

>>939
A7は評価の順序やら、結合など細かく書かれてあるが、値を持つとは書かれていない。
A9も逐次実行されることぐらいしか、文全体の説明は書いてないぞ。
0942デフォルトの名無しさん05/01/18 21:54:46
つ「ANSI/ISO 9899-1990: American National Standard for Programming Languages - C」
0943デフォルトの名無しさん05/01/18 22:03:39
逆ギレ?
0944デフォルトの名無しさん05/01/18 22:13:06
なにを式と呼ぼうが、なにを文と呼ぼうが作者の勝手。
0945デフォルトの名無しさん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
0946デフォルトの名無しさん05/01/18 22:28:08
>>944
「詭弁のガイドライン」より。

・自分に有利な将来像を予想する
・主観で決め付ける
・ありえない解決策を図る

今のあなたはこの辺が該当します。
予想しうる今後の展開は、

・レッテル貼りをする
・勝利宣言をする
・知能障害を起こす

辺りです。
0947デフォルトの名無しさん05/01/18 23:29:23
詭弁のガイドライン2

・詭弁のガイドラインを持ち出してくる
094892705/01/18 23:47:25
>>945
ご丁寧にありがとうございます。
かなり難解な部分もありましたが、犬の例え話はなるほどそうですね。

ふと、感じたのですが、私のような初心者にはややこしく感じるのは、
ひょっとして言葉が直観的じゃないのが原因なんでしょうか?

うまく説明できませんが、

・(Statements)→文は、値をもたない点を含めて納得しやすいのですが、
・(Expression)→式は、値を持つ点を含めて、何か直観的でないと感じます。

式と言われると、y=ax^2+bx+c のような(数学)式を連想してしまいます。
左辺&右辺にはそれぞれ値があるのですが、式自体には値は無いですよね…
(↑数学的に)

なれですかね?
0949デフォルトの名無しさん05/01/19 00:16:56
ソシュールとチョムスキー読むとおもしろいです
0950デフォルトの名無しさん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を代入する」
これらが区別できているかい?
0951デフォルトの名無しさん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の中身になる。
095294505/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行目「この関数が式に対する意味関数である」は
「文に対する」の誤りです。

頑張ってください。

0953デフォルトの名無しさん05/01/19 01:25:46
>>951-952
ここでいうy=ax^2+bx+cは、プログラムの代入ではなく、
数学の等式だと思うぞ。放物線。

>>948
数学でもax^2+bx+cは式だと思うぞ。
ってことで、漏れ的にはそれほど違和感はない。


言葉って言うのは概念につけられた単なるラベルなわけで、
極論を言うと重要なのは概念であって言葉じゃない。
「犬の尻尾を足と呼ぶことにしても足は5本にならない」
ってのはラベルを取り替えても概念は変わらないという意味だと思う。
まあ、言葉に振り回されるのもほどほどにってことで。
とは言いつつも、プログラムにおける文と式という言葉の起源はちょっと知りたい。
0954デフォルトの名無しさん05/01/19 01:36:39
言葉って言うのは概念につけられた単なるラベルなわけで、
極論を言うと重要なのは概念であって言葉じゃない。
なにを式と呼ぼうが、なにを文と呼ぼうが作者の勝手。
まあ、言葉に振り回されるのもほどほどにってことで。
0955デフォルトの名無しさん05/01/19 01:40:29
文は文法に束縛
SVO
S=O(BASICの場合)
if文

式は演算子と優先順位と結合規則に束縛
a+b*cはa+(b*c)

だが、たしかにこんなことはどうでもいい
記号にも興味ない
興味があるのは動くプログラム
0956デフォルトの名無しさん05/01/19 01:41:45
・勝利宣言をする
0957デフォルトの名無しさん05/01/19 02:21:32
言葉って言うのは概念につけられた単なるラベルなわけで、
極論を言うと重要なのは概念であって言葉じゃない。
ってことで、皆が文と呼ぶものを、ここでは式と呼ぶことにします
漏れ的にはそれほど違和感はない。
0958デフォルトの名無しさん05/01/19 02:30:37
・知能障害を起こす

>>953がレッテルならぬラベルを貼ってくれたから、
全部集まって神龍が現れるでFA?
0959デフォルトの名無しさん05/01/19 08:47:37
>>956
>>958

詭弁のガイドラインを出してくるお前も

・レッテル貼りをする
・勝利宣言をする
・知能障害を起こす

に該当する。

つうか、今時詭弁のガイドラインって
0960デフォルトの名無しさん05/01/19 11:46:26
主観で決め付けるコンパイラ屋さんガンガル、の図

     ┌─┐
     |記|
     |号 |    業界での字(あざな)は”ウルフ”
     │に│      ↓
     │興│
     │味 |         それほど違和感はない♪〜
     │な .|       
     │い│          / ̄
     └─┤     ∧∧ <極論を言うと重要なのは概念であって言葉じゃない
        │     ( `Д) \_ なにを式と呼ぼうが文と呼ぼうが漏れの勝手
     | ̄ ̄ ̄|─□( ヽ┐U
      ̄◎ ̄   ◎−>┘◎
0961デフォルトの名無しさん05/01/19 12:04:02
>>946
デバッグできないプログラマに
そのまま当てはまるな
0962デフォルトの名無しさん05/01/19 14:03:39
主観で決め付けてるわけじゃなくて、言葉の定義は、仕様によって決められているわけだから、
作者(仕様策定者)の勝手というのは正しいのでは?
0963デフォルトの名無しさん05/01/19 14:21:33
常識とは思わないのか
096495505/01/19 14:41:15
ん?荒れてる?
俺の文章になにか不満あったのかな?
0965デフォルトの名無しさん05/01/19 15:22:55
>>962
そうだけど、
無意味に普通じゃない意味で使ってると誰もついてこず
ロンリーウルフになっちゃうぜという話。
0966デフォルトの名無しさん05/01/19 15:44:07
つまり、詭弁でもなんでもなく、正しいと。
096795505/01/19 16:28:31
どうやらどっちも落ち着いた?
0968デフォルトの名無しさん05/01/19 16:50:42
デタラメな>>955の内容ときたら…
        ↑
たしかにこんなのどうでもいい

('∀`)ニヤニヤ.. . .。oO(束縛?プッ
096995505/01/19 16:57:53
そう、ごめんね
0970デフォルトの名無しさん05/01/19 17:03:48
>>962が発明した世界で初めての概念に関しては、その字面も、その定義も
>>962の脳内仕様書によって決められるわけだが、「式」とか「文」とかはなぁ…。

まぁ、そういう「コンパイラ屋」さんは駅前で
詭弁でも売って(売値はついても買値はつかないだろうけど)、
一人でやっていくしかないだろうねぇ。。
0971デフォルトの名無しさん05/01/19 17:04:50
相変わらずの糞スレだな
0972デフォルトの名無しさん05/01/19 17:06:11
みんな!うんこトークしようぜ!!!!
0973デフォルトの名無しさん05/01/19 17:06:43
>>972
HSPスレへお帰りください。
0974デフォルトの名無しさん05/01/19 17:07:34
うんこー!
0975デフォルトの名無しさん05/01/19 17:09:40
>>971がむやみに頑張るスレだからな
0976デフォルトの名無しさん05/01/19 17:11:25
ひょっとして知能障害を起こすってやつですか >>972
0977デフォルトの名無しさん05/01/19 17:13:03
>>976のうんこー うんこー!!
0978デフォルトの名無しさん05/01/19 17:13:37
盛り上がってまいりましたw
0979デフォルトの名無しさん05/01/19 17:16:50
ここは馬鹿と池沼しかいないスレでつ。
0980デフォルトの名無しさん05/01/19 17:17:17
>>970
「式」とか「文」だって仕様策定者なら勝手に決められる。
0981デフォルトの名無しさん05/01/19 17:21:09
仕様で「式」の意味が決められているということは、その言語では「式」がそういう意味であるということだろう。
これが違うという方こそ詭弁だろ。
0982デフォルトの名無しさん05/01/19 17:21:17
詭弁ばかりのリア厨が粘着荒らしか。
死ねよ。
0983デフォルトの名無しさん05/01/19 17:22:07
解析フェーズで尻尾も足と決めてみた。
0984デフォルトの名無しさん05/01/19 17:22:58
詭弁ばかりのリア厨って>>946のことか?
0985デフォルトの名無しさん05/01/19 17:23:13
オチケツ馬鹿ども。
0986デフォルトの名無しさん05/01/19 17:23:33
このまえ>>982のうんこ食べたんです。
消化しきれなかったとうもろこしの粒があって、なんだかちょっぴり幸せでした…^^
0987デフォルトの名無しさん05/01/19 17:25:50
議論の内容が低レベル過ぎ…
0988デフォルトの名無しさん05/01/19 17:27:37
>>981がやねうらおなら笑える。
http://d.hatena.ne.jp/yaneurao/20050123
0989デフォルトの名無しさん05/01/19 17:29:49
>>946の予想通りになった
0990デフォルトの名無しさん05/01/19 17:30:42
どうせ荒らしてんのは馬鹿なC厨だろ。
なんせ式と文だけでこれだけ盛り上がれるんだからな。
0991デフォルトの名無しさん05/01/19 17:30:47
仕様で、文や式の定義が決まってるのはCだって一緒だろ。
それに文句言う奴は、言語の仕様でいろんな用語の意味が定められているのは
無効といってるのと一緒。
そういう仕様を持った言語なんて腐るほどあると思うが。
0992デフォルトの名無しさん05/01/19 17:32:04
989=946
0993デフォルトの名無しさん05/01/19 17:33:09
内容がデタラメでない、という前提でな。
0994デフォルトの名無しさん05/01/19 17:33:36
C厨は人類の敵。
0995デフォルトの名無しさん05/01/19 17:34:12
>>993
もちろんな。
ただし、値を返すものを「文」と定義しただけでは、デタラメには該当しない。
0996デフォルトの名無しさん05/01/19 17:35:12
C厨はうんこ!
0997デフォルトの名無しさん05/01/19 17:36:56
何がここまで>>940を固執させるのか?
以後は、心と身体・メンタルヘルス板でドゾ
0998デフォルトの名無しさん05/01/19 17:37:26
Rubyの文は値を持つ。
それは仕様で定められてるのだから仕方がない。
作者の勝手なんだよ。
デタラメをやらない限りな。
0999デフォルトの名無しさん05/01/19 17:37:26
1000ならC厨は死滅!
1000デフォルトの名無しさん05/01/19 17:38:20
ぱ
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。