『コンパイラ・スクリ ..
[2ch|▼Menu]
256:デフォルトの名無しさん
02/11/07 08:20
(中身的に変んないけど)Cに変換すると
scmobj_t hoge_read(scmobj_t s) {
 scmobj_t x = s;
 scmobj_t stack = nil;
 tail_recursive_loop:
 if (pairp(x)) {
  if (car(x) == make_symbol("object")) {
   stack = cons(list2(cadr(x),car(x)),stack);
   x = cddr(x);
   goto tail_recursive_loop;
  } else if (car(x) == make_symbol("end")) {
   if (nullp(stack))
    return error("Syntax-error - Corresponding 'object' is required :",s);
   if (pairp(cdr(stack))) {
    x = cdr(x);
    stack = cons(cons(reverse(car(stack)),cadr(stack)),cddr(stack));
    goto tail_recursive_loop;
   } else {
    x = cdr(x);
    stack = reverse(car(stack));
    goto tail_recursive_loop;
   }
  } else {
   stack = cons(cons(list2(car(x),caddr(x)),car(stack)),cdr(stack));
   x = cdddr(x);
   goto tail_recursive_loop;
  }
 } else if (pairp(stack) && pairp(car(stack)))
  return error("Syntax-error - 'end' is required :",s);
 return stack;
}


257:デフォルトの名無しさん
02/11/14 06:59
>>245
Expression Templateをはじめ各種のテンプレート・メタ・プログラミングは
知ってたけどPaser Generatorにまで行きつくとは。 
 カ コ イ イ ! !
テンプレートらしく解析対象の列の要素型がパラメタ指定できるのもカコイイ!
(char, w_charに始まってユーザー作成のクラスまで)
字句解析器も含んでるしね。

当方Java(正確にはバイトコード)のPartial Evaluationを実装中なのだが、
Javaに演算子多重定義が導入されていれば、
合わせ技で同じようなことが狙えたのになァ。惜しい。
(メソッド呼び出し式で書けば良いわけだが、カッコ良さが大いに減る。)

258:デフォルトの名無しさん
02/11/17 16:17
>>257
でも、あんまり真剣な用途には使えないよね。

実行時にパーザ生成するんだったら、文字列で文法与えても良いな。

259:祐一ゴン
02/11/17 19:39
やぁ、ぼく押金さん(*´∀`*)ノ
中学の時からポカリの粉を麻薬と思って鼻から吸ってたけどヽ(`Д´)ノ ウワァァン!!全然トリップできないや!最近初めてその事実を知ったよ
今部屋をテラフォーミングしたら鼠の干からびた死体が出てきたよ、あまり旨くなかったよ


260:デフォルトの名無しさん
02/11/18 04:16
パスカルとベーシックってどっちが作りやすいですか?

261::−)
02/11/18 07:12
pascal→delfy
ベーシック→HSP

HSPはタダの開発環境です。デルフィは10万円くらい?

262:デフォルトの名無しさん
02/11/18 11:55
たとえば、関数呼び出し
a(b(c(d())));
ってのをなんらかの中間コードにしてあって、
これを1パスでコード生成できるの?
(最適化はどうでもいい)

a();
のコード生成はできるけど、
a(b());
のようにネストするとできなくなって困ってます。

263:デフォルトの名無しさん
02/11/18 12:01
>>262
ちょっとは考えろ
つーか、お前の言う中間コードって何のためにあるのさ

264:デフォルトの名無しさん
02/11/18 13:15
>>262
> ってのをなんらかの中間コードにしてあって、
> これを1パスでコード生成できるの?

「これ」というのが「中間コード」を指しているのなら、
どのような「中間コード」なのか示してもらわないと。

) を検出したタイミングでコード生成すりゃいいだけの
話なんだけど。

265:デフォルトの名無しさん
02/11/18 17:40
バイトコードバイトコード!

266:デフォルトの名無しさん
02/11/19 00:50
>>261
デルファイじゃないのか?Delphi
嘘教えるなよ

267:デフォルトの名無しさん
02/11/19 01:10
>>261はどうみても無知だろ

268:デフォルトの名無しさん
02/11/19 03:22
>>260はコンパイラ作るならbasicかpascalどっちを作ったほうがいいかって
いってるんだろ。どっちだろう、俺はベーシック知らないからなんとも
いえん。

269:デフォルトの名無しさん
02/11/19 03:26
コンパイラならPascalだろうが、
インタプリタならBasicの方が楽だろう。
昔のBasicインタプリタは4KBくらいだった。

270:デフォルトの名無しさん
02/11/19 03:59
ベーシックインタプリタのコードってないの?

271:デフォルトの名無しさん
02/11/19 05:11
>>271
ほれ
URLリンク(homepage2.nifty.com)

272:デフォルトの名無しさん
02/11/19 11:09
>>260-270
…この21世紀になんでその2択に拘るんだw。

273:257
02/11/19 11:13
>>258
使えないかねぇ…。この辺の技術には期待したいトコロなんだけどなぁ。
私も使ってみたわけではないので大丈夫と言い切れるもんではないんだが。

実行時というか、コンパイル時にテンプレートの展開動作を利用して
パーザが作られるようなんだが。

274:デフォルトの名無しさん
02/11/21 13:10
>>270
ギコBASICは参考にならないですか?

275:デフォルトの名無しさん
02/11/21 14:05
この辺は?
URLリンク(member.nifty.ne.jp)

276:デフォルトの名無しさん
02/12/03 17:38
bisonが吐き出したコードってなんでVC++でコンパイル通らないんだ?
激しく鬱…

bison++/flex++に乗り換えるかのぉ。ドキュメント少なすぎだが・・・

277:デフォルトの名無しさん
02/12/03 18:48
>276
> bisonが吐き出したコードってなんでVC++でコンパイル通らないんだ?
gcc 使え、というお達しかと……。ところで byacc とか kmyacc はどう?

278:276
02/12/04 14:34
正確にはC++ソースとしてコンパイルしようとすると、VC++には入ってない(おそらくPOSIX互換の?)インクルードファイルを要求されてコンパイルできません。
まぁ、別にオブジェクト指向な解析器が作りたいというわけではなく、ただアクション書くのにクラスとか使いたいだけなんだが…

