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

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

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


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

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

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

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

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


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

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

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

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


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

違いますか?

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

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

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

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

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

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


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

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

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


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

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

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

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

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

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

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

279:デフォルトの名無しさん
04/11/26 20:37:01
ドラゴンブック
URLリンク(www.esbooks.co.jp)

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

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

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

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

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

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

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

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

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

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


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


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

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

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

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

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


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

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

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

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

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


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

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

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


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

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

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

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

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

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

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


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


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

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

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

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

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

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

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

311:デフォルトの名無しさん
04/11/28 10:24:27
dW : Linux : Yacc...そしてLexをよみがえらせる
URLリンク(www-6.ibm.com)

dW : Linux : Lexとyaccでコードをビルドする 第1回: 導入
URLリンク(www-6.ibm.com)

dW : Linux : Lexとyaccでコードをビルドする 第2回: 開発とトラブルシューティング
URLリンク(www-6.ibm.com)

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

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

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


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

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

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

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

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


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

typedef staruct tagXML{

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

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

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

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



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

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

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

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

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


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


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

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

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

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


酔っ払いか?

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

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

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

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



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

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

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


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

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

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

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


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

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


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

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

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

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

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


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

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

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

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

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

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

どうでもいいが、

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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


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

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

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

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

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


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

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


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

362:デフォルトの名無しさん
04/12/02 00:01:19
>>361
URLリンク(www.pearsoned.co.jp)
この本なんだけどね、すごく綺麗なパーサ用パーツ群なんだよね。


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

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

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

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

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



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

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

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

369:デフォルトの名無しさん
04/12/02 01:12:25
URLリンク(www.amazon.co.jp)
375はカスタマーさんですか??

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




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


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

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

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

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


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

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

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

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

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

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


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

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

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


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

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

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

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

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

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


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

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

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

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


392:デフォルトの名無しさん
04/12/06 23:42:41
糞化したスレ
スレリンク(tech板)

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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


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

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

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

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

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

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

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

954 名前:名前は開発中のものです。 [sage] 投稿日:04/12/21 20:39:50 ID:y3o3j+dn
>>953
「コンパイラ・スクリプトエンジン」相談室4
スレリンク(tech板)


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

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

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

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

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

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

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

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

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

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



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

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

431:デフォルトの名無しさん
04/12/23 01:43:13
今んとこ最強の成書↓
URLリンク(www.amazon.co.jp)
amazon.comで古本買ったほうが安いかもしれん。
ただしちょっと古い(1997)

FORTRANなら↓
URLリンク(www.amazon.com)

物好きには↓
URLリンク(www.amazon.com)
持っているといばれる。

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

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

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


433:デフォルトの名無しさん
04/12/23 02:19:14
URLリンク(www.amazon.com)
lccは全く実用にはならないのだが、
この本はかなりおもしろく、また、類書が全くないので一読の価値あり。

434:デフォルトの名無しさん
04/12/23 04:21:30
吉里吉里とかコンパイルすると、シナリオファイルの中身が読めないファイルに変換されていますが、
あれはどうやっているのですか?

(ここではスレちがい?)


435:デフォルトの名無しさん
04/12/23 08:10:26
スクリプトの実装ではなく設計の哲学などを扱った書籍はありませんか?

436:デフォルトの名無しさん
04/12/23 08:50:48
>>434
暗号化してるだけだろ

437:デフォルトの名無しさん
04/12/23 09:18:34
暗号化っちゅうか、
コンパイルってことは普通バイナリファイルにするわけで、
バイナリになったら普通人は読めないだろ。

438:デフォルトの名無しさん
04/12/23 11:04:46
>>432
ドラゴンブックが古い本なのは確かだが、コンパイラ理論の基礎なんて
ドラゴンブックの時代から変わってないから問題ないよ。

佐々本は読んだことないから、そっちの方が良いという意見は否定しないが。

439:デフォルトの名無しさん
04/12/23 13:37:39
ドラゴンブックは原書でしか読んでないが、古めかしさ的には
佐々本と大差ないと思われる(属性文法あたりの差分はあるけどね)。
日本語で読みたいなら、佐々本の方が良い。1冊にまとまっているし、
なによりドラゴンブックの日本語訳はヤバい。

中田本はちゃんと読んでいないので何とも言えないが、元の論文
読む羽目になるのは仕方ないんじゃないか? というか、中田本を勉強
しなきゃいけないやつは、どうせ元論文だけでなくもっと新しい論文を
読まなきゃ仕事にならんでしょ。

440:デフォルトの名無しさん
04/12/23 13:54:43
>>431
"Advanced Compiler Design and Implementation"
この本は主にどの言語で書かれていますか?
C? C++?

441:デフォルトの名無しさん
04/12/23 14:13:41
>>440
漏れは431ではないが、アルゴリズムの説明などで用いられている擬似言語はpascal風。
とはいっても内容は全くプログラミング言語に依存しない。というか、コンパイラの本で内容が
特定のプログラミング言語に依存するものってあまりないと思う。

ベクトル化コンパイラの本はFortran向けに書かれていることがよくあった気もするが。

442:デフォルトの名無しさん
04/12/23 16:36:55
>434

Javaと同じと考えていいんでない?

443:デフォルトの名無しさん
04/12/23 17:08:20
How to WSDL convert to SOAP?


444:デフォルトの名無しさん
04/12/23 17:19:36
>>443
HTML や XML は正規表現を憶えてツリー型のデータ構造を憶えれば完成だから、
正規表現のスレッドや初心者相談系のところにいったらいいよ。

445:デフォルトの名無しさん
04/12/23 17:22:18
URLリンク(yaneurao.hp.infoseek.co.jp)
↑のソースは参考になる?

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


447:デフォルトの名無しさん
04/12/23 20:26:03
じゃLISPコンパイラ作れ

448:デフォルトの名無しさん
04/12/23 20:29:51
>>446
lex yacc または bison flex といった所をやる
オライリーの動物本でもどうぞ
もしCができないなら先にそっちをやる。
Cが分らないとツール群の使い方が理解できない。

449:デフォルトの名無しさん
04/12/23 20:31:29
>448

Cでなくて、C++でもいいんでない?


450:デフォルトの名無しさん
04/12/23 20:34:07
>>449
Cが分らないならC++をやるのはただの遠回り、そこまでやらなくてもツールは使える。
C++で使うにはかなり詳しくC++を知る必要があるから、そんな所に迷い込んだら永久にできなくなってしまう。
大規模になってくれは必然的にC++やる事になるのだから、そのときで十分。

451:デフォルトの名無しさん
04/12/23 20:41:23
yaccとかbisonって、構文解析と字句解析に使うんだろ?


452:デフォルトの名無しさん
04/12/23 20:41:51
Lispのコンパイラを作るのにlex+yaccはいらんなあ。
バイトコードに落とすLispのコンパイラを作るのは結構簡単なわりに面白いよ。


453:デフォルトの名無しさん
04/12/23 20:44:25
>452

おすすめのソースとかある?

454:デフォルトの名無しさん
04/12/23 21:00:41
>>9のやさしいLispの作り方はどう?

455:デフォルトの名無しさん
04/12/23 21:06:14
>454 
ありがd
Javaの復習にもいいね。

そろそろこのスレをまとめたサイトが欲しいね。

456:デフォルトの名無しさん
04/12/24 00:37:04
>>454
あれはS式をそのまま解釈するインタプリタなのでコンパイラは出てきませんね。
でも入門書を読み終えた程度って人なら処理系のイメージを軽くつかむにはいいかな。

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



457:デフォルトの名無しさん
04/12/24 10:19:57
>>420
俺と考えが違いますね

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

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

アメリカやインドに比べてソフト開発力が低い?と言われてるのだから、
その部分を補う部分が欲しいと思いますね。


458:デフォルトの名無しさん
04/12/24 10:38:33
>>420 頭のいい人
>>457 口をあけて待ってるバカ


459:デフォルトの名無しさん
04/12/24 16:42:34
>>458
馬鹿で悪かったな・・・
C言語を覚えるのに、C言語の入門からマニュアルが一杯でてるだろ
おまぇはそれすら観なかったのかよ?

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

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

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

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



460:デフォルトの名無しさん
04/12/24 16:44:18
>>458
こいつはコンパイラの本を見ずにコンパイラを自力で作れるすごい奴なのかも
しれないwww

461:デフォルトの名無しさん
04/12/24 16:47:26
別に凄くないと思うぞ

462:デフォルトの名無しさん
04/12/24 16:49:06
>>461
自力で作れる奴がここに来るのか??www

463:デフォルトの名無しさん
04/12/24 16:53:22
>>462
もし来ないと思っているなら、それは偏見だよ。
別にここでの書き込みに何か期待しているわけじゃない。
ただ、専門分野での雑談を楽しんでいるだけだよ。

464:デフォルトの名無しさん
04/12/24 16:57:04
>>436
彼はC言語のマニュアルしかみないでプログラマーやってる
スーパープログラマーだから、相手にしない方がいいな。

465:デフォルトの名無しさん
04/12/24 17:09:11
>>463
彼はすごいよ。
数学の数式や方程式も自分で考えたんだよ。

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

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

先人の発見した知識は彼には必要ないんだよ
彼は全部自分で考えて、自分で作れるんだから・・・www


466:デフォルトの名無しさん
04/12/24 17:09:49
俺はC言語なぞコンパイラのユーザマニュアルだけで使えるようになったけどな。
そういう人間は別に少なくないだろう。分布が偏在しているだろうとは思うが。
それはさておき>>457=>>459だろうが言ってることが滅茶苦茶だぞ。

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

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

457を見て感じるのは、こいつには「頭のいい人」のものの考えは絶対理解できないだろうなということ。
自分をその範疇から外していて、そうなる意志もないだろうというのも感じる。


467:デフォルトの名無しさん
04/12/24 17:18:39
>>466
はぁ〜、まぁ〜いいや、プログラムだけでなく
方程式とかも自分で解いたんだろ、、全部。

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

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

授業で英語の教科書を見て英語覚えたのなら、
それは英語を覚えた経験した事を、本で覚えて
英語を覚えたことになるんだぞ。


468:デフォルトの名無しさん
04/12/24 17:19:23
誰かが、覚えた経験を元に書かれた英語の教科書や、専門書を
観ないで覚えたのか

でした

469:デフォルトの名無しさん
04/12/24 17:25:02
この話題で初めて書き込むが,
>>466 アホだな…
本や論文を読まずに〜というのは, 要するにその内容を完全に理解したから,
その文献を再び参照することなく, 新規性のある事ができる, という意味だろうに…

470:デフォルトの名無しさん
04/12/24 17:26:19
>>466
彼はエジソンだね。学校の授業は人の経験を教科書にして覚えると言う
行為だから・・・

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

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

そういうスーパーな人は、新しい言語でも作って世の中で有名でもなって
ください。


471:デフォルトの名無しさん
04/12/24 17:28:38
>まさに、プログラマー界にエジソンだよ。
あなたはまず日本語を勉強しましょう

472:デフォルトの名無しさん
04/12/24 17:29:37
>>471
それくらいスーパーなプログラマなら脳内変換できないのか?

473:デフォルトの名無しさん
04/12/24 17:31:53
>>457
落ち着け。>>420

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

と言ってるんだぞ。お前にソースは見せん、と言ってるんじゃない。

474:デフォルトの名無しさん
04/12/24 17:32:36
>>457
なんかフレーム引き起こしてますな、僕も420と同意見で
他人の作ったものをとってきて喜べるたちの人間ではないですね、
自分で何か作る事にのみ喜びを感じます、
アルゴリズムも自分で思いついてこそ楽しいのです。
作業効率なんてどうでもいいんですよ。
貴方の意見を読んでいるとプログラミングが恐ろしくつまらない作業の繰り返しに思えます。


475:デフォルトの名無しさん
04/12/24 17:35:18


476:デフォルトの名無しさん
04/12/24 17:36:12
>>457-476は役に立たない塊ですので透明あぼーんしましょう

477:デフォルトの名無しさん
04/12/24 17:38:14
>>474
プログラミング自体を楽しめるのなら良いが
作るという行為だけ楽しめる人もいるんですよ

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

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

彼はライブラリも使わないと思うよ。
ライブラリだって人の作ったプログラムを使ってるんだから、スーパーな
プログラマは我慢できないんじゃないかな?

478:デフォルトの名無しさん
04/12/24 17:38:25
こっちに移動してください
スレリンク(tech板)


479:デフォルトの名無しさん
04/12/24 17:41:50
>ライブラリだって人の作ったプログラムを使ってるんだから、スーパーな
>プログラマは我慢できないんじゃないかな?
この辺りからして感覚が違う気がしますね、我慢できないのではなくて、中身が興味深そうなら自分も作ってみるのです。

480:デフォルトの名無しさん
04/12/24 17:47:58
結局、どこまでが基礎でどこからが応用かという問題だろ。

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

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

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

でも本やインターネットでコンパイラについて書かれた内容を理解した
人は、その本を読んで理解しろと言う場合と、もっと解りやすい本が
あればもっと簡単に覚えられたと思う人もいるだろ
簡単に言えば解りやすいコンパイラの本が日本語で出るだけで、新たな
言語が出る可能性が出て面白くなると思うけどね。



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

5050日前に更新/228 KB
担当:undef