「コンパイラ・スクリプトエンジン」相談室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デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
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デフォルトの名無しさん
NGNGUNIX板
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デフォルトの名無しさん
NGNGANTLR(非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デフォルトの名無しさん
NGNGGC 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デフォルトの名無しさん
NGNGkikyou.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負け組言語は不要w
0011M.B.
NGNG馬鹿め、Lisp と Forth はどこにでもいるのだぞ。
侮ってはイカン。
0012デフォルトの名無しさん
NGNGとかの理由でボーイング777の製造とかYahooStoreのシステムに
フレームワークとして利用されてるよね。。
LISPがコンパイルして実行できて、同じAI向けのPrologができへんのなんで?
(LISPはS式で、Prologの方は実行時に述語を受理したりすんのと関係ある?)
Prologもコンパイルできる…とか、法律家気取りの言語マニアな
意見は抜きにして簡単に教えて。
0013sage
NGNGhttp://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-13308-7
0014デフォルトの名無しさん
NGNG意味解析やコード生成以降はホント、チンプンカンプン。
CPUとかアセンブラとかの勉強、やっぱ必要か(笑)?
0015デフォルトの名無しさん
NGNGLispとPrologを同列視してる時点で何もわかっちゃいないのが丸わかりだが、ま、
WAMをキーワードにぐぐってみれ。
0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNG居るらしいからいいんでね?
でもLispとかSmalltalkの話を聞くとかなり初期段階で他の言語の処理系を作ってるね。
あれはなんでだ?(w
0018デフォルトの名無しさん
NGNGうほっ
0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNGJava で Lisp のインタプリタ書くのは簡単。
けどハマりそうでイヤ。
0021デフォルトの名無しさん
NGNG「JAVAでLISPを作るのはCなどで作るよりも3倍は楽でないかと思われます。」
とか言いながらJavaLispをつくるサイトがここにもあたよ。
http://www.cobalt.co.jp/writing/index.html
書かれてある理由のとおりJavaでのLispは卑怯なぐらい簡単。
0022デフォルトの名無しさん
NGNGいらないじゃんと思う。面白いのはそっから先だよな。
0023デフォルトの名無しさん
NGNGCみたいな言語の構文解析をやって、そっから先に進みがたかったら
Lispのコンパイルを理解すればいい。
後からその両者を真中でつなげれば楽ちん。
0024デフォルトの名無しさん
NGNGわかった。Lispのコンパイルを自作を目指して勉強する。
お勧めの情報源があれば教えてチン子。
0025デフォルトの名無しさん
NGNGttp://compilers.cs.uec.ac.jp/
0027デフォルトの名無しさん
NGNG羊頭狗肉になりそうな気もするが…
0028M.B.
NGNGいきなりコアな話だが、変数スコープの扱いにだけは気をつけれ。
「funarg問題」でググると出てくる。
0029デフォルトの名無しさん
NGNGLISPを勉強するメリットって何かありますか?
0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNGLSIPコンパイラについてはソースやら情報やらは見つけきらなかったですよ。
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デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
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.
NGNGLOGO と同じくらい簡単。本当に、小学生でも大丈夫。
いろんなオマジナイを書かなくても、
電卓なみに簡単に使える。こういう言語でメジャーな言語は
Lisp と FORTH くらい。
OR や AND が制御文っつーのも目からウロコ。
教育用には Pascal と Lisp と FORTH はかなり向いているので、
Java でインタプリタ書いておくといいかも。
ちなみに FORTH インタプリタは、正味一日あれば書ける。
0036デフォルトの名無しさん
NGNGlisp ていうか scheme のコンパイラネタはここから辿ってみるのはどうでしょ。
知ってたらごめんね。
ttp://library.readscheme.org/page8.html
0037デフォルトの名無しさん
NGNGint * 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.
NGNGJava の「中間コード+仮想マシン」方式が、
なんだかんだいっても一番実際的。
USCD の p-System とか、BCPL の IntCode とか。
とりあえずこの方式で動かしてみて、
「遅い」と思ったら javaCC なり BISON なりに
乗り換えるのが実際的。
何より移植が楽だしな。
0039デフォルトの名無しさん
NGNGFunc_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デフォルトの名無しさん
NGNGCでコールバック関数別途用意するとかがアホらしくなる
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デフォルトの名無しさん
NGNGswitch使うと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デフォルトの名無しさん
NGNGdirectの場合は↓
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なるほど、VM(CPU部分)を呼び出さずに、
命令コード毎、関数内でGotoを使って飛ばしていけばいいのですね
確かにこっちの方が速いですね。
0045デフォルトの名無しさん
NGNG彡´⌒ヽミ
(´・ω・`) 知らなかったでし。
(つ甘と) 親切にどうも。
`u―u´
0046デフォルトの名無しさん
NGNGギゴBASICみる限り、自分が考えた設計と同じですね
来週から1週間掛けて、スクリプトを作るつもりです。
0047デフォルトの名無しさん
NGNGこれ他の言語にも欲しいよね、インタプリタ作るにはもってこいの機能で、
アセンブラで書けば一発なのに、高級言語では全く書けない。
0048デフォルトの名無しさん
NGNGgccにテーブルジャンプ書く機能あるなんてしらんかった。
自分のVMを書き換えてみるよ、ありがとん。
0049M.B.
NGNG×USCD
○UCSD (カリフォルニア州立大学サンディエゴ校)
BCPL については
リチャーズ&スティーヴンズ
『BCPL 言語とそのコンパイラ』共立出版
0050デフォルトの名無しさん
NGNG0051M.B.
NGNGVCでできるかどうかはワカランけど、
BASIC では定跡とのこと。
0052デフォルトの名無しさん
NGNG0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNGライセンスとか面倒なのは避けたいので
DLL形式で使えるとうれしい。
0056デフォルトの名無しさん
NGNGライブラリでもライセンスは関係する罠w
0057デフォルトの名無しさん
NGNG0059M.B.
NGNGatom や car や cdr は List クラスのメソッドにするとして、
read/write や eval って何のメソッドにするんだ?
入出力ストリームを extend して List を扱えるようにするのか?
ListProcceser とかいうクラスを定義して eval メソッドを実装するのか?
なんやらオブジェクト同士のつかみ合いみたいになって、
設計が綺麗くなんないんだが。
0060デフォルトの名無しさん
NGNGLispとしての関数と、それを実装するJavaでの話は全く関係ないよ。
簡単なLisp処理系のソースを読んでみることを勧める。
そうすればシンボルテーブルの概念も掴めるだろう。
006160
NGNGclass 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);
}
}
006260
NGNGLispObject 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);
}
006360
NGNGその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(略); }
}
}
006460
NGNG直すのマンドクセ。
0065デフォルトの名無しさん
NGNG006660
NGNG0067デフォルトの名無しさん
NGNGあそこのコードは素のSchemeでなくOOPLだったらもっと簡潔に書ける.
0068デフォルトの名無しさん
NGNG関係ないが、この言葉を見るとprologスレの論争を思い出す。
結局誰が正しかったのかな。
0069デフォルトの名無しさん
NGNG論争って何?
0070デフォルトの名無しさん
NGNGそのまま生々しく残ってて痛々しいよね。
0071デフォルトの名無しさん
NGNG実用的なプログラムを書いていない証拠だなw
0072デフォルトの名無しさん
NGNG煽りならよそへ池
0073M.B.
NGNG甘かった _| ̄|○
0074デフォルトの名無しさん
NGNGhttp://www.laplata.ne.jp/javalisp/
でも読んで、雰囲気つかんだ後、
来週の週末あたりに携帯Lispでも開発したら・・?
0075M.B.
NGNG結局 eq と equal の区別ができなくなって詰まってる。
現在、
中西正和『Lisp入門 システムとプログラミング』近代科学社
黒川利明『LISP入門』培風館
竹内郁雄『初めての人のためのLISP』サイエンス社
を読みながら悪戦苦闘中。
0076M.B.
NGNG> まぁ、プロログ、リスプと言ってる時点で
> 実用的なプログラムを書いていない証拠だなw
まぁ、tsv や XML で間に合う仕事をしてる香具師には
無縁な話なのだがね。それが悪い訳ではまったくないが。
0077デフォルトの名無しさん
NGNG完成したらサイトも作ってアップして下さい。
0078デフォルトの名無しさん
NGNGまあ本人の自由だろうけど、そういうレベルの人が言語処理系について
知ったような口をきくのはどうかと思う(>>35とかね)。
0079デフォルトの名無しさん
NGNG象牙の塔の中で言語論争してるわけじゃないからイイでし。
ここは78さんのために用意された花園でも、まして法廷でもないし。
そういうことをPrologスレを眺めてオモタ。
0080デフォルトの名無しさん
NGNGお前何様だよ(^^;
0081M.B.
NGNG前回 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別にいいじゃん、興味ないから読んでないけど(汗
まあ内容はここに一応ふさわしい。
極めてスレ違いな言語論争で埋め尽くされるよりマシ。
0085デフォルトの名無しさん
NGNG0086デフォルトの名無しさん
NGNG0087M.B.
NGNG> つーかRATFOR出てくるなんていつの時代の人間だよ
知ってんじゃねーか。
0088デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
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デフォルトの名無しさん
NGNG0092デフォルトの名無しさん
NGNGつまり、概念なりを学には大変よい言語だが、
実用的な価値は、ほぼゼロに近いw
0093デフォルトの名無しさん
NGNG言語論争は死滅スレでやると喜ばれます、死ね
0094デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
NGNG>>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「親分! てぇへんだ!」
「おいおい、どうしたんだ八」
「まぁまぁ八兵衛さん、朝御飯はお済みになったの?」
「すんませんお内儀さん、ってそれどころじゃ無ぇんで。
大川にお六字が……」
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNG0105デフォルトの名無しさん
NGNG新しいマシンを開発するときは
その上に Lisp を実装すると非常に楽だと
bit の連載(TAO かなんかの開発の話)に書いてたな。
0106デフォルトの名無しさん
NGNG怠け者の>>101がまた荒らしで知識を得ようと熱くなる。
結局スレに迷惑かかる。多様な話題のほうが楽しいし。
0107デフォルトの名無しさん
NGNGこれ以上LISPerを呼ぶなよ
0108デフォルトの名無しさん
NGNG0109デフォルトの名無しさん
NGNG0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNGこのスレは実装技術のスレだ、個々の言語の良し悪しや独善的思想はフレームの元、
>>104
そういう奴にレスを付けると百害あって一利ないから一切書くな。
どうしてもレスを付けたければ死滅スレを立ててそこでやれ
0112デフォルトの名無しさん
NGNGキーワードのスペル間違えてデバッグに半日。
型なし言語も意外に不便。
評価しそこなってデバッグに半日。
PerlとPHPのソースコードレベルの検証ツールをキボンヌ
0113デフォルトの名無しさん
NGNGLISPが気になるくせに「コンパイラ・スクリプトエンジン」の相談ができないのが頑張ると
言語論争の話題しか提供できなくてフレームの種を蒔くことになる。
0114デフォルトの名無しさん
NGNG個人のレベルにイチャモンつけるようなのは良くないよ
最初はみんな初心者
0115デフォルトの名無しさん
NGNG↑わざわざこのスレにきて学ぶ姿を見せつける美しい初心者の例
0116デフォルトの名無しさん
NGNG死ねば〜
0117デフォルトの名無しさん
NGNG(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インタープリタ系言語はインタラクティブな環境があると開発しやすい。
自分で作った言語処理系もってるけど、そういう環境ができるまでは至極面倒だった(某ゲームの移植性をあげるために中間コード使っただけなのであんまり良いものじゃないけど)
perlはデバッグモードがあるが、phpはお手軽な環境が無いから面倒になったんだろう。
だいたい連想配列のキー間違いなんざインスペクタ使えば一発で解りそうなもんだよ。
0119デフォルトの名無しさん
NGNGいや、漏れはPerlからJavaに乗り換えたのでモウマンタイなのだが、
「CGIはPerlかPHP」って頭っから信じてる香具師がいて
そいつが管理してるプロジェクトからブツが上がってこないんで
迷惑してるんだが、下っ端のプログラマーに聞いてみると、
どうやらソースが荒れてて手がつけらんなくなってるらしいのだ。
かといって開発ツールを導入するのにも消極的なのだ。
だから、なんかしらソースコードレベルで適用できるツールはないもんかと。
0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNG0122デフォルトの名無しさん
NGNG0123デフォルトの名無しさん
NGNG0124デフォルトの名無しさん
NGNG0125デフォルトの名無しさん
NGNG0126デフォルトの名無しさん
NGNG0127デフォルトの名無しさん
NGNGソース読んでないけどLALR(1)じゃなかったっけ?
0128デフォルトの名無しさん
NGNG0129デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/unix/1091212668/
(戻ってこない方向で)
0130デフォルトの名無しさん
NGNG逆にLISPだからこそここまで生き残ったとも言える。
S式嫌いならフロントエンド作ればいいだけの話な気がするけど、
>>129のスレはそういうことじゃないみたいだな。
emacsとviがUNIXのイメージを悪くしたのは確かな様だ。
0131M.B.
NGNG> emacsとviがUNIXのイメージを悪くしたのは確かな様だ。
現在でも UNIX 上で動くエディタの標準は emacs 互換の Mule。
「テトリス」と並ぶ有名なゲーム「rogue」の操作は vi 互換。
それを言うなら「emacs派とvi派の対立が」だろうと思うが、
実際には棲み分けができていたように思われ。
0132デフォルトの名無しさん
NGNG>●スモールコンパイラの制作で学ぶプログラムのしくみ
>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つーか言語処理系の開発って、
(゚∀゚)イイ!
0136デフォルトの名無しさん
NGNGttp://www.pureadult.co.jp/whtml/ishidaaya.html
0137デフォルトの名無しさん
NGNGLALRやらLLやらを使うコンパイラが多いのですか?
0138デフォルトの名無しさん
NGNG何その痛いサンプルコード
0139ほんたま
NGNGおみゃ〜らよ、HSPのヘルプに目を通したが、命令語の一覧眺めたが、メニューつくる命令はないっぽかったが、どうか?
おみゃ〜らよ、Windowsソフトってメニューはつきものだろう?
そのWindowsソフトをつくるHSPにメニューをつける命令がないのはどういうこっちゃ?
おみゃ〜らよ、しゃくせんのあるけん、どうじ?
0140デフォルトの名無しさん
NGNG誤爆??
0141デフォルトの名無しさん
NGNG何かが間違っている気がする
0142デフォルトの名無しさん
NGNG0143デフォルトの名無しさん
NGNG再起下降では解析できない文法があるから。自分でLALRとか書いてるじゃん。
0144デフォルトの名無しさん
NGNGLL の文法を解析するパーサが再帰下降型パーサだが……
上昇型パーサを使うのは LL よりも広い範囲の文法を効率よく扱えるから。
LL だと、たとえば四則演算を次のように書くと左再帰を含むためアウト。
E -> E '+' T
T -> T '*' F
F -> '(' E ')'
ちょっと頑張れば LL に書き直せるけど、よけいな非終端記号が増えて
面倒な上、文法が直感的でなくなる。そんな機械的な作業はプログラムに
任せたいっしょ?
0145デフォルトの名無しさん
NGNG目次を見たときは結構いい構成になってると思ったけど,
ソースコードはかなり苦しいな
本の限られたスペースに載せるにはああしなきゃ
いけないとか決まりでもあるんだろうか?
0146デフォルトの名無しさん
NGNG再帰下降型というのは、LLじゃなくてrecursive decentの事です。
LLは下降型ですが再帰下降とは別物じゃないですか?
0147デフォルトの名無しさん
NGNGだから難しい上昇型使うのですね。
0148デフォルトの名無しさん
NGNG0149デフォルトの名無しさん
NGNGなんか問題有るんですか?
0150デフォルトの名無しさん
NGNG0151デフォルトの名無しさん
NGNG一度コンパイラの本でも読め
0152デフォルトの名無しさん
NGNGRecursive 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デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNG>そちら様の完成コードでも拝見さしてもらいましょうかな?
>そちら様の完成コードでも拝見さしてもらいましょうかな?
0156デフォルトの名無しさん
NGNGpやらGやらVやら何って感じだが、
それよりなにより是非って( ゚д゚)ポカーン
基本的な日本語が使えてない。
コード以前に中学の国語あたりをやり直せ。
0157デフォルトの名無しさん
NGNGLL(k)構文解析で解析できる文法をLL(k)文法っていうんじゃないの?
0158デフォルトの名無しさん
NGNG監:中田育男
法政の学生?
本人が見ることもあるかもしれないから書くけど、
体を表す名前を付けることを身につけてほしい。
CellG=lexer
CellK=parser
CellV=仮想マシン
らしいけど、もしそうなら、
Lexer, Parser, VirtualMachine といった名前を付けるべき。
記号表のエントリにはTableEntryといった名前をつけるべきで、
Tableという名前を付けてはいけない。
読んで分かりやすいプログラムを書くのは
ある程度プログラムを読んだり書いたりの
経験がないと難しいだろうけど、ガンガレ。
あと、配列じゃなくてListを使うとか、
文字リテラルはinternしなくていいとか
もうちょっとJavaを勉強しよう。
0159デフォルトの名無しさん
NGNG中田育男はこれ書いた日本のコンパイラ最適化の第一人者ですな
0160158
NGNG0161デフォルトの名無しさん
NGNGK…Koubunkaiseki
V…VM
これくらい想像できないようでは現場のコードは読めないぞ
0162デフォルトの名無しさん
NGNG考え方のレイヤが違いますよね?
やはりコンパイラを作成する場合、ターゲットとなるアーキテクチャに対しても
詳しくないと本当の意味での最適化コードは作成できない??
0163デフォルトの名無しさん
NGNGマジですか?!
0164デフォルトの名無しさん
NGNGだいたい同じPentiumでも種類ごとに適した最適化手法が違うし
0165デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNG???
0167デフォルトの名無しさん
NGNG君は>>162を100回読み直したまえ。
0168デフォルトの名無しさん
NGNGそういう小姑みたいな性格は何処に行っても嫌われますよ〜
0169デフォルトの名無しさん
NGNGKokkurochi
Varusan
0170デフォルトの名無しさん
NGNG嫌ってくれて構わんよ
0171折れ目も
NGNGhttp://www.kt.rim.or.jp/~tyamamot/forthj/threaded-codej.html
マイクロベンチ.興味深い.
http://www.complang.tuwien.ac.at/forth/threading/
Pentiumならsubroutineが速い
0172デフォルトの名無しさん
NGNGそりゃそうだろ(w
0173デフォルトの名無しさん
NGNGレビュアー: カスタマー 帯広市 Japan
JavaのVM向けのコードを生成する簡単なコンパイラが乗っているというので買いました。
非常に参考になると思います。
ただ、よけいなことかも知れませんが、この本の構文解析の部分は、中田育男著の「コンパイラ」の本と、
例題や説明までほとんど同じなので驚きました。
著作権の方は大丈夫なのでしょうか。
0174デフォルトの名無しさん
NGNG0175デフォルトの名無しさん
NGNG0176デフォルトの名無しさん
NGNGそれどころか前書き見たいのも中田先生が書いてた
0177デフォルトの名無しさん
NGNG0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNGするどいな
0180デフォルトの名無しさん
NGNG0181デフォルトの名無しさん
NGNGドラゴンブックにある「基本ブロック」
っていう考え方って、何かセンス悪い気がしない?
基本ブロックだろうが、大域的構造だろうが
同じ「グラフ」なんだから、それらを区別せず
統一的に扱って最適化を施すのが、
筋の通った考え方だと思うんだけど。
ま、確かに「基本ブロック」内だけで考えれば
殆どの問題は簡単になるのは分かるけどさ。
現実のコンパイラでも「基本ブロック」って
いう戦略は、よく使われているんだろうか?
0182デフォルトの名無しさん
NGNG0183デフォルトの名無しさん
NGNG0184デフォルトの名無しさん
NGNG0185
NGNGあっという間に品切れになってる。
0186デフォルトの名無しさん
NGNG基本ブロックが何かわかってないだろ。
基本ブロック自体はグラフそのものじゃなくて、
グラフの節点だぞ。
0187デフォルトの名無しさん
NGNGコンパイラ書いてみろ。どんなに頑張っても、基本ブロックの概念を使わないコンパイラは、
仮に>>181が天才で、同じ質のコード生成を達成したとしてもコンパイル速度は100倍
遅くなる。更に言えば、基本ブロックの性質を完全に無視するとするなら、同じ質の
コードは生成できない。
最適化ってのはいわゆる難しい問題なので、現在の計算機では残念ながら純粋な
数学のようには取り扱えない。
ついでに言うと、一般のプログラムってのは再帰的な構造を持っていることを考えると、
基本ブロックという概念はむしろセンスが良い。
0188デフォルトの名無しさん
NGNG基本ブロックの中の人とはリストであり、
すなわち縮退したグラフだと思うけど?
>>187
>同じ質のコード生成を達成したとしてもコンパイル速度は100倍遅くなる。
多分そうだろうと思う。
でも、その手法の「泥臭さ」自体は認るでしょ?
後はそれを「よいセンス」と捕らえるかどうかの差だね。
0189デフォルトの名無しさん
NGNG認るでしょ
認るでしょ
0190デフォルトの名無しさん
NGNG> 基本ブロックの中の人とはリストであり、
> すなわち縮退したグラフだと思うけど?
細かく分けすぎ。そこまで分けて最適化に役に立つのか?
何のためのグラフか考えてみろって。
語義的には確かに正しいんだが、その反論はちょっと苦しいと思うぞ。
自分も基本ブロックはセンスが良いと思うほうに一票。
0191デフォルトの名無しさん
NGNG言語処理系を開発するとしたら、みなさんなら
どういう実装戦略をとりますか?
0192デフォルトの名無しさん
NGNG0193デフォルトの名無しさん
NGNG開発を始めようとしているのか、まずそれから語るんだ。
0194デフォルトの名無しさん
NGNGリフレクションで丸ごと生成できないかなと・・・
思っただけ(汗
問題はBNFを何処に書く、というところ?
boostみたいに言語中言語にできれば、シームレスで最高なんですが、
C#のジェネリッククスは果たしてどこまでできるのか?
てところ。
VisualStudio.NET2005でたら、ちょっとアタックしてみよかと思ってます。
0195デフォルトの名無しさん
NGNG0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNG「手段」を作る方法を語るのが目的のスレで何を言う
0198デフォルトの名無しさん
NGNG0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNG使いこなしてないのまる分かりだぁ。。 (o´C_,`o) ハズカスィ〜
それっぽい用語並べていけば、自発的に連結して
素敵な何かが自然発生する・・・とか、連結方法が思いつかないから
みなさんに『実装戦略』の糸口を聞きにきた、とかか…。 ハ・ス・゙カ・スィ〜
0202デフォルトの名無しさん
NGNG0203デフォルトの名無しさん
NGNG0204デフォルトの名無しさん
NGNG作りたいからやってんだろいいじゃネェか
使いこなしているかどうかは関係ないってしてほしいね
0205デフォルトの名無しさん
NGNG頭に浮かんだ抽象像を前に悩む前衛彫刻家みたい
0206デフォルトの名無しさん
NGNG>>196みたいなこと言われるっち。
0207デフォルトの名無しさん
NGNG意味不明の煽りヤメレ、フレーム引き起こしたいなら適当な死滅スレにでも逝け
0208デフォルトの名無しさん
NGNG余計な一言
0209デフォルトの名無しさん
NGNG/\___/ヽ
/ :::::::\
| '''''' '''''' .:::| / ̄ ̄ ̄ ̄ ̄ ̄ ̄
|(●), 、(●)、.::::| < 糞スレで余計なこと
| ,,ノ(、_, )ヽ、,, .:::::::| | 二度と聞かねぇょ・・・
\ `-=ニ=- ' .:::::/ \_______
`ー`ニニ´-一´ヽ、
/ _ l
/  ̄`Y´ ヾ;/ |
______,| | |´ ハ
| | |-‐'i′l
|__ | _| 7'′
( (  ̄ノ `ー-'′\
 ̄  ̄ \
0210デフォルトの名無しさん
NGNG0211デフォルトの名無しさん
NGNG/\___/ヽ
/ :::::::\
| '''''' '''''' .:::|
|(●), 、(●)、.::::| .。oO( プッ
| ,,ノ(、_, )ヽ、,, .:::::::|
\ `-=ニ=- ' .:::::/
`ー`ニニ´-一´ヽ、
/ _ l
/  ̄`Y´ ヾ;/ |
______,| | |´ ハ
| | |-‐'i′l
|__ | _| 7'′
( (  ̄ノ `ー-'′\
 ̄  ̄ \
0212デフォルトの名無しさん
NGNGあそこまですんならperlとか駆使すればいいじゃんねえ
0213デフォルトの名無しさん
NGNG一度使ってみたら?
別ファイルとして扱っていた文法定義ファイルが、
ライブラリーになるという意味がどれだけ重要かわかるよ。
0214デフォルトの名無しさん
NGNGC++の機能だけで実装した方がネイティブな感じがして(・∀・)イイ!!
0215デフォルトの名無しさん
NGNG0216デフォルトの名無しさん
NGNGこのスレ的にはいまいちだろ。やはりLisp >>> Ruby、とか言ってみる。
Lispのほかにも構文木をファーストクラスオブジェクトとして扱える言語は
あるのかな?
0217デフォルトの名無しさん
NGNG0218デフォルトの名無しさん
NGNG/\___/ヽ
/ :::::::\
| '''''' '''''' .:::|
|(●), 、(●)、.::::|
| ,,ノ(、_, )ヽ、,, .:::::::|
\ `-=ニ=- ' .:::::/
`ー`ニニ´-一´ヽ、
/ _ l
/  ̄`Y´ ヾ;/ |
______,| | |´ ハ
| | |-‐'i′l .。oO( プッ
|__ | _| 7'′
( (  ̄ノ `ー-'′\
 ̄  ̄ \
0219デフォルトの名無しさん
NGNG誤解があるようです。
Ruby のイテレータメソッドはそんな単純なものじゃないです。
0220デフォルトの名無しさん
NGNGじゃあどんなもんなの?
0221デフォルトの名無しさん
NGNG0222デフォルトの名無しさん
NGNGPythonの構文木ってLisp使いが考えるようなものじゃないようだから
あてはまらないと思う。
ttp://www.unixuser.org/~euske/doc/python/python-lisp-j.html
の「Lisp プログラマが Python を学ぶときの要点」の12番参照。
0223デフォルトの名無しさん
NGNGこれこそ本物の知ったかって奴
0224デフォルトの名無しさん
NGNGオレも221と同じ疑問をもってるのでよろしければどういうことか
教えてください。
0225デフォルトの名無しさん
NGNG死ね
0226デフォルトの名無しさん
NGNGRubyの評判を落としたいのか?
それともスレの趣旨が理解できない池沼か?
0227デフォルトの名無しさん
NGNGこれは221に語りかけたものです、ちょっと足らなかったですね
でも、なんでも煽りに見えるのは良くないです。
#つか、そんなスレになっている元凶は死ね、
#いくら煽ったってお前の実力は向上しないし、稚拙でもタコでもやる奴の実力のみが向上するんだよ。
#おまえの行き着く先は何もできない才能も人望も無いロートル爺だ。
0228デフォルトの名無しさん
NGNG/::::::: \ /\___/ヽ
.|:::. '''''' '''''' | / ̄ / :::::::\
|::::.,(一), 、(一)| < >>227 | '''''' '''''' .:::|
.|::::::: ノ ,,ノ(、_, )ヽ、,, | \_ |(●), 、(●)、.::::| .。oO( 心の敵とアツク戦い始めた・・・
\:::::.ヽ`-=ニ=- ' / | ,,ノ(、_, )ヽ、,, .:::::::| ソッ、としておくべし
/ `一`ニニ´-,ー´ \ `-=ニ=- ' .:::::/
/ | | / | `ー`ニニ´-一´ヽ、
/ | | / | | / _ l
/ l | / | | /  ̄`Y´ ヾ;/ |
__/ | ⊥_ーー | ⊥_ _____________,| | |´ ハ
| `ーヽl_l_l.} ヽl_l_l.} | | |-‐'i′l
(、`ーー、ィ } ̄` ノ |__ | _| 7'′
`ー、、___/`"''−‐" ( (  ̄ノ `ー-'′\
, ̄  ̄ \
0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNG0231191
NGNGえ〜とですね。
JavaでLispという企画を読んで、そんなら俺はC#で
Lispみたいに考えただけなんですけど・・・
ガーベジコレクションはC#任せにできるけど
字句解析構文解析で既存の生成系を生かせないかなと
思っただけなんですね、はい
S式ならそんなの必要ないとかそういう突っ込みはなしで
お願いします・・・
0232デフォルトの名無しさん
NGNG0233デフォルトの名無しさん
NGNG0234デフォルトの名無しさん
NGNG0235デフォルトの名無しさん
NGNGC言語のソースから写しましたって感じだなあ。
0236デフォルトの名無しさん
NGNG0237デフォルトの名無しさん
NGNG0238デフォルトの名無しさん
NGNGボケの方向があさって過ぎ。
0239デフォルトの名無しさん
NGNGhttp://www.amazon.com/exec/obidos/tg/detail/-/0321131436/
いつでるの?来年の11月かよ・・・
0241デフォルトの名無しさん
NGNG大学院の実習で作ったプログラムみたいだね。
java.util を使ってないところがすごい。
0242デフォルトの名無しさん
NGNG今ごろこのスレみて、あ〜や、印税の計算でニタニタしてるよ・・
↓
曰 ,,-─-、
| | [lllllllllll] 卒研の成果物ためしに活字にしたら
ノ__丶 |||`_ゝ´|||_ 株を買うより楽に儲けれた
||日|| 丿 ( .| ¢、
_ ||本|||/丿 .  ̄丶.)
\ ||酒||L二⊃ . ̄ ̄\
||\`~~´ (<二:彡) \
||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
. || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
0243デフォルトの名無しさん
NGNG. 曰
| | ,,-─-、
ノ__丶 [lllllllllll] ./ ̄いくら煽ったってお前の実力は向上しないし、
||中|| |||`_ゝ´|||_ < 稚拙でもタコでもやる奴の実力のみが向上するんだよ。
||田|| 丿 ( .| ¢、 .\_ おまえの行き着く先は何もできない才能も人望も無いロートル爺だ。
_ ||育|||/丿 .  ̄丶.)
\ ||男||L二⊃ . ̄ ̄\
||\`~~´ (<二:彡) ←「コンパイラ・スクリプトエンジン」相談室住民
||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
. || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
0244デフォルトの名無しさん
NGNGインポートはjava.ioだけだったような・・・。
0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNGλ...... λ......
λ...... λ......
λ...... λ......
λ...... λ......
λ......
λ...... λ...... λ......
0247デフォルトの名無しさん
NGNGこの手の技術書は初刷 2000 冊くらいだぞ。
2000円 * 5% * 2000 = 20万円
バイト代程度じゃん。
0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNG0250デフォルトの名無しさん
NGNG田舎では売れ残っているが。
0251デフォルトの名無しさん
NGNG本文はどう?>買った人
0252デフォルトの名無しさん
NGNG0253デフォルトの名無しさん
NGNG0254デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNG0256デフォルトの名無しさん
NGNG中田先生の本とかを読む人には向かないんじゃないかな(最適化技法の本でこれだったら随喜の涙だけど)
0257デフォルトの名無しさん
NGNGすまん、分かるように書いてくれ。
0258デフォルトの名無しさん
NGNG0259デフォルトの名無しさん
NGNG綾本は言語処理に興味がでたごくごく一般的な人向けに書かれている。
中田先生の書籍は専門書なので、これらを読む人には退屈だろう、ただしこういう感じで一般向けに最適化技法を説明してくれれば楽しい思いができると思う。
これならわかってもらえますか?
0260デフォルトの名無しさん
NGNG>>256 = 専門書
0261デフォルトの名無しさん
NGNGParser GeneratorはJavaCCやANTLRなどいくつかあるけど、Bytecode Generator作成を支援してくれるツールはありますか。
ぶっちゃけ、既存のJavaコンパイラと同じASTを作成すれば、Bytecode生成はそのコンパイラのバックエンドに任せることが
できるんではないかと考えてはいるんですが。
0262デフォルトの名無しさん
NGNG2chで聞く前に自分で調べる行動力が無いと無理
0263デフォルトの名無しさん
NGNG0264M.B.
NGNGswap と loop〜until〜do〜repeat 構文を実現できるんなら、
Java 拡張言語のコンパイラは作ってもいいかなと思っている。
JavaCC を使えば Java のライブラリはそのまんま利用できるしな。
0265261
NGNGいや、ググってもバックエンド部分がわからなかったから聞いているんだが。
パーサジェネレータはたくさん見つかったんだが、バックエンドは見つからないぞ。
>>264
swapやloopではないんだが、独自に文法を拡張したコンパイラを作ってみたいと思って。
0266デフォルトの名無しさん
NGNGソース公開されてるやついじればいいじゃん。
何でメタツールの話から入るかねぇ。
0267デフォルトの名無しさん
NGNG分かりました。
どうもです。
0268デフォルトの名無しさん
NGNG実際にプロのプログラマーだと、PC関係のソフトで難しいプログラムは
なんでしょうか
規模にもよるかもしれないけど、OSが一番難しそうで、その次にデータ
ベースなどがありそうですが、難しいソフトってどんなものがありますか?
コンパイラ・スクリプトはそのなかでどれくらいの難易度なのか
もうしわけありませんが宜しくお願いします。
0269デフォルトの名無しさん
NGNG違いますが?
↓
違いますか?
でOK?何いきなり煽ってるんだと思ったんだけど。
0270デフォルトの名無しさん
NGNGすいません。”違いますか?”です。
単純にコンパイラやスクリプトを作れるプログラマはプログラマの
レベルではどれくらいか?
プロになったことないし、周りにプログラマーがいないので解らないので
もしよければおしえてくださいませんか?
それかスクリプト以外のアプリケーションでもっと難しいものって
なんでしょうか?
OSやデータベースなどが規模にもよるけど難しいそうと思うのですが?
0271デフォルトの名無しさん
NGNGピンキリ。
スクリプトもOSも、簡単な物は比較的簡単に作れるけど、
ちゃんとしたものを作るのは難しい。
0272デフォルトの名無しさん
NGNG期待してる答えとは違うと思うけど、
とりあえず将棋や囲碁でプロに勝つのが難しい。
0273デフォルトの名無しさん
NGNG0274デフォルトの名無しさん
NGNG0275デフォルトの名無しさん
NGNG0276デフォルトの名無しさん
NGNGドラゴンブックは原理・技法・ツールの紹介だと思うのですが、
対象読者はやっぱり育男本がエキスパート、
ドラゴンブックは学部生あたりと考えてよろしいでしょうか?
0277デフォルトの名無しさん
NGNGどっちも教科書だよ。
ドラゴンブック読んで、それから育男本って感じか。
強いていうなら、学部生向けと修士学生向けってくらいの違い。
いずれにせよ、どちらもコンパイラの専門家が改めて読むレベル
の本じゃない。
0278デフォルトの名無しさん
NGNG0279デフォルトの名無しさん
NGNGhttp://www.esbooks.co.jp/books/detail?accd=09093768
「勉強し終わると、滅多に開くことはありませんが :−) 」
0280デフォルトの名無しさん
NGNGたぶん・・学会集とか論文じゃない??
プロのコンパイラ屋としてどのくらいが飯食っていけてるのかしらんけんど・・
IBM東京基礎研究所のひととか想像すればいいのか?
0281デフォルトの名無しさん
NGNG0282デフォルトの名無しさん
NGNG優しい気持ちになれました
0283デフォルトの名無しさん
NGNG合わないかというものでしょうか?
CPU毎の最適化とは別に他は思い浮かばないのですが
0284デフォルトの名無しさん
NGNG0285デフォルトの名無しさん
NGNG文献はPLDI、POPL、TOPLAS、CCあたりが定番でしょうか。
他のコンパイラ屋の方々はどの辺をチェックしてます?
0286デフォルトの名無しさん
NGNG不変式のループ外移動とか、ループアンロールとか、グラフの状態を探索しないといけない最適化はいくらでもある。
0287デフォルトの名無しさん
NGNG0288デフォルトの名無しさん
NGNGちょっと痛めのドキュもあり・・。下の方。
http://www.tom.sfc.keio.ac.jp/~psnow/
0289デフォルトの名無しさん
NGNG自分の頭では無理っぽい
3番地コードからやってみるか・・
0290デフォルトの名無しさん
NGNG完成してたんだ.
0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNG3番地コードってのが三つ組みの事なら、グラフの方が楽ですよ、何でもかんでもつっこんじゃうから頭がこんがらがるのも解るけど。
0293デフォルトの名無しさん
NGNG慶応の卒研でもこんなものか。
ちょっと勇気づけられた。
しかし慶応大生でもこんなのか。
もうどうしていいやら……
0294デフォルトの名無しさん
NGNGそでもないよ、もっと簡単に済ましてる。
開発時間との戦いは別にどの業種と限ったものじゃないです。
0295デフォルトの名無しさん
NGNG漏れは高卒なのでアカデミックな世界のことはなーんも
分からんのですが、カンファレンスみたいなものから
著名人の名前と研究テーマを探して、名前でぐぐって、
研究者のHPを見つけ、論文一覧から欲しいものを探す、
そういう感じですか?
0296デフォルトの名無しさん
NGNG情報学会誌とかACMとか購読してる方が多いと思う。
Webで検索するよりノイズ少ないし。
0297デフォルトの名無しさん
NGNG日本情報処理学会って ACM と比べてどう?
入会する価値ある?
0298デフォルトの名無しさん
NGNGACM と IEEE だけで十分だと思うよ。
0299デフォルトの名無しさん
NGNGでも日本で何が起きているのか知る一端にはなる。
それと辞書無しでも読めるんで休憩時間には向いてる。
0300デフォルトの名無しさん
NGNG世界的にはトレンドから外れちゃったけど、なぜか日本では
続いているってなネタもあるしね。暇つぶしにはなるわな。
0301デフォルトの名無しさん
NGNG顔見知り同士のしょぼいミニコミ誌
0302デフォルトの名無しさん
NGNG0303デフォルトの名無しさん
NGNG0304デフォルトの名無しさん
NGNG0305デフォルトの名無しさん
NGNG必ずしも「しょぼい」わけではないんでない?
0306デフォルトの名無しさん
NGNGLIS(ry
0307デフォルトの名無しさん
NGNG>実際にプロのプログラマーだと、PC関係のソフトで難しいプログラムは
>なんでしょうか
Mathematicaみたいなソフトも作るのむずかしそう。
0308デフォルトの名無しさん
NGNGIE も大変だと思うよ。不正な HTML でもそれなりに表示する必要があるし、
HMTL, CSS, XML あたりは規格もそれなりにデカイ上に、画像の遅延表示や
ユーザが任意のタイミングでリロード、戻る、進むなんかを実行できることが
大前提になってる。
部分的な実装に関わるだけならともかく、全体の設計からって話だと
Office なんかも大変だろう。
0309デフォルトの名無しさん
NGNG不正のタグの事。
結構打ち込みタグでエラー起こしてるけど、エラー処理してるとは
思えないな。
それから、リロードとかのタイミングとかも、単純にタスク処理すれば
良さそうなので、問題ないかと
理屈的にIEを作るのは難しくなくても、使えるものを実際に作ると
なると、設計段階でくじけそうだけど。
単純にIEみたいなもののスクリプト系の表示プログラムは
簡単そうだし。
0310デフォルトの名無しさん
NGNG0311デフォルトの名無しさん
NGNGhttp://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デフォルトの名無しさん
NGNG0313デフォルトの名無しさん
NGNG> 結構打ち込みタグでエラー起こしてるけど、エラー処理してるとは
> 思えないな。
Amaya とか使うと、IE がいかに適当(良い意味で)に処理してるか良く分かるぞ。
0314デフォルトの名無しさん
NGNG0315デフォルトの名無しさん
NGNG0316デフォルトの名無しさん
NGNG0317368
NGNGXMLのいろいろな規格を解釈するリーダーを作成しようと思ったら、
どのような手順を踏めばいいのですか?頭がよろしくなく理解力がないですが
よろしくお願いします。
0318デフォルトの名無しさん
NGNG0319デフォルトの名無しさん
NGNG0320デフォルトの名無しさん
NGNGtypedef staruct tagXML{
〜
struct tagMML *prev;
struct tagMML *next;
struct tagMML *yoko;
char *namel;
char *data;
}
とかやって、階層的なものを作ってデータの意味を付けていく
ようにしたらいいかも???
この階層を作った後に、全体的な階層を作った後にキャンパスというのに
まず、仮想的に描写情報を作った後に、実際に描写するだけぁない。
仮想的な描写情報を作ってどういった画面になるかを一度シミュレート
するのがちょっとメンドイけど、それさえ出来ればすぐに出来るよ。
0321デフォルトの名無しさん
NGNGBODY−
|
+---tabel
|
+---tabel
| |
| +--- tabel
+---IMAGE
|
/BODY
という階層を作ったを作った後に、フォントとかtableや画像を情報を
元に、仮想で描写するイメージを作って、どれくらいのクライアントに
どのような配置をするか決めて、下(バッググランドから、上に書き込むだけ
IEの場合、タスクを使ってるみたいでデータが来た順に描写するので
バッググランドの画像データが先に受信されてない場合、一度、上に
タグの描写した後に、もう一度下を描写して再描写してるみたい。
全体的な階層を作って→その階層のデータと元に仮想描写(データで)→
した後に、実際に描写するだけ・・・
タグ毎の描写の仕方を決めて、それを配置するプログラムさえ
出来れば殆どできるから。理屈では難しくないがあんだけのタグを
実際に作るとなるとメンドイな・・・
tableとイメージとpreを使った簡単なブラウザを今度作ってみるつもり
だけど・・・。
0322デフォルトの名無しさん
NGNG誰か翻訳してくれ
0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNG0325デフォルトの名無しさん
NGNG酔っ払いか?
0326デフォルトの名無しさん
NGNG0327デフォルトの名無しさん
NGNGつか、そんなスレになっている元凶は死ね、
いくら煽ったってお前の実力は向上しないし、稚拙でもタコでもやる奴の実力のみが向上するんだよ。
おまえの行き着く先は何もできない才能も人望も無いロートル爺だ。
【語り「コンパイラ・スクリプトエンジン」相談室4 >>227】
0328デフォルトの名無しさん
NGNG0329デフォルトの名無しさん
NGNG0330デフォルトの名無しさん
NGNGこれ覚えると他がアフォらしく見えるよ!
0331デフォルトの名無しさん
NGNGつか、そんなスレになっている元凶は死ね、
いくら煽ったってお前の実力は向上しないし、
稚拙でもタコでもやる奴の実力のみが向上するんだよ。
おまえの行き着く先は何もできない才能も人望も無いロートル爺だ。
【語り・・・「コンパイラ・スクリプトエンジン」相談室4 >>227】
0332デフォルトの名無しさん
NGNG0333デフォルトの名無しさん
NGNG0334デフォルトの名無しさん
NGNGMiniSchemeとか、継続も末尾再帰もGCまかせにする単純な方法があるから、
そんなに大変じゃないよ。
まあ極力GCを避ける実装とか、コンパイルするとかなるとそれなりに大変だけど、
自己記述できるからだいぶ小さくまとまる。
下手な俺流言語でがんがるよりはマシ。
0335デフォルトの名無しさん
NGNG↓
LISPでコンパイラを書くとグラフの実現でつまづく気がする
↓
Schemeの方が単純で良いと思う
↓
継続と末尾再帰最適化でハードル高くなるのでは?
』
↑ここまでは低脳の漏れにも分かる。。
インタプリタでコンパイラのコードを記述して実行すれば
所望するコンパイラが生成される。(違いますか?)
コードを記述する際、開発環境の言語の特性上、
継続と末尾再帰最適化に気を使うのも分かる。
開発環境にMiniSchemeを使えば継続と末尾再帰最適化を
GC任せに出来るので、コーディングしてる人はその辺未熟でも
許されるという意味ならこれも分かる↓
『MiniSchemeとか、継続も末尾再帰もGCまかせにする単純な方法がある』
これ↓はコンパイラを生成するコードをコンパイラで記述するってことですよね。
『まあ極力GCを避ける実装とか、
コンパイルするとかなるとそれなりに大変だけど、
自己記述できるからだいぶ小さくまとまる。
』
じゃ、これ↓はターゲットとしているコンパイラのことですか?
それとも>>343自体が『MiniSchemeコンパイラを作れば?』ってこと??
『下手な俺流言語でがんがるよりはマシ。』
0336デフォルトの名無しさん
NGNG0337デフォルトの名無しさん
NGNG誰だよお前
0338デフォルトの名無しさん
NGNG0339333
NGNGまあ継続とかのフレームを毎回ヒープからアロケートしまくれば簡単なんだけど、
知らないと難しい類いの問題じゃないかな。
どうでもいいが、
LispよりSchemeの方が単純で良いと思う。
↓
継続と末尾再帰最適化が義務になるので却ってハードル高くなんない?
↓
下手な俺流言語でがんがるよりはマシ。
いつのまにLispが下手な俺流言語になったんだろうw
>>335
「Lispを書く」と「Lispで書く」が各人ばらばらでつよ。
繋がってるようで繋がってない。
0340デフォルトの名無しさん
NGNGまあ、下手な俺流 Lisp はあり得るかな。
下手かはともかく、遥か昔はみんな俺流 Lisp だったといえなくもないわけだし。
0341デフォルトの名無しさん
NGNG(´◕ω◕`)ばらばらか・・そっか・・
0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNG却下
0344デフォルトの名無しさん
NGNGなんで?
0345デフォルトの名無しさん
NGNG0346デフォルトの名無しさん
NGNGグラフって?
0347デフォルトの名無しさん
NGNG0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNG手軽に済ませたければ使うとよろし。きめ細かなエラー回復処理を
したいとか、特殊な構文山盛りの言語だと、手でパーサー書いた
方が良い。
ただ C だと文字列操作繁雑だから、個人的には C++ 処理系と
組み合わせて使えるヤツを勧めておくが。
0350デフォルトの名無しさん
NGNG0351347
NGNG0352デフォルトの名無しさん
NGNGいや、これなら自分でも読めそうだったんで。
0353デフォルトの名無しさん
NGNGと思う俺は実用主義
0354デフォルトの名無しさん
NGNG不足を感じたことは今のところなし。
0355デフォルトの名無しさん
NGNGParser ClassとかLexer Classは提供されてる?
0356デフォルトの名無しさん
NGNG0357デフォルトの名無しさん
NGNGnotavaccのページにはJavaCCとの比較が、SableCCのページにはANTLRとの比較があるけど、ほかのも知りたい。
他力本願ですまん。識者の意見求む。
0358デフォルトの名無しさん
NGNG0359デフォルトの名無しさん
NGNG前に評価したけど yacc からの移行なら yayacc がなかなか良いよ。
過去の遺産の都合で未だに flex + bison な仕事を抱えてて、移行
できてないが>俺
0360デフォルトの名無しさん
NGNGああいう感じで構文をクラスに落としてくれるコンパイラコンパイラってないのかな?
0361デフォルトの名無しさん
NGNGJavaCCじゃ不満?
0362デフォルトの名無しさん
NGNGhttp://www.pearsoned.co.jp/washo/java/wa_java01-j.html
この本なんだけどね、すごく綺麗なパーサ用パーツ群なんだよね。
0363デフォルトの名無しさん
NGNGせっかくその本読んだんなら自作してみては?
0364デフォルトの名無しさん
NGNG0365デフォルトの名無しさん
NGNG自分でなんとなく興味があっても、結構手が出しにくく思える「パーサ関連」の良書だった。
コンピュータサイエンス等の基礎が全くなくても、
JAVAでオブジェクト指向をある程度なら把握できている人には、超おすすめ。
本の構成も非常に考えられていて、まったくのパーサ未経験者でも頭から読んでいけば
最後には自分でプログラミング言語を作成できるところまでたどり着けた。
0366デフォルトの名無しさん
NGNG0367デフォルトの名無しさん
NGNG0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNG375はカスタマーさんですか??
0370デフォルトの名無しさん
NGNG0371デフォルトの名無しさん
NGNGすぐ関係者とかを疑うのって痛くないか?
0372デフォルトの名無しさん
NGNGそれ使ってりゃいいのでは?
0373デフォルトの名無しさん
NGNGGCの効くJavaでもいいですが、C#の方がコーディング早いから、できるの
であればいいかなぁ程度なのですが、XMLの規格の解析するだけなので速度は
気にせず、解析できればおっけーなのです。
0375360=362
NGNG>>372,361
javaCCとかってパースクラス本体が妙にでかいのができるんで、件の本(これはパーサを作る為の細かいパーツの集合なんでBNFから自動展開とかはしないのです)
の物みたいに粒度の細かいクラスに分解するようなコンパイラコンパイラは在りませんかって問いかけだったんです。
0376デフォルトの名無しさん
NGNG0377デフォルトの名無しさん
NGNG0378デフォルトの名無しさん
NGNG作ってるよ、お前の書き込み面白くない、どっかいけよ。
>>363
ライブラリに最初から入っているxmlパーサじゃだめなん?
0379デフォルトの名無しさん
NGNG0380デフォルトの名無しさん
NGNGBisonじゃないけど、ANTLRはC++、Java、C#で使えたはず。
0381デフォルトの名無しさん
NGNGがんばって使ってみますね。どもです。
0382デフォルトの名無しさん
NGNG定義するのはどうしたらいいのでしょうか?とりあえず
\"(([\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])|\\.|[^\\"])*\"
としてみたのですが、2バイト目が\の"表"とかが最後になっていると
"がエスケープされてしまいそのさらに次の"までが文字列になってしまいます。
よろしくお願いします。
0383デフォルトの名無しさん
NGNG2バイトめ"\"のパターンを使え
0384382
NGNGシフトJISの2バイト目"\"のパターンは
([\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])
で引っかかると思うのですが、
これじゃダメなんでしょうか?
0385デフォルトの名無しさん
NGNG\"(\\.|[^\\"])*\"
と同じ意味。
[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]
は
[^\\"]*
で吸収できちゃうから。
0387デフォルトの名無しさん
NGNG結果を張っといたら?
0388デフォルトの名無しさん
NGNG0389デフォルトの名無しさん
NGNG0390デフォルトの名無しさん
NGNG私は自力で解決しました。
あなたも自分で考えてみてください。
0391デフォルトの名無しさん
NGNGこういう奴が、スレを糞化させる。
0392デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1101986365/
0393デフォルトの名無しさん
NGNG0394デフォルトの名無しさん
NGNGANTLRの書き方って独特だよね。おれもよくわからん。
いちばんわかりやすいのはSableCCだな。BNFだけ定義すればよく、JavaコードとBNFとをごちゃまぜにする必要がない。
0395デフォルトの名無しさん
NGNG0396デフォルトの名無しさん
NGNGほんとの意味で糞化だ(笑
0397デフォルトの名無しさん
NGNGアフォ目、洩れがアドバイス出してやったんだがw
0398デフォルトの名無しさん
NGNG383 名前:デフォルトの名無しさん 投稿日:04/12/04 12:08:56
>>382
2バイトめ"\"のパターンを使え
0399デフォルトの名無しさん
NGNGつーか知ってるなら自分で貼ったらいいじゃん。
0400デフォルトの名無しさん
NGNG0401デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNG0403デフォルトの名無しさん
NGNGttp://www.cminusminus.org/
0404デフォルトの名無しさん
NGNG0405デフォルトの名無しさん
NGNG0406デフォルトの名無しさん
NGNG0407デフォルトの名無しさん
NGNG私は、Cの入門書を読み終えた程度です。
0408デフォルトの名無しさん
NGNG無謀
0409デフォルトの名無しさん
NGNG0410デフォルトの名無しさん
NGNG0411デフォルトの名無しさん
NGNGその友達に理由を聞けよ
0412デフォルトの名無しさん
NGNG0413デフォルトの名無しさん
NGNGそうか、アセンブラはいるのか。。。
アセンブラを勉強してから出直してくるよ。
0414デフォルトの名無しさん
NGNG0415デフォルトの名無しさん
NGNGそうなのか?
Cも覚えることはほとんどなかったが。。。。
まぁ、いいや。
はじめて読む8086からはじめるよ。
0416デフォルトの名無しさん
NGNG0417デフォルトの名無しさん
NGNGそうでもないよ。
言語を理解するには実際に自分で作ってみるのが手っ取り早いよ。
0418デフォルトの名無しさん
NGNG0419デフォルトの名無しさん
NGNG漠然と作ってもただのゴミだし
時間を有効に使う意味では言語処理系なんて手を出さないが吉
0420デフォルトの名無しさん
NGNGできあがった完成品が重要なのではなく、その過程でできたものがもっとも重要な
物・事である事が多いと思いますよ。
完成品なんてタダでくれてやればいいが、その過程で得たものは絶対誰にもあげない。
そう思います。
って青木淳さんの受け売り…
0421デフォルトの名無しさん
NGNGそろそろ元に戻そうぜ。
0422デフォルトの名無しさん
NGNGAliceSoftの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デフォルトの名無しさん
NGNG0424デフォルトの名無しさん
NGNG先にC++覚えたほうが楽だと思う
0425デフォルトの名無しさん
NGNGそれだったらアセンブラ知っとく必要ないじゃん。
とりあえず「yacc インタプリタ」でぐぐって好きなの読むといいんじゃない?
0426デフォルトの名無しさん
NGNG0427デフォルトの名無しさん
NGNG0428デフォルトの名無しさん
NGNGアセンブラというものがどういう構造なのか知っておくと便利だけど、
アセンブラ言語そのものを覚える必要は無いと思う。
それよりコンピュータがどうして動いてるか理解する方が大事。
メモリから命令を拾って来る→なんかする→次の命令を処理
という流れはどっちも変わらないから。
0429410
NGNGなんか、一緒にされてる気がするので。
>428
え、ネイティブなら必要だと、上のレスにあるが。。。。
0430デフォルトの名無しさん
NGNG自分の言語→C言語へのトランスレータを作って、system関数か何かを使ってCコンパイラを呼び出してコンパイルするのがいい。
C++なども最初はそのようにして作られたし、元々Cはそのための言語として開発された経緯があるから良い感じで実装できる。
Cのオプティマイザをそのまま借用できるのも便利だ。
もしアセンブラも知っていれば、自分の実装した機能を効率よく実装できる命令が見つかるかもしれない、
そのときにネィティブコンパイラを作ってみようという動機が発生する。
目的が現在の言語の性能が気に入らんから、言語はそのままでより良いオプティマイザを実装しようというなら
いきなりアセンブラで行けというところで。
0431デフォルトの名無しさん
NGNGhttp://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デフォルトの名無しさん
NGNGlccは全く実用にはならないのだが、
この本はかなりおもしろく、また、類書が全くないので一読の価値あり。
0434デフォルトの名無しさん
NGNGあれはどうやっているのですか?
(ここではスレちがい?)
0435デフォルトの名無しさん
NGNG0436デフォルトの名無しさん
NGNG暗号化してるだけだろ
0437デフォルトの名無しさん
NGNGコンパイルってことは普通バイナリファイルにするわけで、
バイナリになったら普通人は読めないだろ。
0438デフォルトの名無しさん
NGNGドラゴンブックが古い本なのは確かだが、コンパイラ理論の基礎なんて
ドラゴンブックの時代から変わってないから問題ないよ。
佐々本は読んだことないから、そっちの方が良いという意見は否定しないが。
0439デフォルトの名無しさん
NGNG佐々本と大差ないと思われる(属性文法あたりの差分はあるけどね)。
日本語で読みたいなら、佐々本の方が良い。1冊にまとまっているし、
なによりドラゴンブックの日本語訳はヤバい。
中田本はちゃんと読んでいないので何とも言えないが、元の論文
読む羽目になるのは仕方ないんじゃないか? というか、中田本を勉強
しなきゃいけないやつは、どうせ元論文だけでなくもっと新しい論文を
読まなきゃ仕事にならんでしょ。
0440デフォルトの名無しさん
NGNG"Advanced Compiler Design and Implementation"
この本は主にどの言語で書かれていますか?
C? C++?
0441デフォルトの名無しさん
NGNG漏れは431ではないが、アルゴリズムの説明などで用いられている擬似言語はpascal風。
とはいっても内容は全くプログラミング言語に依存しない。というか、コンパイラの本で内容が
特定のプログラミング言語に依存するものってあまりないと思う。
ベクトル化コンパイラの本はFortran向けに書かれていることがよくあった気もするが。
0442デフォルトの名無しさん
NGNGJavaと同じと考えていいんでない?
0443デフォルトの名無しさん
NGNG0444デフォルトの名無しさん
NGNGHTML や XML は正規表現を憶えてツリー型のデータ構造を憶えれば完成だから、
正規表現のスレッドや初心者相談系のところにいったらいいよ。
0445デフォルトの名無しさん
NGNG↑のソースは参考になる?
0446デフォルトの名無しさん
NGNG私は、Lispの入門書を読み終えた程度です。
0447デフォルトの名無しさん
NGNG0448デフォルトの名無しさん
NGNGlex yacc または bison flex といった所をやる
オライリーの動物本でもどうぞ
もしCができないなら先にそっちをやる。
Cが分らないとツール群の使い方が理解できない。
0449デフォルトの名無しさん
NGNGCでなくて、C++でもいいんでない?
0450デフォルトの名無しさん
NGNGCが分らないならC++をやるのはただの遠回り、そこまでやらなくてもツールは使える。
C++で使うにはかなり詳しくC++を知る必要があるから、そんな所に迷い込んだら永久にできなくなってしまう。
大規模になってくれは必然的にC++やる事になるのだから、そのときで十分。
0451デフォルトの名無しさん
NGNG0452デフォルトの名無しさん
NGNGバイトコードに落とすLispのコンパイラを作るのは結構簡単なわりに面白いよ。
0453デフォルトの名無しさん
NGNGおすすめのソースとかある?
0454デフォルトの名無しさん
NGNG0455デフォルトの名無しさん
NGNGありが�d
Javaの復習にもいいね。
そろそろこのスレをまとめたサイトが欲しいね。
0456デフォルトの名無しさん
NGNGあれはS式をそのまま解釈するインタプリタなのでコンパイラは出てきませんね。
でも入門書を読み終えた程度って人なら処理系のイメージを軽くつかむにはいいかな。
Lisp/Schemeスレのテンプレに出てくる小さい処理系の中には
バイトコード仮想マシン+コンパイラという構成のものもあるのでそれがいいです。
Emacs使いならbytecomp.elがそのままコンパイラ。
ちょっと概要を掴むのに苦労するかも知れないけど。
0457デフォルトの名無しさん
NGNG俺と考えが違いますね
ソフトもプログラムも、頭の良い人が数人いて、いいものを作れば
終わっちゃう世界だと思うんですよ。
コピーすれば同じですし・・・
例えば、簡単なスクリプトを学生が趣味で作ってとしてそれを公開すれば
他の人は、そこまでの勉強が近道が出来ると思います。
頭の良い人はそこから更に良い物を作るって言うやり方が必要だと・・・
特許などに触れる部分や会社の売りである部分はさすがに公開できないでしょうが
その部分を省いた基本的な部分は全て公開する方が効率が良いと思いますし
アメリカやインドに比べてソフト開発力が低い?と言われてるのだから、
その部分を補う部分が欲しいと思いますね。
0458デフォルトの名無しさん
NGNG>>457 口をあけて待ってるバカ
0459デフォルトの名無しさん
NGNG馬鹿で悪かったな・・・
C言語を覚えるのに、C言語の入門からマニュアルが一杯でてるだろ
おまぇはそれすら観なかったのかよ?
それからアルゴリズムも全部自分が考えたか?
データ構造とアルゴリズムを本やインターネットで覚えてないのか?
結局頭の良い人が見つけたプログラミングをお前だって恩恵受けてるだろ。
コンパイラだって頭の良い人が考えてプログラムの参考に自分の新しい
コンパイラを作るのだって在りだと思ってるんだよ
それとは別に人が作ったものを他の人がまた作るのもデジタルである
プログラムではもったいないと・・・
おまぇの考えはフリーでプログラムを提示してる人を真っ向から否定してるよな
0460デフォルトの名無しさん
NGNGこいつはコンパイラの本を見ずにコンパイラを自力で作れるすごい奴なのかも
しれないwww
0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNG自力で作れる奴がここに来るのか??www
0463デフォルトの名無しさん
NGNGもし来ないと思っているなら、それは偏見だよ。
別にここでの書き込みに何か期待しているわけじゃない。
ただ、専門分野での雑談を楽しんでいるだけだよ。
0464デフォルトの名無しさん
NGNG彼はC言語のマニュアルしかみないでプログラマーやってる
スーパープログラマーだから、相手にしない方がいいな。
0465デフォルトの名無しさん
NGNG彼はすごいよ。
数学の数式や方程式も自分で考えたんだよ。
大学の勉強も教授に話しを聞かなかったと思うよ
何故ならスーパーだから・・・。
教授が自分の経験や頭が良い人の本や教科書を使った
授業だって彼にとっては無駄だもの
先人の発見した知識は彼には必要ないんだよ
彼は全部自分で考えて、自分で作れるんだから・・・www
0466デフォルトの名無しさん
NGNGそういう人間は別に少なくないだろう。分布が偏在しているだろうとは思うが。
それはさておき>>457=>>459だろうが言ってることが滅茶苦茶だぞ。
>>457では成果物としてしか捉えてないからバカと言われて当たり前。
公開されてるものを眺めただけで改良できるようになるわけじゃないんだよ。
結局ものの設計や開発は一種の探索問題だから、その過程を理解しなければその設計に
至る必然性やどこに改良すべき点があるかとかわからん部分もある。
>>459でいってるアルゴリズムとかは経験(≒プロセス)から抽出された知識であって
成果物ではないのだから457の主張の論拠にはなり得ない。
457を補強するつもりでも結局459は420の補強にしかならん。
457を見て感じるのは、こいつには「頭のいい人」のものの考えは絶対理解できないだろうなということ。
自分をその範疇から外していて、そうなる意志もないだろうというのも感じる。
0467デフォルトの名無しさん
NGNGはぁ〜、まぁ〜いいや、プログラムだけでなく
方程式とかも自分で解いたんだろ、、全部。
おまえの言ってることは、本に書いてある知識や経験を
必要としないでやってきた人間だけが言える言葉だぞ。
例えば、英語の映画を観ただけで、英語を覚えられるとか・・・
誰かが、覚えた経験を元に英語の教科書や、専門書を
観ないで覚えたのか
授業で英語の教科書を見て英語覚えたのなら、
それは英語を覚えた経験した事を、本で覚えて
英語を覚えたことになるんだぞ。
0468デフォルトの名無しさん
NGNG観ないで覚えたのか
でした
0469デフォルトの名無しさん
NGNG>>466 アホだな…
本や論文を読まずに〜というのは, 要するにその内容を完全に理解したから,
その文献を再び参照することなく, 新規性のある事ができる, という意味だろうに…
0470デフォルトの名無しさん
NGNG彼はエジソンだね。学校の授業は人の経験を教科書にして覚えると言う
行為だから・・・
授業など必要とせず、自分で経験したことだけで、スーパープログラマに
なったらしいから・・・
まさに、プログラマー界にエジソンだよ。
そういうスーパーな人は、新しい言語でも作って世の中で有名でもなって
ください。
0471デフォルトの名無しさん
NGNGあなたはまず日本語を勉強しましょう
0472デフォルトの名無しさん
NGNGそれくらいスーパーなプログラマなら脳内変換できないのか?
0473デフォルトの名無しさん
NGNG落ち着け。>>420は
> 完成品なんてタダでくれてやればいい
と言ってるんだぞ。お前にソースは見せん、と言ってるんじゃない。
0474デフォルトの名無しさん
NGNGなんかフレーム引き起こしてますな、僕も420と同意見で
他人の作ったものをとってきて喜べるたちの人間ではないですね、
自分で何か作る事にのみ喜びを感じます、
アルゴリズムも自分で思いついてこそ楽しいのです。
作業効率なんてどうでもいいんですよ。
貴方の意見を読んでいるとプログラミングが恐ろしくつまらない作業の繰り返しに思えます。
0475デフォルトの名無しさん
NGNG0476デフォルトの名無しさん
NGNG0477デフォルトの名無しさん
NGNGプログラミング自体を楽しめるのなら良いが
作るという行為だけ楽しめる人もいるんですよ
プログラミングだけならアセンブラやC言語だけでいいじゃないですか
でも作る行為が楽しいと言う人がいるから、VisualBasicだってある。
問題は効率良く作業する為にはどうしたら良いかと
彼はライブラリも使わないと思うよ。
ライブラリだって人の作ったプログラムを使ってるんだから、スーパーな
プログラマは我慢できないんじゃないかな?
0478デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1103874346/
0479デフォルトの名無しさん
NGNG>プログラマは我慢できないんじゃないかな?
この辺りからして感覚が違う気がしますね、我慢できないのではなくて、中身が興味深そうなら自分も作ってみるのです。
0480デフォルトの名無しさん
NGNG先人の経験を基礎に入るかってことで
どんな職業だって先人の経験を真似る部分もある。
確かに真似るだけでは駄目でそれを自分のものにしなくてはならない
ソースだけ開示するまでが基礎か
その考え方まで書いてあげてコンパイラというものを理解できるような
形にしてあげること(本やインターネットで)
までが基礎かの違い。
彼はソースだけは開示すると書いてあったのは理解できなくもない
本やインターネットでコンパイラについて書かれたことを全く
見ずに自分でコンパイラを作った人なら、他の人にもそれくらい
自分でやればと思うかもしれないから・・・
でも本やインターネットでコンパイラについて書かれた内容を理解した
人は、その本を読んで理解しろと言う場合と、もっと解りやすい本が
あればもっと簡単に覚えられたと思う人もいるだろ
簡単に言えば解りやすいコンパイラの本が日本語で出るだけで、新たな
言語が出る可能性が出て面白くなると思うけどね。
0481デフォルトの名無しさん
NGNG0482デフォルトの名無しさん
NGNGつかそのころコンピュータ書籍は英語で書かれている物以外は論文くらいしかなかったし、しかも俺は英語を習う前だったから読むもクソも無かった。
まさか当時は電算関係が生業になるなんて考えてもみなかったけど楽しかったぞ。
0483デフォルトの名無しさん
NGNGことは絶対ないんだけどね。これはコンパイラに限らず。
0484デフォルトの名無しさん
NGNG読んでると壁の両側に綺麗にわかれていて面白い。
0485デフォルトの名無しさん
NGNGコンパイラ以外でも先人の経験を元にしなかった?
アルゴリズムの本を読んだり、会社の先輩にソースを見せて貰ったとか・・・
人の経験を全く真似ないで自分だけでやってこれたと言う人が
本当にいるのなら観てみたいね。
職業のプログラマーだけでなく、他のあらゆる事が先輩の真似から
入ることが多いでしょ。
0486デフォルトの名無しさん
NGNG彼も、先人達の経験を全く必要としない人らしい。
自分だけでやってこれたと思ってる人って素晴らしいね
自分なんて人のおかげで、色々と覚えられたと思ってるし・・・
0487デフォルトの名無しさん
NGNGみないでコンパイラを作れる人が、時々、本とかインターネットを
使って、コンパイラを作ろうとしてる人が書き込んだ人を馬鹿に
しようとする為にスレということが解ったよ。
0488デフォルトの名無しさん
NGNG相談室と書いていながらここは、単に本やインターネットを
見ないでコンパイラを作れる人が、時々、本とかインターネットを
使って、コンパイラを作ろうとして書き込んだ人を馬鹿にしようとする為の
スレということが解ったよ。
0489デフォルトの名無しさん
NGNG0490デフォルトの名無しさん
NGNG0491デフォルトの名無しさん
NGNG人格攻撃に始まるって奴は負ry
0492デフォルトの名無しさん
NGNGスレは「ある」ものではなく「作る」ものだ。
君が親切な相談員になればいい。
0493デフォルトの名無しさん
NGNG0494デフォルトの名無しさん
NGNG俺が君ほどレベルが高くなく本と見てコンパイラを作れるレベルなんだよ
そのレベルの話で良ければ教えてもいいけどね。
0495デフォルトの名無しさん
NGNGそれを作ったクリエータ自ら、ゲーム業界の学会?みたいな
場所で発表するらしい。
アメリカではプログラム技術は共有の知的財産と思ってるらしく
それを、使って何を作るかが重視されてる。
日本は技術を自分で作ることが重視になってる。
技術を1から覚えないと、物を作る資格がないと思ってるみたいだ・・・
0496デフォルトの名無しさん
NGNGアメリカだとゲームは平気で人が作ったエンジンを使ってゲームを作る。
日本だと、1から作ることが職人だと思ってエンジンを使う所は少ないし
エンジンを提供する所も少ない。
アメリカは自分で作りたいものがどのような形で作られようが問題ないみたい
人が作ったものだろうが、それで自分が作りたいものが出来るのなら
問題なく使うけど、日本人は1から作らないと気がすまないみたいだ。
0497デフォルトの名無しさん
NGNG何の根拠もない妄想をここでやるなよw
0498デフォルトの名無しさん
NGNGhttp://www.illusion.jp/preview/jinkousyoujyo2/
http://www.teatime.ne.jp/infor/ld_top.htm
0499デフォルトの名無しさん
NGNGそれ位のレベルの人が一番わかりやすく教えられるんじゃない?
学校の先生より家庭教師の説明の方がわかりやすいのと同じで。
0500デフォルトの名無しさん
NGNG雑談はマ板でお楽しみください。
0501デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1103874346/
0502482
NGNG信号線は親に読んでもらった。
482で書いた事は自分が小学6年から中学1年に掛けての事だから本当に役に立つ書籍は無かった。
ちなみに石田晴久の「マイコン入門」が出たのが自分が中学2年か3年の時。
そういう時代なので読む物なんか図書館いっても見つからないのだ。
0503デフォルトの名無しさん
NGNGあぁ、あの東大のDQNね。
0504デフォルトの名無しさん
NGNGhttp://bubble2.2ch.net/i4004/
0505デフォルトの名無しさん
NGNG0506デフォルトの名無しさん
NGNGprologでコンパイラ作ってる人いますか?
パターンマッチ最適化や、高レベル中間語→低レベル中間語→アセンブリの変換等が
きれいに書けそうな気がするんですが。
0507デフォルトの名無しさん
NGNG共有するって感じかな?
どちらかというと自分の意見を学会にぶっつけて反応を確かめて
自分の方向性を決めるといった感じの印象を受けるのだが。
共有を目的にしている人は一部のオプソ狂信者(日本にも居るね)だけだと思うな。
0508デフォルトの名無しさん
NGNGきれいに書けませんよ。
嘘だと思うならやってみたら。
0509デフォルトの名無しさん
NGNGそういう研究はあり、確かにきれいに書ける。
ただし、prologでなく、より汎用的なlogical framework(twelfとか)を使うことが多い。
0510デフォルトの名無しさん
NGNGなんとなく納得。
なにげに日本の習慣って秘密主義なのかも。
0511デフォルトの名無しさん
NGNGチンケなプライドがあるために他人のツールを使えないだけ。
高卒のくせにな。
0512デフォルトの名無しさん
NGNG0513デフォルトの名無しさん
NGNG自分やっているプログラムが詰んなくない?
それでストレス溜まって高卒ごときにムキになってない?
まぁ、最近そな人多いね、実際自分も仕事ではまるでベントコンベアの前にいるライン工の気分だしね。
嫌な時代ではある。
世の中生産性が全てではないと思うのだが・・・
せめて趣味の世界では爆発していたい。
プログラミングは爆発だ!!
0514デフォルトの名無しさん
NGNG0515デフォルトの名無しさん
NGNG0516デフォルトの名無しさん
NGNG年末ずっとこの調子?この人
0517デフォルトの名無しさん
NGNG0518デフォルトの名無しさん
NGNGどう変わったか知っている方いますか?
http://sourceforge.net/project/showfiles.php?group_id=23617
0519デフォルトの名無しさん
NGNG0520デフォルトの名無しさん
NGNG0521デフォルトの名無しさん
NGNGVisualC++(というか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一文字ずつswitchで入れ子にするのが速いし、メモリも食わないし、プログラミングも実は一番楽。
0523デフォルトの名無しさん
NGNG0524デフォルトの名無しさん
NGNGぜーたいありえネェ〜
0525デフォルトの名無しさん
NGNGあー、つーか、単純なやつならそれで出来るかもしれんが、あまりにも世界が狭すぎ。
全てそれでいけると本気で思っているのなら、もう一度勉強し直してこい。
0526デフォルトの名無しさん
NGNG根拠が弱い
アホいうんなら、おまえの方法とlex、yaccを使う方法の
長所、短所ふまえてちゃんと説明してみんなを納得させろ
0527デフォルトの名無しさん
NGNG0528デフォルトの名無しさん
NGNG0529デフォルトの名無しさん
NGNG0530デフォルトの名無しさん
NGNGVC++固有のライブラリの使い方なら
VC++スレ行ったほうがいいと思う。
構造化例外を使いたいだけなら、
Structured Exception Handling
でぐぐればよさげ。
0531デフォルトの名無しさん
NGNG>>529書いた時点で真性確定。
0532デフォルトの名無しさん
NGNG0533デフォルトの名無しさん
NGNG0534デフォルトの名無しさん
NGNG\ 助けてクマー
\∩_∩ 今助けるクマー
(;(エ); )∩_∩ ∩_∩
⊂. ⊂ |(・(エ)・; )_○ (・(エ)・; ).∩_∩ 頑張るクマー
⊂_⊂/⊂⊂___つ⊂⊂ |(・(エ)・; ).∩_∩
| ⊂⊂ |(・(エ)・ )
∪ ̄∪| ⊂⊂ | 〜〜
∪ ̄∪| |○ 〜〜〜
∪ ̄∪ 〜〜
0535デフォルトの名無しさん
NGNG>プログラミングも実は一番楽
ありえねえ
自力で遷移状態管理しろ、つうたら泣けるなあ
0536デフォルトの名無しさん
NGNG0537デフォルトの名無しさん
NGNG真剣に悩んだよ。
結局、手で書いたが。
0538521
NGNG// 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の持ち回り)使ってるから
フレーム統合するのは難しそうです。
別の手段考えます。
0539522
NGNG人間が考えてる要領でうまくかける。
yaccだのlexだのはかえって難しいんだよ。
複雑な文法になるほどな。
0540デフォルトの名無しさん
NGNG0541デフォルトの名無しさん
NGNG|
∩___∩ |
| ノ _, ,_ ヽ (( | プラプラ
/ ● ● | (=)
| ( _●_) ミ _ (⌒) J >>539
彡、 |∪| ノ
⊂⌒ヽ / ヽノ ヽ /⌒つ
\ ヽ / ヽ /
\_,,ノ |、_ノ
0542デフォルトの名無しさん
NGNGWin32 Exception handling for assembler programmers by Jeremy Gordon
http://www.jorgon.freeserve.co.uk/ExceptFrame.htm
昔、参考にさせてもらったサイト。もう1ヶ所ぐらいあったんだけどURL紛失した。
0543デフォルトの名無しさん
NGNGparserはyaccか互換ソフト以外実用プログラムでは使われていないからなぁ
お前ら、もっと現実を見ろ!
0544デフォルトの名無しさん
NGNGどうせなら新しいネタにしようぜ
0545デフォルトの名無しさん
NGNGJava5.0はyaccだと難しい。
0546デフォルトの名無しさん
NGNGPythonやPerlはどうなの?
0547デフォルトの名無しさん
NGNG漏れが知りたいのはその先の話なのに。
0548デフォルトの名無しさん
NGNGgccも最初はyaccだったが今は手書きらしいし
0549デフォルトの名無しさん
NGNG0550デフォルトの名無しさん
NGNG0551デフォルトの名無しさん
NGNGgoogleで調べても見つからないので。
0552デフォルトの名無しさん
NGNG中間言語と言っても色々レベルがあるけどな。
0553デフォルトの名無しさん
NGNG書籍名を教えてくださいYO!
ほとんど知識の無いままSchemeのインタプリタを書き始めたんですが
3日くらいで大体の機能が実装できました。
問題はGCと継続なんですが、CPSという中間言語を使うと継続が楽に
実装できるという噂をききまして、どんなものかなあと。
コンパイルしないと遅すぎるってことや実装が簡単すぎた(さすがScheme)
っていうのも動機なんですけど。
0554デフォルトの名無しさん
NGNGCPSは普通のコンパイラの教科書では余り取りあげられない。
本なら、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デフォルトの名無しさん
NGNGCPSにこだわっている訳ではないんですけど、東大のコンパイラの授業
のページにのってたのでメジャーなのかと思ってました。
一般的に中間言語の話はどの本がいいんでしょうか。
とりあえずいろいろ調べてみます。
0556デフォルトの名無しさん
NGNGCPSは中間言語ではないよ。
それに直接速くなるわけでもない。
CPSというのは継続のたらいまわしで、実装が自ずと
スタックレスになり、末尾の検出が不要になることと
継続の抽出が単純(というか継続の抽出そのもの)になるというだけで。
Schemeは末尾呼び出しのフレームの縮小問題に
どう取り組むかで速度にかなり違いが出てくる。
これは仮にCPSにしても解決はできない。
それと(Schemeに限らないけど)、GCにぎりぎりまで頼らない
(ヒープに移さない)設計にするとか。
CPSについてはコンパイラの本より
むしろ関数型言語扱ってる古い本に色々載ってたけど、
そういうのは図書館で探したほうがいい。
CPSに変換する処理系もあったはず。
ちなみに借りた本は「コンパイラの構成と最適化」
CPSとはあんま関係ないね。
0557デフォルトの名無しさん
NGNGSteele 先生のってこれでよろし?
ftp://publications.ai.mit.edu/ai-publications/pdf/AITR-474.pdf
面白そう……だけど結構な分量だな。プリントアウトしたら大変そうだ。
0558デフォルトの名無しさん
NGNG中間言語の話題で一般的に良い本を挙げるってのは難しい。
というか、ソースから中間言語への変換辺りの話題だと、
ドラゴンブックで充分だし、最適化の話題よりのコンパイラの
教科書だとその辺りは大抵省略されている。
AppelのModern Compiler Implementation in {ML,Java,C}辺り
だとコンパイラについてlexer、parserからcode generationまで
一通り書かれていて、GCなんかも取りあげられているから良
いかもしれない(漏れはJava版しか読んだこと無いからMLや
C版の内容は知らない)。
0559デフォルトの名無しさん
NGNG凄いな。
こ れ が 修 論 か
0560デフォルトの名無しさん
NGNG0561デフォルトの名無しさん
NGNG得意げな顔して何が、CPSで、だ。
お前は本当にCPS変換したいのかと問いたい。問い詰めたい。小1時間問い詰めたい。
お前、スタック使いたくない だけちゃうんかと。
中間言語通の俺から言わせてもらえば今、中間言語通の間での最新流行はやっぱり、 A normal form、これだね。
大盛り一時変数。これが通の頼み方。
A normal formってのは制御フローが明示的に入ってる。そん代わり継続は暗黙的。これ。
で、それにtail call最適化。これ最強。
しかしこれを頼むと次からAppelにマークされるという危険も伴う、諸刃の剣。
素人にはお薦め出来ない。
まあお前、1は、型付きCPS変換でもしてなさいってこった。
0562デフォルトの名無しさん
NGNGメル欄ワロタ
0563デフォルトの名無しさん
NGNGポインタでもいいから。
0564デフォルトの名無しさん
NGNG0565デフォルトの名無しさん
NGNG0566デフォルトの名無しさん
NGNG0567デフォルトの名無しさん
NGNG渡邊(坦)研究室
言語・機種に非依存なオブジェクト最適化の研究
http://www.watalab.cs.uec.ac.jp/OBandG/nobuharu/research/B-Thesis/paper.html
はガイシュツですか?
0568デフォルトの名無しさん
NGNG何も新しいことは書かれていない気がす。
ドラゴンブックに出て来るレベルの最適化を実装してみました
ってやつですな。
0569デフォルトの名無しさん
NGNG学部生レベルの卒論としては合格
0570デフォルトの名無しさん
NGNGhttp://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デフォルトの名無しさん
NGNG0576デフォルトの名無しさん
NGNG売り物レベルになるかはともかくを言ったら
処理系自体はちょっと時間あれば作れるしな
0577デフォルトの名無しさん
NGNG0578デフォルトの名無しさん
NGNG0579デフォルトの名無しさん
NGNG0580デフォルトの名無しさん
NGNG0581デフォルトの名無しさん
NGNGいくつか過去にもスレは立ったけど成功したもんはなさそう。
ADVRUN…はちょっと違うか
0582デフォルトの名無しさん
NGNGギコBASIC
0583デフォルトの名無しさん
NGNG0584デフォルトの名無しさん
NGNG言語の良し悪しが、決定的なんじゃないということがよくわかる
0585デフォルトの名無しさん
NGNG初心者でも簡単に使える。
初心者用ドキュメントがある。
こういう、ヲタク向けの言語では軽視されがちな部分が
大きいんじゃないかな。
0586デフォルトの名無しさん
NGNG剥げ同。
最先端言語技術や高度な理論よりも、リアルに使えることの方が
はるかに重要と最近日々感じる…
0587デフォルトの名無しさん
NGNG0588デフォルトの名無しさん
NGNGすぐに窓表示したり文字表示したり、コントロール作ったり、3DのDirectX画像が動かせるからね
すぐに目に見えて成果が現れるところがミソ
0589デフォルトの名無しさん
NGNG0590デフォルトの名無しさん
NGNG世の中の全てが詰らなさそうな奴だな
0591デフォルトの名無しさん
NGNGMSと心中しとけ。
0592デフォルトの名無しさん
NGNG禿げ同
しかし初心者にはいいかもしれないけど、
プログラマとしては絶対使いたくない言語だよね。
そこんところがシームレスに使える言語があるといいのかなぁ。
0593デフォルトの名無しさん
NGNG難しいね
0594デフォルトの名無しさん
NGNG0595デフォルトの名無しさん
NGNG激しく嫌すぎる・・・
0596デフォルトの名無しさん
NGNG0597586
NGNG0598デフォルトの名無しさん
NGNG0599デフォルトの名無しさん
NGNGありあまる暇があったら、
どんな言語・処理系作りたい?
0600535
NGNG0601デフォルトの名無しさん
NGNGこのスレに居るなら、そう思ったら自分で作れ。
0602デフォルトの名無しさん
NGNG気にする程のものではない。
ゲームを書く為だけの簡易言語だよ。
0603デフォルトの名無しさん
NGNG汎用の処理系って作ったことないからなあ。
特殊用途のだけ。
なんで、手始めはやっぱりLisp系かな。
SICPみながらSchemeからだろうか。
0604デフォルトの名無しさん
NGNGminischemeのコード見てみなよ。
たった2000行程度だから。
0605デフォルトの名無しさん
NGNGゲームだけじゃない
Windowsアプリが実に簡単に出来る
こういう面も人気の理由の一つ
普段MFC使ってる俺でも昔覚えたHSP使うことがたまにある
手軽だから
0606デフォルトの名無しさん
NGNG0607デフォルトの名無しさん
NGNG0608デフォルトの名無しさん
NGNGCより言語仕様が優れた言語は腐るほどあるのに
結局Cより流行る言語はほとんどない。
一方では、お手軽にGUIやゲームなどが作れるというだけのことで、
糞仕様のHSPがそれなりに流行ったりする。
0609デフォルトの名無しさん
NGNG0610デフォルトの名無しさん
NGNG言語論争したいのならどっか別の所へ行け
0611デフォルトの名無しさん
NGNGコンパイラを作るに当たってなにが大切かを述べてるにすぎない
0612デフォルトの名無しさん
NGNGハァ?バカでね?
0613デフォルトの名無しさん
NGNG0614デフォルトの名無しさん
NGNG0615デフォルトの名無しさん
NGNG0616デフォルトの名無しさん
NGNG0617デフォルトの名無しさん
NGNGおまえが作れ
0618デフォルトの名無しさん
NGNG言語仕様のアイデアはあるのか?
0619デフォルトの名無しさん
NGNGPC等.プログラマー("hoge);
0620デフォルトの名無しさん
NGNGエラーが出たときは
真・プロセスストッパー。。。( ̄ー ̄)ニヤリッ
と。
0621デフォルトの名無しさん
NGNGいらねーよ、言語仕様ってのは作り手の趣味の問題だ、他人にゴチャゴチャいう筋合いのものじゃねぇ。
そんなもん、そんな作りもしない何もしないクレクレ厨房の書き込みなんざ読んでもウザイだけだ。
0622デフォルトの名無しさん
NGNGそりゃ言語仕様じゃなくてライブラリの仕様じゃねえか
0623デフォルトの名無しさん
NGNG0624デフォルトの名無しさん
NGNG「言語仕様と開発論法」でやってみてください。
0625デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1104394930/l50
ここです。
0626デフォルトの名無しさん
NGNGこんな短いプログラムで比較するのもどうかと思うのだが、 Rubyで書いたら絶対これより短くなる。
ということは、PHPではなくRubyを使えという話なのか。どうも、そうではなさそうだ。
よくいただく反論は「PHPでもできる」ということであって、同じくらい良い(動的)言語からPHPを選ぶ理由ではないはずだ。
PHPは決して速くないし、記述力が高いわけでもないし、たくさんの欠点が残っているように見えるが、
あちこちで「そのシステムPHPで書かないの」という質問が出るところをみるとそれなりに馬鹿には使われているようだ。
もっとも、PHP陣営から出てくる数字はmod_phpのインストール数とか、mod_phpのパフォーマンスと(mod_perl抜きの)perl
CGIとの比較とか、まったくフェアでない印象があるが。
あるいは「すでにPHPを覚えているので、いまさら他の言語を覚えたくない」ということなのかもしれない。
その気持ちはまあ理解できないでもない。
もしかすると、よく分からない初心者をイメージ先行で取り込んでしまい、
「いまさら他の言語を覚えたくない」という」意識でロックインしてしまうというのは、
初心者をターゲットにした素晴らしいマーケティング戦略なのかもしれない。
もしそうだとするならば、というか実際そうだろうし、Rubyは絶対にその戦略を取りたくない。
それくらいだったらマイナーなままでいてくれた方がずっと良い。
Rubyは最高の言語なのだから。
0627デフォルトの名無しさん
NGNG単純にRubyはマイノリティなだけ。
使われてないなら潜在バグの洗い出し率も低いだろうし
信頼性保守性等々で考えて業務に使う必然性がない。
0628デフォルトの名無しさん
NGNG禿同
0629デフォルトの名無しさん
NGNG汚らしいRubyアンチは消えろ
0630デフォルトの名無しさん
NGNG0631デフォルトの名無しさん
NGNG0632デフォルトの名無しさん
NGNG0633デフォルトの名無しさん
NGNGなんか共通点が有るな。
0634デフォルトの名無しさん
NGNGいいよなぁ。自分の価値観が万人の常識であるとか思ってる奴。
0635デフォルトの名無しさん
NGNG0636デフォルトの名無しさん
NGNG0637デフォルトの名無しさん
NGNG日本発->他の言語より日本語の情報が多い->厨が増える
という流れなのだろうか。
0638デフォルトの名無しさん
NGNGたぶん同一人物が自作自演交えてやってるんだろうけど。
正直、俳優か小説家になれば大ブレイク。
こんなところで才能を食いつぶしている彼らが不憫だ。
0639デフォルトの名無しさん
NGNGたぶん同一人物が自作自演交えてやってるんだろうけど。
正直、俳優か小説家になれば大ブレイク。
こんなところで才能を食いつぶしている彼らが不憫だ。
0640デフォルトの名無しさん
NGNG0641デフォルトの名無しさん
NGNGどっちも典型でしょ。
専用スレが腐るほど有るんだしそっちでやってよ。
0642デフォルトの名無しさん
NGNG0643デフォルトの名無しさん
NGNGRuby>>>>>>>>>>>>>>>>Java>>>>>Python>>>>>C++>>>>>PHP>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>HSP>Perl
0644デフォルトの名無しさん
NGNG0645デフォルトの名無しさん
NGNGライブドアだけじゃん
0646デフォルトの名無しさん
NGNG0647デフォルトの名無しさん
NGNG技術の話をしないやつは(・∀・)カエレ!
お年玉で>8買って読んでから来い
0648デフォルトの名無しさん
NGNGRubyレベルのものが貴様らに作れるのか?
0649デフォルトの名無しさん
NGNG0650デフォルトの名無しさん
NGNG死に物狂いでRubyを不正で苦しさ晴れたち日をしているwwwwwwww
やはり劣等感である〜〜〜 くすくす^^;
0651デフォルトの名無しさん
NGNGHSP、LGP、System3.x、Ruby
こうして並べるとRubyすげーのかどうか微妙だな
0652デフォルトの名無しさん
NGNGメイジャーなRubyを必死に貶すことで憂さ晴らししているスレはココですか?
0653デフォルトの名無しさん
NGNGうっせー禿げ
0654デフォルトの名無しさん
NGNG推奨されています。
0655デフォルトの名無しさん
NGNGその話題は
http://pc5.2ch.net/test/read.cgi/tech/1104394930/l50
にぴったりだ、一発ブチかまして良スレにしてやってくれ。
0656デフォルトの名無しさん
NGNGずっとマイナーなままなのそれなりに理由があるからだろ。
0657デフォルトの名無しさん
NGNGその理由を
http://pc5.2ch.net/test/read.cgi/tech/1104394930/l50
に書きなさい、ちゃんと議論してみろ。
0658デフォルトの名無しさん
NGNG0659デフォルトの名無しさん
NGNG0660デフォルトの名無しさん
NGNG0661デフォルトの名無しさん
NGNG0662デフォルトの名無しさん
NGNG0663デフォルトの名無しさん
NGNG0664デフォルトの名無しさん
NGNG今をときめくライブドアで使えますが?
0665デフォルトの名無しさん
NGNGほら書き写してやった、向こうでつづけて書け。
0666デフォルトの名無しさん
NGNG0667デフォルトの名無しさん
NGNG0668デフォルトの名無しさん
NGNG>それくらいだったらマイナーなままでいてくれた方がずっと良い。
って言ってるんだからマイナーなんだろ。
0669デフォルトの名無しさん
NGNG0670デフォルトの名無しさん
NGNGなんか検索して色々なサイト見るとそれぞれ
若干記述の方法がちがうんですよね。
あとEBNFについての書き方ってのは
調べても詳しく解説してるサイトがないんですよね。
識者の意見求む!
0671デフォルトの名無しさん
NGNG表記法は規格によって様々だけど、表す物は同じ
一番元になったAlgolの時点では、
<>で囲った物が非終端記号
::=が超記号
|がOR
の3つ。
EBNFになって
省略可能が[...]
0回以上の繰り返しが{...}
くくりが(...)
という書き方が可能になった
とコンパイラ構成法に書いてあります
0672デフォルトの名無しさん
NGNG大丈夫なの?
0673デフォルトの名無しさん
NGNG0674デフォルトの名無しさん
NGNG規格になってるのには、ISO/IEC 14977:1996 とか RFC2234 とかがあったり。
0675デフォルトの名無しさん
NGNGレスありがとうございます。
>>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デフォルトの名無しさん
NGNG0677デフォルトの名無しさん
NGNGすまん
0678Rubyist!
NGNGよく公開する気になれるものだなこんなもの
しかもはっきり言って便利でも何でもないよこんなの
こんなの好きだって奴はアホそのものだな、イラネ−
0679デフォルトの名無しさん
NGNGの方が綺麗
0680デフォルトの名無しさん
NGNG漏れ儲でもなんでねねぇーけど、ここでRuby批判してる住人は妬みにしかみえねーな
『Windowsでexeが作れない』『自己記述ができない』『マイナーすぎてレンタル鯖で使えない所が多い』・・・
メイジャーになるだけの言語を作れないもしくは作る勇気も技術もない香具師の嫉妬だな
そこまでいうおまいらの作った処理系は超クオリティで馬鹿流行するんだろうなw
新言語開発ってのははじめからなんの保障もねぇーんだよ
それをさもお客様ヅラして能無しどもが偉そうに素人相手にムキになって評価してやがるイタタタタタタタタ
こんなところでネチネチ陰湿に文句いうくらいならさっさとRubyアンインストして忘れろよ
0681デフォルトの名無しさん
NGNG自意識過剰の能なし共の嫉妬を買うねぇ。
0682デフォルトの名無しさん
NGNG出し抜かれたというか、ズルい事でもされたような錯覚に陥るんかねぇ。
ありもしない自分の可能性を信じさせられる平等教育の犠牲者はかわいそうだなぁ。
アンチRubyの方々にはまことに同情するよ。
0683デフォルトの名無しさん
NGNGもしかしたらHSPの方が流行ってね?www
0684デフォルトの名無しさん
NGNGつか、悪い。もはや悪事。奴等は恥を知れ。
0685デフォルトの名無しさん
NGNG俺はRuby信者じゃない。
批判のフリした罵りが見苦しいだけ。
第三者が読んで含蓄のある批判をしてみたまえよ、みっともない。
0686デフォルトの名無しさん
NGNGメジャーじゃない
これは立派な不満点だ
お前の方が煽りに見える
0687デフォルトの名無しさん
NGNG0688デフォルトの名無しさん
NGNG信者は何があろうと持ち上げるし、
アンチはなにがあろうとくさすからな。
どっちも同じくらい間抜けだし邪魔だ。
だがRubyの場合はただ煽りたいだけの馬鹿がいるのよな。
これRubyやmatzのせいか?
あとメジャーじゃない点は確かに批判になりうるが、
でもそれはお前、pointy-haired bossじゃねえかよ。
0689デフォルトの名無しさん
NGNGここで叩いてる連中も自分で何か作ったら同じように叩かれるがいいさ。
0690デフォルトの名無しさん
NGNGそれを見て精進するだけの話。
叩かれたからってファビョるなよな。
0691デフォルトの名無しさん
NGNG0692デフォルトの名無しさん
NGNG0693デフォルトの名無しさん
NGNG680 名前:デフォルトの名無しさん 本日のレス 投稿日: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デフォルトの名無しさん
NGNG0695デフォルトの名無しさん
NGNGRubyコミュニティが何か他言語に排他的であるかのように印象操作するべく
アンチが自作自演を延々と続けているのは見ていて痛々しいな。
彼にとっては2chが全てなんだろう。暇なやつ。
0696デフォルトの名無しさん
NGNGsync |sock,a| {
...
}
end
0697デフォルトの名無しさん
NGNGdef sync_lock(a)
yield sync(a);
end
0698デフォルトの名無しさん
NGNG根拠も無しに都合の悪い事は全てアンチの仕業にしてるアンタも
見ていて痛々しいぞ。
0699デフォルトの名無しさん
NGNG| | | | 'ー―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デフォルトの名無しさん
NGNG0702デフォルトの名無しさん
NGNG0703デフォルトの名無しさん
NGNG嵐が収まったようなので質問させて下さい。
boost::spiritでyaccの%left %rightに相当するような
結合・優先順位の設定は可能でしょうか?
やはりBNFで表現するしかないのでしょうか
0704デフォルトの名無しさん
NGNG| | | | 'ー―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別にEBNFで表現しても大して難しくないんとちゃうの?
0707デフォルトの名無しさん
NGNGマニュアルにはなかったよ。
0709703
NGNGレス�dクス。
やはり無いですか…
spiritで書くと、正直な所あまり綺麗ではないし分かりづらいので、
行数節約出来るに越したことはないかな、と思ったのですが…
おとなしく構文で規定することにします。
クオリティ低い質問でスンマソン(;´Д`)
0710デフォルトの名無しさん
NGNGどの辺がクソか?言うか、もっと良い仕様のスクリプトを作って
公開すれば?
0711デフォルトの名無しさん
NGNG既存のもっと良いものを指摘するだけでも十分でしょ?
0712デフォルトの名無しさん
NGNGやっぱflex+bison?
0713Rubyist!
NGNG自分も何か価値のある行為をしてると勘違い出来る
安っぽいクズが、自分の発言を権威付けしたい欲望に駆られて
Ruby叩きの誇大妄想的な発言をしてるだけ。騙される奴はアホー
「じゃあお前がやってみろ」
これは創造的な行為をしてる人間やその作品に対して
足引っ張り以上の価値のないネチョネチョな難癖つけてる頭でっかちに対して、
その身の程を知らせるためにふさわしい切り返しだ。
最低最悪なのはどちらの行為なのかよく考えたらいい。
創造的な領域にまで昇華された批評も「例外的」にあるが、
すくなくともプログラミング言語へのもので
批評家の自意識過剰以外の何かが伝わる
創造的批評なんて、お目にかかったこと滅多にねぇ。
0714Rubyist!
NGNG批評本来の価値を貶めるようなものがね。
批評は創作に比較すれば容易に参加できるから、批評家の本質自体を問われやすい。
批評家は利害・好悪を離れたところの公正さやそれを機能させる自制心が必要だが、今の批評家には欠けてるって事だな。
本来の価値の高い批評を操れるにふさわしい批評家が増えて欲しいね。
0715デフォルトの名無しさん
NGNGじゃあお前が批評してみろ
0716デフォルトの名無しさん
NGNG0717デフォルトの名無しさん
NGNG∩___∩
| ノ ヽ
/ ● ● |
| //// ( _●_) ミ
彡、 ヽ(⌒ヽ/ Ruby、プッ
/ __ \ ヽ
(___) / `ー‐'
0718デフォルトの名無しさん
NGNG0719Rubyist!
NGNG作品として公開されたものが批評されるのは当たり前の事だが、
批評する以前の問題(サンプルを見ただけ、もしくはインストールすらしない、とか。まあ大抵のUNIXには入ってるけどなw
窓厨には敷居が高いかもしれん(pu)な奴が多すぎだ。
食わず嫌いに「批評」はできるのかと。
0720デフォルトの名無しさん
NGNG・Rubyの(言語としての)メリット
- オブジェクト指向の皮を被ったマルチパラダイム
- プロトタイプベースチックなクラスベース(特異クラス・メソッド)
-> 高い柔軟性を持つ
- 充実したシンタックスシュガー
・デメリット
- 実行パフォーマンスが悪い。スピード求めるならC&C++で。
- 作者(matz)が保守的すぎて新しいパラダイムを受け付けなくなっている。
- 構文が複雑。シンプル化も進まない。
(シンタックスシュガーが充実している反面でもあるけど)
かねえ。Ruby2.0でどうなるかだけど、進退窮まっている感じがするよね。
0721デフォルトの名無しさん
NGNGアンタの意見も根拠の無い妄想ばかりでつまらんのだけど。
0722デフォルトの名無しさん
NGNG言語仕様と開発論法
http://pc5.2ch.net/test/read.cgi/tech/1104394930/
0723デフォルトの名無しさん
NGNGHSP vs Ruby
http://pc5.2ch.net/test/read.cgi/tech/1104571259/
0724デフォルトの名無しさん
NGNG0725デフォルトの名無しさん
NGNG【因縁の】DelphiVSHSPVSRuby【対決】
http://pc5.2ch.net/test/read.cgi/tech/1101498622/
0726デフォルトの名無しさん
NGNGHSP厨もRuby厨も頭悪すぎwwwwwwwwww
0727デフォルトの名無しさん
NGNGHSP厨のアホさ加減は半端無いよなw
0728デフォルトの名無しさん
NGNGよくこういった書き込みみるけど、具体的な内容を指摘したものは
いまだかつて1度もないw
0729デフォルトの名無しさん
NGNG日本にとってかなりマイナスだと思う。
0730デフォルトの名無しさん
NGNG他の国のプログラマはオブジェクト指向言語から始めてるのかい?
0731デフォルトの名無しさん
NGNGスクリプトならPython+SDLのPygameとか。
ttp://www.pygame.org/projects/
0732デフォルトの名無しさん
NGNG0733デフォルトの名無しさん
NGNGN88BASICから始めた俺にはかなり不愉快
0734デフォルトの名無しさん
NGNG0735デフォルトの名無しさん
NGNGそれはそういう時代だったからだろ。
俺も最初の言語はBASICだったし。
でも今あえてBASICみたいな言語から始める理由は無いと思うが。
HSPもCも覚える労力はそんなに差はないでしょ。
0736デフォルトの名無しさん
NGNG最初がCだろうがHSPだろうが関係ない
0737デフォルトの名無しさん
NGNG0738デフォルトの名無しさん
NGNG0739デフォルトの名無しさん
NGNG0740デフォルトの名無しさん
NGNGブロック扱うためにイテレータとか言って特殊構文導入しちゃって必死すぎw
それでも全然自己記述出来ないのな。Lispには遠く及ばないな。
Smalltalkの統一性にも全然及ばないwww
ユーザーも各スレ荒らしまくって最悪だしな。
0742デフォルトの名無しさん
NGNG不勉強にして知らなかったからちょっと調べてみた。
http://www.namikilab.tuat.ac.jp/~sasada/prog/parrot-intro.html
とりあえずPerl用に作られたVMなんすね。
この種のものってJVMじゃダメなのかな…
面白そうなのでもうちょっと調べてみます。いい拾い物をしたw
0743デフォルトの名無しさん
NGNGそうだったんだ…
0744デフォルトの名無しさん
NGNG>Parrot の演算は多態(polymorphic)ではない。
>アセンブラがちょっとトリッキーなことやって対応してる。
こういう変なHack入れるとグダグダになりそうな気がするんだけどなあ…
0745デフォルトの名無しさん
NGNGただオペランドの種類で命令をリダイレクトしてるだけとちゃうの?
その程度ならさほど問題にはならなそうだけど
0746デフォルトの名無しさん
NGNGうん、ちょっと読み進めたらまさにそう書いてあったorz
0747738
NGNG俺の受けた印象では、Groovyとか、違う言語からJavaバイトコードを
使おうってのとか、.NETのCLRとかも含めて、そういう
ものと似た動きに見えるんですがどうですか?
ならまじめに勉強して損はないかなと思うんですが。
最近そういう動きが盛んだな…
0748デフォルトの名無しさん
NGNG単純な加算などでさえも。
0749デフォルトの名無しさん
NGNG0750デフォルトの名無しさん
NGNGhttp://www.namikilab.tuat.ac.jp/~sasada/prog/parrot-intro.html
0751デフォルトの名無しさん
NGNG0752デフォルトの名無しさん
NGNG0753デフォルトの名無しさん
NGNG0754デフォルトの名無しさん
NGNGperl6はrubyの劣化コピー
0755デフォルトの名無しさん
NGNG0756デフォルトの名無しさん
NGNG0757デフォルトの名無しさん
NGNGhttp://dictionary.goo.ne.jp/search.php?MT=parse&kind=ej&mode=0&base=1&row=0
0758デフォルトの名無しさん
NGNG0759デフォルトの名無しさん
NGNG言語仕様と開発論法
http://pc5.2ch.net/test/read.cgi/tech/1104394930/
こちらへどうぞ
0760デフォルトの名無しさん
NGNG流行ってるわけでも無いVMの勉強って
損得で言ったらどっちになるか微妙だとおもうぞ。
0761デフォルトの名無しさん
NGNG0762デフォルトの名無しさん
NGNGつInline::Ruby
0763デフォルトの名無しさん
NGNGやっぱ、やるならjavaのVMでつか?
0764デフォルトの名無しさん
NGNGとりあえずJavaが無難じゃない?
0765デフォルトの名無しさん
NGNG0766デフォルトの名無しさん
NGNG0767デフォルトの名無しさん
NGNG0768デフォルトの名無しさん
NGNG0769デフォルトの名無しさん
NGNG0770デフォルトの名無しさん
NGNG0771デフォルトの名無しさん
NGNG0772デフォルトの名無しさん
NGNG勝手に作ったら特許とかに引っかかりますかね?
0773デフォルトの名無しさん
NGNG先ず作ってから心配しろ。
0774デフォルトの名無しさん
NGNG作った後に駄目だったらキツイでしょ?
0775デフォルトの名無しさん
NGNGA.言語仕様自体は特許にならないから大丈夫。
ただし、付属しているライブラリは特許・著作権で保護されるので
そっちの回避法を考えておかないと駄目。
0776デフォルトの名無しさん
NGNGコンパイラ本に良く載ってる実行時環境(スタックマシンとかレジスタマシンとか)っていうのは
何のためにあるんですか?最適化をしやすくするため?
実行時環境とか用意しなくても直接構文木を記号表と照らし合わせながら
実行コードに変換していく様な事はできないんですか?
0777デフォルトの名無しさん
NGNG0778デフォルトの名無しさん
NGNG0779デフォルトの名無しさん
NGNGあなたには無理です
0780デフォルトの名無しさん
NGNG0781デフォルトの名無しさん
NGNGただ単純に説明を楽にするためじゃないの?
「勘違いでした」って何を?
0782デフォルトの名無しさん
NGNG仮想マシンのスタックマシンと、CとかPascalのスタックベースメモリ割り当てを勘違いしてました。
0783デフォルトの名無しさん
NGNGありがとうございます。
とりあえず勉強を兼ねてVBコンパイラ作ってみます。
0784デフォルトの名無しさん
NGNGで、コンパイラをつくってみよ〜
0785デフォルトの名無しさん
NGNGbnfを使って出来ることって字句解析、構文解析までですよね?
意味解析、中間コード生成までを定義できるようなbnfにしたいのですが、
そのような拡張がされたbnfの構文というのはあるのでしょうか?
0786デフォルトの名無しさん
NGNGとりあえず属性文法を学ぶのが良いと思う。
0787デフォルトの名無しさん
NGNGわりと参考になった本を紹介しときます。(関係者じゃないですよ、念のため。)
http://www.amazon.co.jp/exec/obidos/ASIN/4320027981/249-0278157-3285121
0788デフォルトの名無しさん
NGNGftp://ftp.is.titech.ac.jp/pub/Rie/
0789デフォルトの名無しさん
NGNG手元の本でちょっと調べてみましたが
意味解析以降は格段に難易度上がりますね。
ちょー難い!
0790デフォルトの名無しさん
NGNG0791デフォルトの名無しさん
NGNG0792デフォルトの名無しさん
NGNG0793デフォルトの名無しさん
NGNGつまり、bnfのような定義ファイルにはできないってこと?
0794デフォルトの名無しさん
NGNG0795デフォルトの名無しさん
NGNGパーサ手書きというのは、実用的なソフトではほとんどナイ。
0796デフォルトの名無しさん
NGNG属性文法の書式を例を踏まえて教えれ。
0797デフォルトの名無しさん
NGNG最近のgccは手書き。
次期rubyも手書きの予定。
0798デフォルトの名無しさん
NGNGftp://ftp.is.titech.ac.jp/pub/Rie/more-examples/pascal-S/pascal-S.rie
0799デフォルトの名無しさん
NGNGlexやyaccまでなら聞くけど。
構文解析以降は手書きじゃないか?
0800デフォルトの名無しさん
NGNG0801デフォルトの名無しさん
NGNG言うのは聞かないけれども。
0802デフォルトの名無しさん
NGNG0803デフォルトの名無しさん
NGNG0804デフォルトの名無しさん
NGNG0805デフォルトの名無しさん
NGNGコードジェネレータを全部手書きってのは無いんじゃないかなあ。
最適化とコードジェネレーションについては、
Muchnick: Advanced Compiler Design & Implementation,
Morgan Kaufmann, 1997 が実践的で参考になった。
0806デフォルトの名無しさん
NGNG医者。仮眠明けで起きると誰も居ないでモンスターだらけと説明。
0807デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNG1パスにそんなもん必要ない
0809デフォルトの名無しさん
NGNG0810デフォルトの名無しさん
NGNGおのずと適切な中間コードもわかるはず。それが分かっていない
>>807にはどうせ非最適化コンパイラも作れない罠。
0811デフォルトの名無しさん
NGNGちなみに私は、Cをはじめてまだ1ヶ月です。
0812デフォルトの名無しさん
NGNGプログラミングを初めて1ヶ月?
0813デフォルトの名無しさん
NGNGどの本も何らかのプログラミング言語をマスターしている事を前提に書かれてます。
0814デフォルトの名無しさん
NGNGご存知の方いらっしゃいますか?
0815デフォルトの名無しさん
NGNGそうです。
>813
マスターですか。。。。
K&Rがスラスラ読めるレベルでしょうか?
頑張ります。
0816デフォルトの名無しさん
NGNG手持ちでは…2003年8月号に
「コンパイラの仕組みを理解しよう」って特集があるけど、
そこまで突っ込んでは書いてない。
0817デフォルトの名無しさん
NGNG情報ありがとうございます。
私の手持ちで2003年1月号に「コンパイラの作成」
というそのものズバリの物がありました。
0818デフォルトの名無しさん
NGNG見事にその号が抜けてる orz
どのあたりまで書いてありますか?
0819デフォルトの名無しさん
NGNG昔のインターフェース誌は濃かったなあ
0820デフォルトの名無しさん
NGNG0821デフォルトの名無しさん
NGNGしているじゃないか。
0822デフォルトの名無しさん
NGNGうお、知らなかった…_| ̄|○
01年までですか…。90年代のやつがもう一度読みたいんだけどなぁ
0823デフォルトの名無しさん
NGNG字句解析、構文解析、意味解析、コード生成までが
非常に分かりやすく書かれてます。
20ページくらいでソース付きです。
0824デフォルトの名無しさん
NGNGttp://www.sbpnet.jp/shop/art.asp?newsid=1403
0825824
NGNG0826デフォルトの名無しさん
NGNG0827デフォルトの名無しさん
NGNG上記の本を買おうと思ったら、中身パスカルだったぞ。
他のコンパイラの本もパスカル+Cって内容だった。
Cのみの本はないのか?
0828デフォルトの名無しさん
NGNGその本俺も持ってるし、俺はCしか書けないけど、大体読めるから自分で
書き直せるっしょ。元々そういう意図があるから複数の言語で書いてないん
じゃないの?
0829デフォルトの名無しさん
NGNGなぜCのみである必要が?
パスカルのみでも読めるでしょ
逆に読めないなら問題
0830デフォルトの名無しさん
NGNG無理も無い
パシカル本は今の本屋にどこにも置いてないからね
もしCより簡単だと言われても敬遠するだろう
パスカルで書かれているという事は大抵古い本で、
ポインタ記法とか本ごとに違ってたりするし
構文なのか演算子なのかわからない物もある
.の置き方に一貫性ないし
読んでもただ、混乱するだけである
0831デフォルトの名無しさん
NGNGCみたいにメモリ周りの汚さはなくて、純粋にアルゴリズムを記述しやすい。
0832デフォルトの名無しさん
NGNG0833デフォルトの名無しさん
NGNG綺麗なら読みやすいだろう。
言語を覚えるコストよりもソースを読み解いたり書いたりするコストの方が遥かに高い。
0834デフォルトの名無しさん
NGNG綺麗ならSchemeの方が良い
0835デフォルトの名無しさん
NGNGでは何の話なの?わかりやすく教えて。
0836デフォルトの名無しさん
NGNG0837デフォルトの名無しさん
NGNG0838デフォルトの名無しさん
NGNG関数型言語と手続き型言語では、さすがにプログラミングの定石からして
全く違うだろ。
記法が書籍毎に異なるなんてのは、良くある話。コンパイラ系の書籍だと
BNF 記法が良く出てくるが、あれも書籍毎に微妙に違ったりするし。その
あたりを自分で吸収できないようだと、専門書と取り組むのは難しい。
0839デフォルトの名無しさん
NGNG大学で勉強すれば大抵でくわす話。
0840デフォルトの名無しさん
NGNGそれはあんたはすでにパスカルを知っているから。
またはあんたが十分かしこいから。
よのなかの人間はあんたほど賢くないんだよ。
>>830
はげどう。
Javaが広まった理由のひとつが、「CやC++と見た目が似てるから」。
そのくらい、自分の知ってる言語に似ているかどうかは重要。かしこくない人間にとっては。
0841デフォルトの名無しさん
NGNGま、おまいが読めなかったとしても
CSを志すような人間は大抵おまいより賢いから心配ご無用。
少なくともそんなつまらん理由で萎縮しない程度にはな。
0842デフォルトの名無しさん
NGNG0843デフォルトの名無しさん
NGNG時間の無駄を省けていいじゃん。
大学入試の足切りみたいなもんだと思え(入ったってついてけない奴もいるが)。
0844デフォルトの名無しさん
NGNGこれをターゲットにコンパイラ書いたら面白そう(楽出来そう)。
http://www.parrotcode.org/docs/
0845デフォルトの名無しさん
NGNG0846デフォルトの名無しさん
NGNG0847デフォルトの名無しさん
NGNG0848デフォルトの名無しさん
NGNG作ってもParrotのバグのせいでまともに動かなかったら悲しいぞ。
0849デフォルトの名無しさん
NGNGでかい顔するなぼけ
糞ぺrぇrはしね
0850デフォルトの名無しさん
NGNGif、forなどのキーワードは「keyword」という大きな
括りにするのと、それぞれ「keyword_if」、「keyword_for」
などのように細かく分けるのとどちらがよろしいでしょうか?
0851デフォルトの名無しさん
NGNG0852デフォルトの名無しさん
NGNG作りたい言語似よるが、C や Pascal ライクな言語を作りたければ
後者の方が楽。
0853デフォルトの名無しさん
NGNGhttp://www-6.ibm.com/jp/developerworks/linux/041203/j_l-cpregex.html
0854デフォルトの名無しさん
NGNG参考になるページはありませんか?
A := B + C
GOTO(L)
のような3番地文の中間コード形式の出力までは出来ています。
0855デフォルトの名無しさん
NGNG>>826
0856デフォルトの名無しさん
NGNGx86ならnasmのinfoやIntelのwebサイト、
exeならPE形式、
実際の実装方法はgccのソース
を見ろよ
0857デフォルトの名無しさん
NGNG結構美人
0858デフォルトの名無しさん
NGNGかなりすすけてるよ(´・ω・`)
読んでみますか。
0859デフォルトの名無しさん
NGNG0860デフォルトの名無しさん
NGNGプログラムのデータとしてはどのように持てばいいのでしょうか?
0861デフォルトの名無しさん
NGNGLISPの場合はコードがそのまんま構文木なんだよな。
LISPに慣れてるならLISPと同じ構造を目指すとよい。
でもLISPのセルは普通の言語だとGCないから扱いにくい。
0862デフォルトの名無しさん
NGNGだったら、
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デフォルトの名無しさん
NGNG0864デフォルトの名無しさん
NGNG0865デフォルトの名無しさん
NGNG0866デフォルトの名無しさん
NGNGあれはあくまでも学問。実務はパーサがやってくれる。
0867デフォルトの名無しさん
NGNG構文解析して即コードに落としちゃう場合はともかく、もう一ステージ挟む場合
(最適化するとか)は、いちど明示的にツリー作る必要があるよ。
0868860
NGNGなんとなく考えが具現化してきました。
ただ今一分からないのが、字句解析で得たトークンを
構文解析でtree構造のデータとして持つとして
それを後の意味解析でどのように使うのでしょうか?
0869デフォルトの名無しさん
NGNG単純な最適化だと
add
/ \
2 1
ってツリーがあったら、コンパイル時に計算して 3 に置き換えちゃうとか。
0870デフォルトの名無しさん
NGNG0871デフォルトの名無しさん
NGNGただし1 + a + 2とかをa + 3にはできない
1 + aを読み終えた時点の出力を保留する様な仕組みは
もはや2パスとみなせるし、そこまでするなら木を作った方がいい
0872デフォルトの名無しさん
NGNGエミュレートしたいのですが、メンバオフセットの決め方がよくわかりません。
例えば#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かなり複雑だよ
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仰るとおり理解するのが大変でした。
アラインメント指定された値は、あくまでもその大きさの型が出現した
ときに影響するってことで、それ以下のサイズについても
アラインメント指定された値以下であれば位置調整をしなくてはならない
ということですかね。
> 例えばcharしか持たない構造体はアラインメントが1になる
この言葉でようやくわかりました。
構造体を外から見るだけじゃなくて、その中の基本型まで遡って
把握しないと作れませんね。
お答えありがとうございました。
0875デフォルトの名無しさん
NGNGλ...... λ...... λ......
λ...... λ......
0876デフォルトの名無しさん
NGNGコールすることとかって出来ますか?
0877デフォルトの名無しさん
NGNG0878デフォルトの名無しさん
NGNG0879デフォルトの名無しさん
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デフォルトの名無しさん
NGNG0881デフォルトの名無しさん
NGNG0882デフォルトの名無しさん
NGNGCの型定義をパースしてサイズやオフセットを返すだけの
モジュールでも作れば需要ありそうだな。
C言語作ってるならともかく、自作言語のFFI周りの作成とかでは
誰もがやりたくない部分の1つだし。
0883デフォルトの名無しさん
NGNG理系崩れ向き
0884デフォルトの名無しさん
NGNG廃人ムキ!
0885デフォルトの名無しさん
NGNG既存のC処理系にあわせなければならないなら
offsetofやsizeofを表示するプログラムを生成して
Cコンパイラにやらせるのが楽そうだな。どうせ
どう配置されるかなんて処理系依存なんだし、
いちいち調べるのはかったるい。
0886デフォルトの名無しさん
NGNG久々のヒット、トンクス。
0887デフォルトの名無しさん
NGNGもちろん、条件によりさまざまだと思いますが、
平均的な所を知りたく思います。
お金の話は、禁句かもしれまえんが、
生活が出来ての仕事だと思います。
0888デフォルトの名無しさん
NGNG私は寡聞にして聞かない。
0889デフォルトの名無しさん
NGNG実際に、応募してみれば良いじゃん。
0890デフォルトの名無しさん
NGNG┌─┐
|コ.|
|ン |
│パ│
│ゐ│
│ラ .|
│屋 .|
│ !!.│
└─┤ ∧∧
│ ( `Д)
| ̄ ̄ ̄|─□( ヽ┐U
 ̄◎ ̄ ◎−>┘◎
0891デフォルトの名無しさん
NGNG0892デフォルトの名無しさん
NGNGメーカーのコンパイラ開発部門の社員に過ぎないだろうよ。
サラリーマンとして給料をもらうだけ。
0893デフォルトの名無しさん
NGNG0894デフォルトの名無しさん
NGNGそのサラリーマンの給料が知りたい、って話じゃないの? IT 系といっても
給料はピンキリだからなぁ。
個人的には、職種よりも企業の方が効いて来るに一票だが。Microsoft なら
たぶん高いよ。
0895デフォルトの名無しさん
NGNG0896デフォルトの名無しさん
NGNGおれも、そう思うに1トークン。
ただ、システム系やら(言語を利用した)開発系よりかは
悪いと思われる。
>>892
> 流しのコンパイラ屋や一匹狼のコンパイラ屋
ワロタ
0897デフォルトの名無しさん
NGNG0898デフォルトの名無しさん
NGNG本とかで儲けてるんだろうな。いいなぁ。
0899デフォルトの名無しさん
NGNG0900デフォルトの名無しさん
NGNG0901デフォルトの名無しさん
NGNG0902デフォルトの名無しさん
NGNGあなたもやってみればいいのに。
俺はコンパイラじゃないけど、チャレンジしてるよ。
0903デフォルトの名無しさん
NGNGぶっちゃけ頭の出来が違う。
0904デフォルトの名無しさん
NGNG0905デフォルトの名無しさん
NGNGボクチンの場合、一般のプログラマと変わらないです。
仕事の内容が違うだけ
0906デフォルトの名無しさん
NGNG実は俺もコンパイラ作ってます。
って言っても字句解析までしかできてませんが・・・
つーかコンパイラ作るのって楽しすぎ。
0907デフォルトの名無しさん
NGNGここの住人なら興味深い言語でしょう。
m4スレ
http://pc5.2ch.net/test/read.cgi/tech/1105796351/
0908デフォルトの名無しさん
NGNGOpenMCL が m4 使ってたな。
0909デフォルトの名無しさん
NGNGワロタw
おれも、今の仕事やめて憧れだった
流しのコンパイラ屋でもやろうかな?
0910デフォルトの名無しさん
NGNG(・∀・)イイヨーイイヨーー
0911デフォルトの名無しさん
NGNG0912デフォルトの名無しさん
NGNG0913デフォルトの名無しさん
NGNGあっしはプロトタイプベースのコンパイラ・インタプリタ作成中
ベースオブジェクトの設計にメドがたってきたから、ようやっと
字句解析にいけそう。
文法作るの楽しいよね。
0914デフォルトの名無しさん
NGNG構文解析屋、字句解析屋、コード生成屋
/ / / / / / / / / / / / / /`、 ヽ
./ / / / / / / / / / / / / /=== 、ヽ
/ /_ / / / / / / / / / / / / 、ヽ
|=構 ギ_l ̄||  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄||
|=文∫ =:| || ||
|= 解 コ..:| || ||
|=析 =:| || グツグツ ∧∧ ||┌────────────────
~~~~~~~ | || ==┻== (゚Д゚;) <構文解析屋の新装開店だ、ゴラァ!
| || | ̄ ̄| (|ギ ∪ || \_______________
┌┴┸───────┴─┴┸┐
┌┴─────────────┴┐
└─┬───────────┬─┘
| | ̄ ̄| | ̄  ̄| ....:.:::::|
| | | ..:::::::| | ....::.::.:::|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0915デフォルトの名無しさん
NGNG0916デフォルトの名無しさん
NGNGhttp://www.amazon.co.jp/exec/obidos/ASIN/4781904548/
0917デフォルトの名無しさん
NGNG0918デフォルトの名無しさん
NGNG0919デフォルトの名無しさん
NGNGそれともnasmとかのフロントエンド書いただけ?
0920デフォルトの名無しさん
NGNG0921デフォルトの名無しさん
NGNG0922デフォルトの名無しさん
NGNG0923デフォルトの名無しさん
NGNG0924デフォルトの名無しさん
NGNG浸透していて、利益につながらないorつながりにくいと判断され
てしまっているところが多いみたい。
0925デフォルトの名無しさん
NGNG0926デフォルトの名無しさん
NGNGこっちに移住してやってくれ ↓
http://pc5.2ch.net/test/read.cgi/prog/1071367436/
0927デフォルトの名無しさん
NGNG文(Statement)と式(Expression)の違いは何ですか?
あと、2つの違いは言語に依存しますか?
0928デフォルトの名無しさん
NGNG文は制御構造しか持たず、結果の値はない。
Cは両方あるが、
Lispは式しかない。
0929927
05/01/17 19:39:40,・値を持たないもの→文(Statement)
ということですね。明確な回答ありがとうございます。
言語によっては必ずしも両方持たないものもあるようですが、
この定義が異なるようなケースor言語ってありますか?
それとも、この定義は一般的なものですか?
質問ばかりですいません。
いろいろ調べてはいるのですが、明確に定義or区別しているものに出会えず、
いままでなんとなく津かって来ましたので。。。
0930デフォルトの名無しさん
05/01/17 20:48:43その「いろいろ」に言語仕様書は入って無いのか。
0931デフォルトの名無しさん
05/01/17 22:18:36一般用語としてはそうだけど、
最終的には言語仕様でどう言葉を定義するかによる。
C言語で戻り値voidの関数呼び出しなんて
式なのに値がないかも(void型の値を持ってるのかもしれんが)。
あと、昔オレがCに似た構文のスクリプト言語作ったときは
Cの文に似たものを文と呼ぶことにしたが、文は全て値を持ってた。
0932デフォルトの名無しさん
05/01/17 23:34:26値を返すなら文と呼ぶ意味が無いし
Rubyも制御構造が式だけど用語の整理ができてないみたい
0933デフォルトの名無しさん
05/01/17 23:47:28用語の統一なんて、あって無いようなものだろ?
0934デフォルトの名無しさん
05/01/17 23:50:50確かに、式に含まれる式の種類や、文に含まれる文の種類は
細かく書かれてあったが、式自体の定義と文自体の定義(そ
の違いを含む)は書かれてないな。
0935デフォルトの名無しさん
05/01/17 23:55:23区別はつくでしょ。
式の中にif文やfor文置けるわけじゃないし
そういう拡張したならif式とかfor式と呼ぶべき
0936デフォルトの名無しさん
05/01/17 23:58:18Rubyリファレンスはif式だとかif文だとか統一されてない。
あれはいくらなんでもまずい。
0937デフォルトの名無しさん
05/01/17 23:59:07BNFで書かれたものじゃ不足か?
0938デフォルトの名無しさん
05/01/18 00:05:58K&R日本語訳読んでるならp.277の付録A9に書いてあるぞ
>実行された文はその効果を残すが、値は持たない。
0939デフォルトの名無しさん
05/01/18 00:16:07てちゃんと書かれてるだろ。
付録Aの参照マニュアルは一番お世話になる章だと思うんだが。
0940931
05/01/18 10:02:07もちろんそのときは文は式の一種。
Cの構文解析やらのプログラムを転用するから、
そこで「文」を他に言葉に変換するのは手間。
実装で使う単語と仕様書で使う言葉を分けるという手もあるが、
内輪でしか使わないやつだから統一したほうがよろしい。
仕様書では明示的に「文という言葉を普通じゃない意味で使う」と断った。
0941934
05/01/18 21:31:21お前の理論だと、どのような言語もマニュアルならいらんということになるな。
>>938
ん?ページあってるか?
しかもそのような行はないぞ?
>>939
A7は評価の順序やら、結合など細かく書かれてあるが、値を持つとは書かれていない。
A9も逐次実行されることぐらいしか、文全体の説明は書いてないぞ。
0942デフォルトの名無しさん
05/01/18 21:54:460943デフォルトの名無しさん
05/01/18 22:03:390944デフォルトの名無しさん
05/01/18 22:13:060945デフォルトの名無しさん
05/01/18 22:21:47プログラムは記号列の形で形式的に定義され、さらにそのプログラムの
意味を定義することで言語として定義されます。
(ただし完全に形式的に意味が定義されている実用言語はほとんど無い)
構文解析的に再帰的に定義された式や文は、
表示的意味論の段階で”環境(←変数と変数の値との写像)”が与えられ、
式(←数理論理学の言葉では”項”)の値は一つに定まるし
文の意味付けも”環境から環境への写像”(実質は>>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「詭弁のガイドライン」より。
・自分に有利な将来像を予想する
・主観で決め付ける
・ありえない解決策を図る
今のあなたはこの辺が該当します。
予想しうる今後の展開は、
・レッテル貼りをする
・勝利宣言をする
・知能障害を起こす
辺りです。
0947デフォルトの名無しさん
05/01/18 23:29:23・詭弁のガイドラインを持ち出してくる
0948927
05/01/18 23:47:25ご丁寧にありがとうございます。
かなり難解な部分もありましたが、犬の例え話はなるほどそうですね。
ふと、感じたのですが、私のような初心者にはややこしく感じるのは、
ひょっとして言葉が直観的じゃないのが原因なんでしょうか?
うまく説明できませんが、
・(Statements)→文は、値をもたない点を含めて納得しやすいのですが、
・(Expression)→式は、値を持つ点を含めて、何か直観的でないと感じます。
式と言われると、y=ax^2+bx+c のような(数学)式を連想してしまいます。
左辺&右辺にはそれぞれ値があるのですが、式自体には値は無いですよね…
(↑数学的に)
なれですかね?
0949デフォルトの名無しさん
05/01/19 00:16:560950デフォルトの名無しさん
05/01/19 00:23:36数学の式の"="は非常に使い方が曖昧で、"="は最低でも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>式と言われると、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の中身になる。
0952945
05/01/19 01:16:34y=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ここでいうy=ax^2+bx+cは、プログラムの代入ではなく、
数学の等式だと思うぞ。放物線。
>>948
数学でもax^2+bx+cは式だと思うぞ。
ってことで、漏れ的にはそれほど違和感はない。
言葉って言うのは概念につけられた単なるラベルなわけで、
極論を言うと重要なのは概念であって言葉じゃない。
「犬の尻尾を足と呼ぶことにしても足は5本にならない」
ってのはラベルを取り替えても概念は変わらないという意味だと思う。
まあ、言葉に振り回されるのもほどほどにってことで。
とは言いつつも、プログラムにおける文と式という言葉の起源はちょっと知りたい。
0954デフォルトの名無しさん
05/01/19 01:36:39極論を言うと重要なのは概念であって言葉じゃない。
なにを式と呼ぼうが、なにを文と呼ぼうが作者の勝手。
まあ、言葉に振り回されるのもほどほどにってことで。
0955デフォルトの名無しさん
05/01/19 01:40:29SVO
S=O(BASICの場合)
if文
式は演算子と優先順位と結合規則に束縛
a+b*cはa+(b*c)
だが、たしかにこんなことはどうでもいい
記号にも興味ない
興味があるのは動くプログラム
0956デフォルトの名無しさん
05/01/19 01:41:450957デフォルトの名無しさん
05/01/19 02:21:32極論を言うと重要なのは概念であって言葉じゃない。
ってことで、皆が文と呼ぶものを、ここでは式と呼ぶことにします
漏れ的にはそれほど違和感はない。
0958デフォルトの名無しさん
05/01/19 02:30:37>>953がレッテルならぬラベルを貼ってくれたから、
全部集まって神龍が現れるでFA?
0959デフォルトの名無しさん
05/01/19 08:47:37>>958
詭弁のガイドラインを出してくるお前も
・レッテル貼りをする
・勝利宣言をする
・知能障害を起こす
に該当する。
つうか、今時詭弁のガイドラインって
0960デフォルトの名無しさん
05/01/19 11:46:26┌─┐
|記|
|号 | 業界での字(あざな)は”ウルフ”
│に│ ↓
│興│
│味 | それほど違和感はない♪〜
│な .|
│い│ / ̄
└─┤ ∧∧ <極論を言うと重要なのは概念であって言葉じゃない
│ ( `Д) \_ なにを式と呼ぼうが文と呼ぼうが漏れの勝手
| ̄ ̄ ̄|─□( ヽ┐U
 ̄◎ ̄ ◎−>┘◎
0961デフォルトの名無しさん
05/01/19 12:04:02デバッグできないプログラマに
そのまま当てはまるな
0962デフォルトの名無しさん
05/01/19 14:03:39作者(仕様策定者)の勝手というのは正しいのでは?
0963デフォルトの名無しさん
05/01/19 14:21:330964955
05/01/19 14:41:15俺の文章になにか不満あったのかな?
0965デフォルトの名無しさん
05/01/19 15:22:55そうだけど、
無意味に普通じゃない意味で使ってると誰もついてこず
ロンリーウルフになっちゃうぜという話。
0966デフォルトの名無しさん
05/01/19 15:44:070967955
05/01/19 16:28:310968デフォルトの名無しさん
05/01/19 16:50:42↑
たしかにこんなのどうでもいい
('∀`)ニヤニヤ.. . .。oO(束縛?プッ
0969955
05/01/19 16:57:530970デフォルトの名無しさん
05/01/19 17:03:48>>962の脳内仕様書によって決められるわけだが、「式」とか「文」とかはなぁ…。
まぁ、そういう「コンパイラ屋」さんは駅前で
詭弁でも売って(売値はついても買値はつかないだろうけど)、
一人でやっていくしかないだろうねぇ。。
0971デフォルトの名無しさん
05/01/19 17:04:500972デフォルトの名無しさん
05/01/19 17:06:110973デフォルトの名無しさん
05/01/19 17:06:43HSPスレへお帰りください。
0974デフォルトの名無しさん
05/01/19 17:07:340975デフォルトの名無しさん
05/01/19 17:09:400976デフォルトの名無しさん
05/01/19 17:11:250977デフォルトの名無しさん
05/01/19 17:13:030978デフォルトの名無しさん
05/01/19 17:13:370979デフォルトの名無しさん
05/01/19 17:16:500980デフォルトの名無しさん
05/01/19 17:17:17「式」とか「文」だって仕様策定者なら勝手に決められる。
0981デフォルトの名無しさん
05/01/19 17:21:09これが違うという方こそ詭弁だろ。
0982デフォルトの名無しさん
05/01/19 17:21:17死ねよ。
0983デフォルトの名無しさん
05/01/19 17:22:070984デフォルトの名無しさん
05/01/19 17:22:580985デフォルトの名無しさん
05/01/19 17:23:130986デフォルトの名無しさん
05/01/19 17:23:33消化しきれなかったとうもろこしの粒があって、なんだかちょっぴり幸せでした…^^
0987デフォルトの名無しさん
05/01/19 17:25:500988デフォルトの名無しさん
05/01/19 17:27:37http://d.hatena.ne.jp/yaneurao/20050123
0989デフォルトの名無しさん
05/01/19 17:29:490990デフォルトの名無しさん
05/01/19 17:30:42なんせ式と文だけでこれだけ盛り上がれるんだからな。
0991デフォルトの名無しさん
05/01/19 17:30:47それに文句言う奴は、言語の仕様でいろんな用語の意味が定められているのは
無効といってるのと一緒。
そういう仕様を持った言語なんて腐るほどあると思うが。
0992デフォルトの名無しさん
05/01/19 17:32:040993デフォルトの名無しさん
05/01/19 17:33:090994デフォルトの名無しさん
05/01/19 17:33:360995デフォルトの名無しさん
05/01/19 17:34:12もちろんな。
ただし、値を返すものを「文」と定義しただけでは、デタラメには該当しない。
0996デフォルトの名無しさん
05/01/19 17:35:120997デフォルトの名無しさん
05/01/19 17:36:56以後は、心と身体・メンタルヘルス板でドゾ
0998デフォルトの名無しさん
05/01/19 17:37:26それは仕様で定められてるのだから仕方がない。
作者の勝手なんだよ。
デタラメをやらない限りな。
0999デフォルトの名無しさん
05/01/19 17:37:261000デフォルトの名無しさん
05/01/19 17:38:2010011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。