何かいい方法あったらキボンヌ!というか、bison++/flex++の日本語ドキュメントなんか激しくほすぃかも

279:デフォルトの名無しさん
02/12/04 14:47
>278
include 外せばいいんじゃないの?

280:デフォルトの名無しさん
02/12/04 19:38
>279
それだと毎回 *.y からコード生成するたびに書き換えが必要になるから、
ダミーのヘッダファイルをでっち上げるに一票。

っつか、どうしても再入可能にしたいとかで bison の機能が必須でなければ、
bison 以外の yacc 互換処理系を試す方が幸せかも知れんが。

281:278
02/12/05 01:17
>>280
bison以外ならC++ソースとしてビルドできるんですか?

今日はbison++/flex++試しマスタ。今度はVC++だとエラー出まくって全然ビルドできない罠。

byaccとkmyacc試してみるかなぁ。

282:デフォルトの名無しさん
02/12/05 08:55
yaccの使い方教えろや

283:bloom
02/12/05 09:10

URLリンク(www.agemasukudasai.com)

284:デフォルトの名無しさん
02/12/05 09:23
coco/r使えよ

285:デフォルトの名無しさん
02/12/05 12:01
coco/rって何か教えろや

286:デフォルトの名無しさん
02/12/05 15:39
うえーんコンパイラフレームワークキボン( ●д●)

287:デフォルトの名無しさん
02/12/05 16:53
>>286
lex + yacc + RTL(gcc)じゃ駄目か?

288:デフォルトの名無しさん
02/12/05 16:56
yaccかbisonについて優しく解説してるサイトはありませんか?
または本でも。

289:デフォルトの名無しさん
02/12/05 18:16
ちょっと聞いていいですか?
このスレ、結構人が訪れているみたいなんだけれど、
実際にコンパイラレベル(変な言い方だけど)のものを作ってる、もしくは作った人っています?
自分はスクリプトぐらいなら、何とかいけそうなんだけれど、
コンパイラまでくるとかなり大変じゃないですか?

290:デフォルトの名無しさん
02/12/05 19:34
仮想的なスタックマシンとかのコンパイラなら
作ってる人は沢山いると思うよ。

291:デフォルトの名無しさん
02/12/05 19:40
>288
オライリーの lex & yacc 本

>289
アセンブラを出力させるなら、そんなに面倒じゃない。実行できるバイナリを出力
しようと思うと、山のような詳細に追われて力尽きる。

292:デフォルトの名無しさん
02/12/05 20:17
インストラクションコードへの変換が面倒だなあ。
テーブル化するのが。

293:デフォルトの名無しさん
02/12/06 07:28
変な聞き方してしまいました。
コンパイラといっても仮想マシンコードに変換するスクリプトコンパイラだってあるし。
ネエィテブなアセンブルや直接、実行形式を吐くコンパイラのことを聞いたつもりでした。

294:ろうひ男爵
02/12/13 20:28
>>289
自分は構造化BASICで186のDOSの.COMを出力する物を作ったよ。
今は暇を見つけて簡易的なC言語コンパイラを作ってるよ

295:デフォルトの名無しさん
02/12/13 20:34
だれか僕のためにCコンパイラのソースみせてください。
Cじゃなくてもパスカルでもベーシックでもいいっす。
( ̄人 ̄)オ・ネ・カ・゛イ♪ヽ(* ̄〓 ̄*)ノ^☆ブチュゥゥ♪

296:デフォルトの名無しさん
02/12/13 20:41
ギャーーーーー

297:デフォルトの名無しさん
02/12/13 20:56
>>295
URLリンク(gcc.gnu.org)

298:デフォルトの名無しさん
02/12/13 21:15
>>295
ほれ

#include <stdio.h>
main()
{
printf("逝ってよし");
}


299:デフォルトの名無しさん
02/12/13 21:33
ウワァァァァァァヽ(`Д´)ノァァァァァァン!

300:ろうひ男爵
02/12/14 17:55
>>295
BASICで、

[ラベル:] if 比較式 goto ラベル
[ラベル:] print "メッセージ"
[ラベル:] 代入式

でよかったら、構文解析もほとんどいらないし簡単じゃない?
改行で行末にして、変数の頭にRをつけてR10とかすれば、
悩むところはないと思うよ。

パスカルだとラベルを読み込むときに細工すればLL(1)だよね、
そんなに難しくないはずだよ。
Cにしろパスカルにしろなにがしらの本を読んだ方が良いんじゃない?

言語はどのレベルの物を作ろうとしてるの?
それと、実行環境はスクリプトで中間言語に落としての実行環境?

301:デフォルトの名無しさん
02/12/14 19:56
>295
どうせ渡されたところで読めない、に 1 票。

言語処理系を作るのが初めてなら、とりあえず「UNIX プログラミング環境」でも
買ってきて hoc の実装追ってみれば?

302:デフォルトの名無しさん
02/12/14 20:38
つーかコンパイラのソースが見たいんならgccなりOpenWatcomなりがあるわけで。
それぐらい自分で探せヴォケつー。

303:デフォルトの名無しさん
02/12/14 21:05
bccが一番読みやすいなり

304:デフォルトの名無しさん
02/12/14 21:24
>302
いきなり gcc は厳しすぎ。

10年前だと「アルゴリズム+データ構造=プログラム」読めというところだが、
さすがに古いよな…。

305:デフォルトの名無しさん
02/12/14 22:29
URLリンク(www.amazon.co.jp)
はどうよ? インタープリタだけど。

306:デフォルトの名無しさん
02/12/14 22:31
たけーんだよバカ

307:デフォルトの名無しさん
02/12/15 00:57
専門書の類は、どれもそんなもんだ。諦めれ。

308:デフォルトの名無しさん
02/12/15 07:18
一応タダで読めるけどな。
URLリンク(i.loveruby.net)

309:ろうひ男爵
02/12/20 04:02
Cマガでコンパイラのことをやってますね。
演算子順位法とLL(1)をざらっと、LALRの概説です。
計12ページぐらいだったので、ここにいる方には物足りませんが、
読みやすかったので、人に聞かれた場合にはイイかも。

310:デフォルトの名無しさん
02/12/20 04:16
スレリンク(lobby板)
これよんでみれ!

311:デフォルトの名無しさん
02/12/20 04:44
えっ、bisonで生成したコードってVC++じゃ、
コンパイルできないのですか?
じゃあ、かわりにVC++で通るyacc互換でお勧めってあります?
仕事でも使うかもしれないので商用OKだとありがたいのですが。

312:デフォルトの名無しさん
02/12/20 04:56
GC(ガベコレ)についてちゃんと勉強してみたいのですが、
何かいい書籍はありますか?今は少しづつですが、gccに含まれている
Boehmのソースで勉強してますがなかなか思うように進みません。

VMにそのようなものが書かれているものがあればそれでもOKです。
よろしくお願いします。

313:デフォルトの名無しさん
02/12/20 06:48
>>312
とりあえず、>>305に紹介されてる本読むとか。

314:デフォルトの名無しさん
02/12/20 09:45
>>309
概説でしかないし、yaccはちょこっとだけしか載ってない。
作るための特集じゃなくて、基礎知識をお勉強するための記事だった。
という印象。

315:デフォルトの名無しさん
02/12/20 09:47
>>311
VCでコンパイルできなかったっけ?
まぁいいや。

URLリンク(www.kohsuke.org)
これなんかどうよ。使った事無いけど。

316:ろうひ男爵
02/12/20 13:09
>>314
さすがにあのページ数だと、1つでも掘り下げるのは難しかったみたいですね。
その中では演算子順位法が分かりやすかったと思います。

317:デフォルトの名無しさん
02/12/20 13:40
>>311
通るよ。

でもbisonで生成したコードにはGNUのテンプレートが含まれるので、商用はま
ずかったと思う。


318:デフォルトの名無しさん
02/12/20 22:12
>>312
書籍じゃないけど。
URLリンク(www.dcs.qmul.ac.uk)


319:デフォルトの名無しさん
02/12/21 01:10
>>317
出力されたコード見れば分るけど 1.24 以降は特例として GPL 適用外になってる。

320:デフォルトの名無しさん
02/12/21 08:09
>>319
あ、変わったんだ。サンクス。

321:デフォルトの名無しさん
02/12/21 18:09
bisonを使った宿題が出ているのですが、
ここでそのことについて質問してもいいでしょうか?

322:デフォルトの名無しさん
02/12/21 23:16
>>321

>yaccやlexの使い方やら言語仕様やらの話題。
だから、宿題丸投げじゃなきゃいいと思うよ。


323:デフォルトの名無しさん
02/12/22 01:11
>>321
 何か本を入手した?(購入するのも、図書館で借りるのも可。)もしまだなら、
   書名:UNIX Literacy Series Vol.12 UNIX yaccとlexの使い方
   発行所:HBJ出版局
   著者:田中正広
   ISBN:4-8337-8728-8
を入手して読んでみるといいYO!現在これ読んで某課題と格闘中(^^;
 で、そういった本を読んでから質問するのなら十分OKかと。>>322に同意

324:デフォルトの名無しさん
02/12/22 01:13
スクリプト言語でアセンブラ処理系は作れるのか?

325:デフォルトの名無しさん
02/12/22 01:28
>124
作れるよ

326:デフォルトの名無しさん
02/12/22 11:56
最近、Flex&Bisonをいじり始めました。
まだ、基本概念を勉強中なのですが、Flex&Bisonを使った「C++」用の
チュートリアルや簡単なサンプル実装などないでしょうか?
「C」での実装はいろいろあるんですが、自分はC++で実装したいの困ってます。
C++での解説も申し訳ない程度にはあるんですが、やっぱりサンプルがあると助かります。

327:デフォルトの名無しさん
02/12/22 12:04
スクリプト言語でアセンブラ処理系ってのもいみなさそうだな。
C言語をスクリプト言語として動くように作ったことはあるが。

328:デフォルトの名無しさん
02/12/22 14:09
>>327
意味あるよ

329:デフォルトの名無しさん
02/12/22 14:52
>>328
新規チップの設計用とか?w

330:デフォルトの名無しさん
02/12/22 15:38
>329
ユーザにアセンブラ処理系の機能拡張をさせる場合には、スクリプト言語を
そのまま使えるのは嬉しいかも。自前でマクロ言語作るのって手間だし、マ
クロの設計がダサいとユーザの不満もたまるし(w

ただ、往々にしてバイナリ入出力の扱いって C, C++ の方が楽なんだよね。

331:デフォルトの名無しさん
02/12/22 18:58
Cマガの特集見ました。
よしこれから面白くなるってところで、終わってました。
期待してたのにちょっと悲しい。

332:321
02/12/22 21:22
自己解決しました。
皆さん、ご迷惑をおかけしました。

333:デフォルトの名無しさん
02/12/23 00:22
URLリンク(catalog.compilertools.net)
このあたりはどうかな。


334:デフォルトの名無しさん
03/01/02 18:47
RTLでいいですか?

335:デフォルトの名無しさん
03/01/02 19:45
あははコンパイラを作るのって楽しいなぁ(´∀`)

336:デフォルトの名無しさん
03/01/02 19:48
YACC link
URLリンク(www2.dewa.or.jp)

337:デフォルトの名無しさん
03/01/04 01:51
>336
チクショー!!
まんまとだまされたぜ。

338:デフォルトの名無しさん
03/01/04 08:38
山形オートキャンパークラブ(´д`;)

339:中卒
03/01/04 14:37
ナカータ育男の本でわけわからん数式が出てきてるんですがどうにかなりませんか?

340:ろうひ男爵
03/01/04 20:02
>>339
頑張って、勉強するしかないのでは。
もしくは、より簡単な、今月のcマガの特集とか、
コンパイラの仕組み 渡邊 坦 著
とかはどう?

341:デフォルトの名無しさん
03/01/04 20:23
「モナーのコンパイラスレ出張所」ページでも作るか。
AAで語るFSAとか。ネタよろしこ。

342:名無しさん
03/01/05 10:35
>>339
その本は悪魔の本なので除霊する必要があります。早急にこちらへ
送ってください。
# 一万えんもする本なんて買えねーよ。

343:デフォルトの名無しさん
03/01/09 02:50
名スレの予感

344:デフォルトの名無しさん
03/01/09 03:32
>>53
いいんだよ。気にしないで。
まさゆきが嬉しそうだから。

286 名前:ひろゆき ?3SHRUNYAXA 投稿日:03/01/08 17:56 ID:MVMcp6tb
     ♪___
   ♪  ヽ=@=ノ¶  タイーホ
     ヽ( ・∀・)ノ   タイーホ
         (  へ)    ミンナ タイーホ
          く       タイーホ
   ♪  ___
     ♪ヽ=@=ノ ¶ タイーホ イッテヨシ
      ヽ(・∀・ )ノ  タイーホ
         (へ  )    オマエラ モウ
             >    ダメポ



345:デフォルトの名無しさん
03/01/09 04:15
ID:ZBsKvw39 (゚∀゚)アヒャヒャ
ID:fh6iaOXC (゚∀゚)アヒャヒャ

346:デフォルトの名無しさん
03/01/09 14:17
荒すな

347:デフォルトの名無しさん
03/01/09 14:21
test

348:デフォルトの名無しさん
03/01/09 14:32
自分が作るほどには2ちゃんねる掲示板は必要ないと。

まあ、遊びでしかないからね。

仕事の合間にやってるだけだろ。

349:デフォルトの名無しさん
03/01/09 17:48
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
──────────────
Keep your thread alive !
スレリンク(software板)l50
──────────────

350:デフォルトの名無しさん
03/01/09 20:46
>>200は原田先生に聞いてみた?

351:デフォルトの名無しさん
03/01/09 23:03
私はは匿名掲示板なんて無くてもいいのだが。
自分の発言に責任を持つのは当然だと思います。

352:デフォルトの名無しさん
03/01/10 00:56
これからは、心を入れ替えて良い子にします。
よろしくお願いします。

353:デフォルトの名無しさん
03/01/10 09:36
>>62
だれの目から見てもどうかではなく、裁判所が判断してどうかってこと
なんだよね。
だから、「名誉を毀損した」ってことが確定するのは、判決した瞬間なのよ、、、


354:デフォルトの名無しさん
03/01/10 09:57
>>62
だれの目から見てもどうかではなく、裁判所が判断してどうかってこと
なんだよね。
だから、「名誉を毀損した」ってことが確定するのは、判決した瞬間なのよ、、、


355:デフォルトの名無しさん
03/01/10 10:15
>某○○
こいつって・・・

356:デフォルトの名無しさん
03/01/10 10:48
ひろゆきの家に一人千円位寄付って事で送りつけるって手も有る!
遊び場作ってやって遊んでる奴の為に訴えられて金払わなきゃいけ
なくなったら止めたくもなる罠!

357:デフォルトの名無しさん
03/01/10 11:30
☆★☆
|・∀・)♪  おあよーおあよー!
|⊂ ノ
|` J    朝だす、みんな起きるだす!!

358:デフォルトの名無しさん
03/01/10 11:58
29■■■■■■■■■■■■■■□□
28■■■■■■■■■■■■■■■■■■■■■■□□□□□□□□
27■■■■■■■■■■■■□□□□□□□□
26■■■■■■■■■■■■■■■□□□□□□□□□□□
25■■■■■■■■■■■■■■■■■■■■■■■■■■□□□□□□
24■■■■■■■■■■■■■■■■■■■■■■■■■■■□□□□□□□□□□□
23■■■■■■■■■■■■■■■■■■■■■■■■■■■■□□□□□□
22■■■■■■■■■■■■■■■■■□□□□□□□□
21■■■■■■■■■■■■■■■■■■■■■□□□□□□
20■■■■■■■■■■■■■■■■□□□□
19■■■■■■■■■■■■■■■■■■■■■■■■■□□□□□
18■■■■■■■■■■■■■■□□□□□□□
17■■■■■■■■■■■■■■■■□□□□□□□□□□
16■■■■■■■■■■■□□□□
15■■■■■■□□□□□
14■■■■■□□
12■
09■
06■


359:デフォルトの名無しさん
03/01/10 12:50
おい!おまいら!

URLリンク(dailynews.yahoo.co.jp)

のアンケートで5を選びませんか? 目標50%

360:デフォルトの名無しさん
03/01/10 15:15
だからあれほどかちゅにしろとっ…!

361:デフォルトの名無しさん
03/01/10 16:41

それじゃあ匿名掲示板の長所を否定することと同義
じゃないか。俺の言ってることに賛成といいながら
IP記録にも賛成とはどういうことだ。

362:デフォルトの名無しさん
03/01/10 23:02
質の低い書き込みを減らしたいのに
質の低い板を生かしておくのはどうしてなんでしょうか?

363:デフォルトの名無しさん
03/01/10 23:07
全ての板ってことっすか?

364:デフォルトの名無しさん
03/01/11 00:25
今回の件で言論の自由さえも脅かされることになるかも
誰も何も言えない時代が来そうな伊予柑

365:デフォルトの名無しさん
03/01/11 00:34
匿名掲示板の意味を履き違えてる人が多くて萎える。

366:デフォルトの名無しさん
03/01/11 09:57
それ、なんかの話であったな。
たしか漫画だった。なんってやつだったけなぁ

367:デフォルトの名無しさん
03/01/11 10:30
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
──────────────
Keep your thread alive !
スレリンク(software板)l50
──────────────

368:デフォルトの名無しさん
03/01/11 11:22
ぬちゃんねる

369:デフォルトの名無しさん
03/01/11 11:53
事実無根で訴えます。

370:デフォルトの名無しさん
03/01/11 13:27
昔+にもいたぞ。
バカ丸出しだなw

371:デフォルトの名無しさん
03/01/11 16:12
もう、マンコとかアナルとか書き込めなくなっちゃうね!

372:デフォルトの名無しさん
03/01/12 00:20
マスコミや官僚・政治家・企業の秘密独占
そこからの権力維持
これを打ち破るのが巨大掲示板群
2ちゃんねるだ
警察は言論統制を目的に2ch攻撃の手を緩めない
個人情報保護法
当面は反米野郎を血祭りにあげるのだろう

373:デフォルトの名無しさん
03/01/12 00:30
6億って鯖実況?

374:デフォルトの名無しさん
03/01/12 10:44
判例がいっぱい出来たら
もうメガサイトなど誰もやらない・やれないんじゃないか?

375:デフォルトの名無しさん
03/01/12 15:20
>>1-343
荒らされる前までのリンク。

376:デフォルトの名無しさん
03/01/12 21:16
URLリンク(www.sponichi.co.jp)

もう予告は止めた方が良いだろうね。

377:デフォルトの名無しさん
03/01/12 21:18
法律上の「代理」の意味はスルーしたようです(w

378:山崎渉
03/01/13 18:56
(^^)

379:山崎渉
03/01/15 18:10
(^^)

380:デフォルトの名無しさん
03/01/20 12:53
マ板にあったギコBASICスレが御亡くなりになりました。
2000年の6月からの長寿スレ なのに残念です。


381:デフォルトの名無しさん
03/01/20 14:51
native compilerを作った奴いるか?

382:デフォルトの名無しさん
03/01/20 16:21
自分の時間で作れるのはスタックマシン中間言語インタプリタへのコンパイラまでだった




383:デフォルトの名無しさん
03/01/20 16:47
Scheme で >>382 みたいなコンパイラ、VM を作るのに参考になる論文とかあっ
たら教えてください。英語か日本語のやつで。処理系のソース見てるんだけど
難しくて。

384:デフォルトの名無しさん
03/01/20 17:52
処理系のソースから何かを得られないのなら、参考文献で
概要を理解することはできても永遠に「作れない」気がする。
というわけで、何のソースを見てるのか分からないけど、
ソース解析を侮らずにしっかりやるのがよいと思われ。

385:デフォルトの名無しさん
03/01/21 20:57
>>383
理論が先か実践が先か・・・

386:デフォルトの名無しさん
03/01/21 22:29
コンパイラの本を読んでいると、コンパイラを変換系、高級言語で書かれた
ソースコードを原始言語、コンパイラによって得られたアセンブラコードを、
目的プログラムと呼ぶ、と書かれているのですが、この3者の関係って、
変換系=アセンブラ、原始言語=アセンブラコード、目的プログラム=オブジェクトコード
にも当てはまるのでしょうか?

387:デフォルトの名無しさん
03/01/21 22:37
compilerはtranslatorの一種?

388:デフォルトの名無しさん
03/01/21 23:45
アセンブラみたいに1:1対応に近いものは
コンパイラとは呼ばないんじゃないかなあ。
よく分からんけど。

389:デフォルトの名無しさん
03/01/22 01:01
HTMLのようなタグ付き文字列を解析したいんだけど、
良い方法はありますか?

例えば、
<data><name>aaaa</name><size>2000</size></data>
のような文字列からaaaと200を取り出したいんですけど・・・
よろしくお願いいたします。

390:デフォルトの名無しさん
03/01/22 01:02
2000でした。申し訳ありません。

391:デフォルトの名無しさん
03/01/22 01:08
>>389
それはXMLのDOM使った方がいいんでないの?
だとするならスレ違いじゃないかねえ。

392:デフォルトの名無しさん
03/01/22 01:11
>>389
取り出すだけなら、
1. < が現れたら > まで読み飛ばす
2. > が現れたら < までを出力とする
3. ただし、半角スペース、タブ、改行は読み飛ばす

393:デフォルトの名無しさん
03/01/22 01:21
>>391
レスサンクスです。
私XMLのDOMっていうのはよく分からないんです。
下降再帰の手法でできるのかなぁ・・・とか思ったんで。

>>392
やはりそのようにやるしかないんでしょうか・・・
ファイルが複雑になったり、ファイルの形式が変わったりすると
パーサを書くのが嫌になってきてるんで・・・

クラスが10種類ほどあるんですが、その種類によって全部構造が違うんです。
ファイルから読み込むと同時に、オブジェクトに値をぶち込みたいんですけど
やはりこういうプリミティブなやり方しかないんですね・・・
明日のことを考えるとちょっと鬱になってしまいました・・・

394:デフォルトの名無しさん
03/01/22 01:26
>399
このスレの上のほうで一度でているが
上昇解析な手法がある。
URLリンク(sourceforge.jp)
再帰だと解析終わるまで戻ってこないから、
用途が限定される。こちらは一文字単位で
戻ってくるからエディタなんかでも使えそ。

395:デフォルトの名無しさん
03/01/22 01:36
>>394
なるほど、そういうのもあるんですか・・・
でもなんか散雑な感じで、夜中の思考力ではなんだか分かりませんでした・・・
スミマセン・・・・

つまりはxmlを解析してパースツリーを構築するものですよね?


396:デフォルトの名無しさん
03/01/22 01:41
>>395
そうでふ。
プログラム見れば分かるけどすげー短くて
ボーゼンとするほど単純。

397:デフォルトの名無しさん
03/01/22 03:08
>>394
それって上向き解析なの?オートマトンでツリー作ってるように見えるんだけど。

398:デフォルトの名無しさん
03/01/22 03:24
>>397
プログラムの書き方が上向き解析のスタックを
使う要領でノードを操作してる上向き風味。
オートマトンは字句解析だけ。

399:デフォルトの名無しさん
03/01/22 23:53
いや全然上向きに見えないなー。むしろ下向き?
どんどん部分木作ってるわけでしょ。
あとオートマトンも字句解析の一つ上で使ってるように見える。
どうでもいいけど。

400:デフォルトの名無しさん
03/01/23 00:33
400getしたわけですが、
キリ番getするための良い入門書はありますか?

401:デフォルトの名無しさん
03/01/23 02:15
>>400
お前が書け。


402:デフォルトの名無しさん
03/01/23 18:55
bison/flexをVC++でMFCと併用していますが、どうもパーサ走らせると終了時に
メモリリーク起こします。ダンプされたのを見てると、どうもyytextの中身っぽい
文字列が…。これってflexの仕様でつか?
>>191の言ってるスレッドセーフ云々っていうのも気になりますた・・・

403:山崎渉
03/01/23 20:01
(^^)

404:デフォルトの名無しさん
03/01/25 00:08
Programming Language Processors in Java: Compilers and Interpreters
URLリンク(www.amazon.com)
この本読んだ人はいますか?いたら感想聞かせてください。

405:デフォルトの名無しさん
03/01/31 23:19
最適化するのにポインタって邪魔ですか?

406:デフォルトの名無しさん
03/02/01 00:58
>>405
ポインタというか aliasing が邪魔。

407:デフォルトの名無しさん
03/02/01 08:47
>>404
amazon のレビューを見る限り、非常に好意的だけど何か不満な点でも?

日本人で実際に読んだ人に背中を押してほしいと言うことですか?

408:デフォルトの名無しさん
03/02/02 01:30
>405
なんの最適化か知らないけど、追跡がしにくい。
実装する側の思考をすればわかると思うけど。
アドレスの同一判定までしてるコンパイラってあるのかな。

409:デフォルトの名無しさん
03/02/09 01:08
>408
一応、解析して指されている対象を絞り込む技法はあります。
解析コストと精度でトレードオフはありますが。

実行時のアドレスの同一性を考えるのではなく、
あるポインタ型変数についてその変数に代入するように
プログラム上でメモリ割り当てた部分の集合を計算します。
なるたけ集合が小さく絞れれば精度が高いと考えます。
解析に当たっては各手法の間で
関数呼び出しをまたいでの解析をするかしないか、
関数(メソッド)内のコントロール/データ・フローにどこまで配慮するか、
オブジェクト指向言語でメソッドの呼び出しの際のオブジェクトに配慮するか、
などの様々なオプションがあります。

こうやって得られたPoints-toグラフは関数(メソッド)やスレッドなどからの
Escapeを調べたりするのに使えます。

興味のある方はPoints-to analysisとかAlias analysisというキーワードで
ググって見てください。

410:デフォルトの名無しさん
03/02/11 08:25
Lex and YACC primer/HOWTO
URLリンク(www.linux.or.jp)
訳されている。


411:デフォルトの名無しさん
03/02/16 18:41
lex/yaccの初心者です。
lex/yacc使用してInterpreterパターンで計算機を作ろうと思ったんですが、コンパイルすらできません。
lexファイル内のcaseが不正だとか言ってきます。(他にもエラーがでてきますが…)
どこが間違ってるのでしょうか?ちなみに"Expression.h"に間違いはないはずなので省略しています。
=========================[calc_lex.l]
%{
#include "Expression.h"
#include "calc_yacc.cpp.h"
%}
%%
([0-9]+|([0-9]*\.[0-9]+)([eE][-+]?[0-9]+)?){
  yylval.exp=new Number(atof(yytext));
  return NUMBER;};
[ \t] ;
.  {return yytext[0];};
%%


412:411
03/02/16 18:42
続き
==========================[calc_yacc.y]
%{
#include "Expression.h"
%}
%union{
  Expression* exp;
}
%token <exp> NUMBER
%left '-' '+'
%type <exp> expression
%%
statement:
  expression {printf("= %g\n", $1->Evaluate());};
expression:
  expression '+' expression {$$=new MathExp($1, $3, MathExp::ADD);}
  | NUMBER  {$$=$1;};
%%
main(){yyparse();}

413:デフォルトの名無しさん
03/02/22 14:17
再帰下降構文解析で実験的にコンパイラを作っているのですが、
関数のオーバーロードの実現方法がわかりません。
引数だけのオーバーロードなら、再帰下降の各関数が返す関数呼出しノードがひとつに絞れそうな気もするのですが
返り値もオーバーロード可能にしようとすると、もうどうやっていいものか。
何かいい方法はありませんか?

考えている仕様:
int A();
string A();
void B(int);
があって B(A) としたら上のほうの Aが呼ばれるようにしたい。
もうひとつvoid B(string); があれば曖昧エラーを出す。

414:デフォルトの名無しさん
03/02/22 14:37
>>413
それは無理じゃないの? だってさ、
void B(int);
void B(string);
の2つが定義されたらどうするの? つまりマッチングをどっちで取るの?




415:デフォルトの名無しさん
03/02/22 14:43
>>414
413の最後の行に書きましたように、曖昧エラーを出したいと思います。
勿論実用的には、解決を行えるように、明示的に型を指定する構文が必要になるでしょうが…。

他の言語でも、F(int, double)とF(double, int)があったときにF(1,1)なんて呼ぶと曖昧エラーになるので
返り値でも曖昧エラーを出すことは多分許容範囲内だろう、と。

416:デフォルトの名無しさん
03/02/22 14:55
追記。Adaでも可能なので、無理ってことは無い筈です。

417:414
03/02/23 08:29
スマン 俺が間違ってた。
 再帰下降という事は、
  代入する変数の型
  関数の型
  先行演算子の型
 が先に判るわけだから、それをグローバルにとってスタック上に保存しながら使ったら?

 

418:413
03/02/23 16:27
>>417
ありがとう。ええと、それですと

void A(int);
void A(string);

int B(int);
string B(string);
bool B(bool);

A(B("XXX"));

で、Aの時点で、期待する型はintとstring
 Bに入ったら、boolでは無いことがわかる。しかしintとstringのどちらかは区別が付かない
 ということで両方を候補に入れ、Bもやはりintとstringを期待して、
  で定数の解析に入ったら、定数はstring
 Bに戻って、B(string)が選ばれたことが確定
Aに戻って、A(string)が選ばれたことが確定

こんなイメージ…ですよね?合ってます?

419:414
03/02/23 16:50
>>418
それは実装上厳しいんじゃない?
Aの引数を解釈してる時に、Bが出た時点で、曖昧にした方がいいと思うけどなあ

420:デフォルトの名無しさん
03/02/23 19:25
>419
え、特に問題なさそうだけど?
>Aの引数を解釈してる時に、Bが出た時点で、曖昧にした方がいいと思うけどなあ
なんでそう思ったの?


421:413
03/02/23 19:44
まず一旦、型を特定しない構文木を作ることにしました。理由は、

string* A();
int* A();

*(A()) = 10;

再帰下降だと、A()を解析している時、その後代入されるのが整数なのか文字列なのか、
それ以前にそもそも代入されるのかどうかもわからないため。
(代入もされず値としても使われないなら曖昧エラー出さないといけませんし)

取り敢えず構文木を作るとこまで書きました。これから>>418の実装に挑戦します。
もっと手っ取り早い方法があればいいのですけれど。

422:デフォルトの名無しさん
03/02/24 18:11
スレ違いな質問かもしれないのですが、スクリプト言語のインタープリターを作ってみたいのですが、これを作るには、
コンパイラーの勉強が役に立つのでしょうか?

なにからやればいいのかさっぱり分からないので、なにか指針でもアドバイスお願いします。

423:422
03/02/24 18:27
>>175 さんが同じような質問をしてた。
Perl や PHP のような大規模な言語ではないのだけど、コンパイラに関する資料が役に立つみたいですね。
まぁ、またーりとがんばってみます。

424:デフォルトの名無しさん
03/02/25 19:03
「UNIXプログラミング環境」で (lex + yacc を使った) 簡単な言語処理系の
作り方が紹介されてますよ。コードも web 上にありました。


425:ろうひ男爵
03/02/27 17:55
>>422
どの程度のことがやりたいんですか?

バッチファイルみたいな物
ワープロなどの実用ソフトのスクリプト言語
ADVなどのシナリオスクリプト
ゲームの敵移動ルーチンのスクリプト

426:413
03/02/27 20:45
一応書いておくか…>>421は無理でした。
代入の右辺と左辺のどちらを先に解釈するかという問題が残ります。
(421の例で右辺もoverloadされた関数呼び出しだったら、どちらを先に解釈することもできない)

マジにやろうとすれば、後は、可能性を全部列挙してマッチングを行うぐらいしか無いかも。
Adaコンパイラのソースが見たい…(gccのAdaならもしかして見える?)

まあ、自分のやりたかった範囲ではできたので、わたくし的にはOKなのですが。
元々は配列のCopy On Writeをオーバーロードで解決したかったので。

*(A(1)) = 10; // int * A(int); が呼ばれ、メモリ領域を複製する
B = *(A(1)); // int const * A(int); が呼ばれ、複製はしない

427:422
03/02/28 11:16
>>425
> ワープロなどの実用ソフトのスクリプト言語
たぶんこのあたりかと。

マクロ記述言語の部分だけを取り出して、シェルスクリプトみたいに、
インタラクティブに遊んでみたいなぁーと思って。

実用ソフトのスクリプト言語といっても、emacs lisp や VBA みたいに大掛かりなものでもありません。
1000行くらいで言語全体を一通り説明できてしまうくらいの小規模な言語です。

というか、その前にCを勉強しないと、どうしようもないみたいですね。

428:ろうひ男爵
03/03/01 20:23
>>427
C言語でなくても書けることは書けますが、
再帰が出来る言語の方がらくですよ〜。
(全部配列でやると大変です)

昔のBASIC見たいに、
変数を宣言無し、
関数を無くしてサブルーチンのみ、
PRINTなどの実行命令は、随時追加していく、
ブロック化の為(制御命令)には、
IF-ELSEIF-ELSE-END
WHILE-BREAK-END
SWITCH-CASE-BREAK-DEFAULT-END
{}は使わない

等のシンプルな言語なら、ベタで組んでも
1000どころか200行ぐらいで出来ますよ〜。

429:デフォルトの名無しさん
03/03/02 14:53
ろうひ男爵さんはもしかして大学教員ですか?
初心者の質問に丁寧に答えて下さっていますが。

430:デフォルトの名無しさん
03/03/02 17:55
札幌市立中央図書館からドラゴンブック借りてきたので age

431:札幌市立中央図書館職員
03/03/02 17:58
>430
ちゃんと返せよ

432:デフォルトの名無しさん
03/03/02 18:00
>430
書き込みとかすんなよ。

433:デフォルトの名無しさん
03/03/02 20:07
ああ北海道いきてえ

434:デフォルトの名無しさん
03/03/03 01:15
>>429
いえ、単なるプログラマーの会社員です。
そういっていただけると嬉しいですが、
自分程度の知識だと、このスレの強者にはかなわないっす。


>>430
2〜3週間は借りることになるのでは?
自分は風呂場で1回読むのに2ヶ月かかりました。
がんばって読破してくださいね〜。

435:430
03/03/03 04:10
>>431
はい。期日までにちゃんと返します。

>>432
はい。綺麗な本なので、汚さないように気をつけます。

>>433
ぜひお越しください。

>>434
2週間の期間では、ちょっと読破できそうにないかも。
連続で借りることも出来るけれど、それをするくらいなら
自分で買う主義です。まだ、買うかどうかはわからんけど。
とにかく、勉強します。

436:デフォルトの名無しさん
03/03/03 11:02
>>434
借りた本を風呂で読んではいけません。


437:ろうひ男爵=434
03/03/03 21:58
>>436
こりゃ失礼。
自分は自腹で買いましたよ〜。
昔、X68000の本とかでほしいときには無くなってたことが多々あったので必ず買ってます。
最近は、トッパンの本を買いあさりました。

438:デフォルトの名無しさん
03/03/03 22:03
いいかげんsageを覚えてくれ。>ろうひ男爵その他
それとさ、ここあんたらの日記サイトじゃないんだから、
あんま関係ない話振るのもやめてくれ。

439:デフォルトの名無しさん
03/03/03 22:04
自治厨見参記念age

440:デフォルトの名無しさん
03/03/03 22:05
独り言は夢・独り言板でどうぞ。
URLリンク(life.2ch.net)

441:デフォルトの名無しさん
03/03/03 22:08
FORTHって作りが簡単だそうですが、どれぐらい小さく作れますか?
参考になりそうな比較的小さい処理系ってありませんか?

442:デフォルトの名無しさん
03/03/03 22:14
あれ、forthスレってなかったっけ?

443:デフォルトの名無しさん
03/03/04 00:37
>>441
昔アセンブラで作ったときはたしかコア部分は30バイトくらいだった。
もちろんそれ以外にprimitiveが必要だけど。

444:ろうひ男爵
03/03/04 01:24
>>438
すまんのう。
外で書いて他のでsage忘れました。

445:デフォルトの名無しさん
03/03/06 18:24
forthって暗黙の操作みたいなのが多いから、
一目ソース見ただけでは何してるのかわかんないと思うけど、
どうよ?

446:デフォルトの名無しさん
03/03/06 20:45
慣れると会館なのかも試練
とりあえず、手続きの構造化というのを初めて知ったのはForthだった。
今でもかなり小さな関数に分けてしまう。

447:デフォルトの名無しさん
03/03/07 11:37
>>445
CLikeScript -> ForceWord コンパイラとか



448:デフォルトの名無しさん
03/03/09 23:12
rubyみたいなスクリプト言語で、非オブジェクト指向なやつって
ありますか???


449:デフォルトの名無しさん
03/03/09 23:21
>>448
Perl

450:デフォルトの名無しさん
03/03/09 23:23
Luaとかは?
マイナーだけど、コンパクトだから読むにはいいかも。

451:デフォルトの名無しさん
03/03/09 23:54
lua って癖が強くないですか???


452:デフォルトの名無しさん
03/03/09 23:57
>>448
bash,csh とかは?
Ruby みたいかどうかは知らないけど、、、

453:デフォルトの名無しさん
03/03/09 23:57
あと、開発が止まってますか?
なんか新しいのが無い???


454:デフォルトの名無しさん
03/03/09 23:58
>>449

ruby参照してるんだから、真珠は無いだろう〜(w


455:デフォルトの名無しさん
03/03/10 00:20
LuaはPubyやPerlより癖がないと思うけど。
つか言語仕様が小さい。アプリ組み込み向けだし。

開発は・・・使うためでなく読むためなら別にどうでもよい(藁

456:デフォルトの名無しさん
03/03/10 00:43
luaって有名なのかなぁ?
なんか、時々(ほんの)聞くけど。。。


457:デフォルトの名無しさん
03/03/10 00:57
亜種亜流を含めて 4000 以上プログラミング言語があるらしいけど、
メジャーな言語なんてほんの一握りだからねえ。

458:デフォルトの名無しさん
03/03/10 01:00
そんなにあるの〜、ビツクリ!

漏れも作ろうかなぁ。。。Uma


459:デフォルトの名無しさん
03/03/10 01:01
組み込みならluaみたいなの採用するよりはlisp系にするけど。

460:デフォルトの名無しさん
03/03/10 01:29
最近sourceforgeのgameカテゴリとかlinux game tomeとか眺めてるんですが
内部でluaやpythonを使ってるのをちょくちょく見かけます。schemeもあったな。

ちょっと前だと例えばQuake(初代)では速度の要求される3Dエンジン部分をC/ASMで、
キャラ固有動作とかダメージ計算とかのゲーム/シナリオ部分をC-likeな独自言語でやってたわけですが、
そういう局面で既存のスクリプト言語がつかわれってるぽい。

461:デフォルトの名無しさん
03/03/10 08:56
ruby最高!

462:デフォルトの名無しさん
03/03/10 14:10
>>461
どこがどのように?


463:デフォルトの名無しさん
03/03/10 15:26
あまり組み込み向けにはお勧めでないところ

464:デフォルトの名無しさん
03/03/11 01:18
>>462
日本発だから!

465:デフォルトの名無しさん
03/03/11 08:48
C++並に仕様がでかくなると、yacc の y.output 見て error を全て潰す(yaccの
エラーメッセージがでないようにする) のが大変だ。

466:デフォルトの名無しさん
03/03/13 23:21
新しいスクリプト言語を作りたいんだけど。。。

これって大変ですか?



467:デフォルトの名無しさん
03/03/13 23:28
>>466
> これって大変ですか?
最初からそんな感想を抱いているようでは、新言語を作るのは無理だと思われ。

468:デフォルトの名無しさん
03/03/13 23:42
言語処理系は作るだけなら、実は大して難しくない。
式の展開さえ出来れば、あとは出来たも同然。

問題は「使える」言語にしようと思うと、ライブラリの整備が
大変な事。

469:デフォルトの名無しさん
03/03/13 23:56
>>468

なるほど、参考になった。
rubyなども、結局はライブラリが揃ってるから使われるんだよねぇ。。。


470:デフォルトの名無しさん
03/03/14 08:46
ライブラリ整備が面倒なら、
COMコントロール使えるようにしとけば VBAのコントロールそのまま使えるから楽だよ。

あるいは、ゲーム用ならHSPのDLLを使えるようにしとくとか

471:デフォルトの名無しさん
03/03/14 10:54
>rubyなども、結局はライブラリが揃ってるから使われるんだよねぇ
rubyは美しすぎる言語仕様(少なくとも日本人の感性からすれば)が大きいと思う。

472:デフォルトの名無しさん
03/03/14 11:16
それは信じない(w

比較相手がPerlなら同意だが

473:デフォルトの名無しさん
03/03/14 11:24
>>472
ネタニマジレスカコワルイ

474:デフォルトの名無しさん
03/03/14 11:41
bisonが出力した y.tab.c を g++ でコンパイルすると パースエラーが出るんですが
回避方法はないのでしょうか?

VCではコンパイルできるのですが( ファイル名は y.tab.cpp に替えてコンパイル)。

475:デフォルトの名無しさん
03/03/14 11:50
どういうエラーだよ。

476:デフォルトの名無しさん
03/03/14 12:58
>>469
rubyは愛国精神からよく使われるのです

477:デフォルトの名無しさん
03/03/14 13:21
>>476
確かに、rubyの場合、
「まつもと?ふーん日本人がやってるんだ。ちょっといじってみよかな。」
と思って始めたっての、俺の場合はあるよ。

で、逆に思ったんだけど、アメリカ(のようなコンピュータ大国の)人が、
「ふんふんよさそう。ん?なんか変な名前の作者だな。
おぃ{スカンジナビア製,インド製,日本製,韓国製,中国製...}かよっ!」
とか感じてやめちゃうことってあるのかな?それとも多民族国家だから
そんなの全然キニシナイ!のかな?


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4934日前に更新/200 KB
担当:undef