『コンパイラ・スクリプトエンジン』 相談室 2
at TECH
[前50を表示]
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の場合、
「まつもと?ふーん日本人がやってるんだ。ちょっといじってみよかな。」
と思って始めたっての、俺の場合はあるよ。
で、逆に思ったんだけど、アメリカ(のようなコンピュータ大国の)人が、
「ふんふんよさそう。ん?なんか変な名前の作者だな。
おぃ{スカンジナビア製,インド製,日本製,韓国製,中国製...}かよっ!」
とか感じてやめちゃうことってあるのかな?それとも多民族国家だから
そんなの全然キニシナイ!のかな?
478:デフォルトの名無しさん
03/03/14 13:55
日本製は、自動車やソニー等のこともあって、
他の国の製品とは若干扱いが違う。
それに助けられているかも。
479:デフォルトの名無しさん
03/03/14 15:51
そもそも、Rubyってのは真っ赤な日の丸から連想して
名付けたらしい。
大日本帝國言語ルビー万歳!
480:デフォルトの名無しさん
03/03/14 17:36
日本語対応の点で安心できるってのはあるなぁ
481:デフォルトの名無しさん
03/03/14 17:46
>>479
Pearl の次の誕生石だから。
寝たに混じれ酢。
482:デフォルトの名無しさん
03/03/14 18:00
bison (GNU Bison) 1.875をつかっているのですが、
yyerrlab1:
#if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)
__attribute__ ((__unused__))
#endif
goto yyerrlab2;
っていうコードを吐くのですが、g++(gcc version 3.2 20020927 (prerelease)) で
コンパイルすると
parse error before `goto'
といってコンパイルが止まってしまいます。
ふみゅ〜ん。
483:デフォルトの名無しさん
03/03/14 19:26
スクリプトエンジンってbison やlex/yacc 等が
いるのですか???
素朴な疑問でスマソ
484:デフォルトの名無しさん
03/03/14 19:35
>>477
英語が通じそうにないから敬遠するというのはあるかも
485:デフォルトの名無しさん
03/03/14 20:40
>>483
再帰下降でガンバレばいらないと思うよ。
486:デフォルトの名無しさん
03/03/14 20:49
;
487:デフォルトの名無しさん
03/03/14 21:04
Delphi版 ギコBasicの アーカイブ一覧
URLリンク(www.geocities.co.jp)
URLリンク(www.geocities.co.jp)
URLリンク(www.geocities.co.jp)
URLリンク(www.geocities.co.jp)
URLリンク(www.geocities.co.jp)
URLリンク(www.geocities.co.jp)
URLリンク(www.geocities.co.jp)
URLリンク(www.geocities.co.jp)
URLリンク(www.geocities.co.jp)
URLリンク(www.geocities.co.jp)
URLリンク(www.geocities.co.jp)
URLリンク(www.geocities.co.jp)
488:デフォルトの名無しさん
03/03/14 21:48
ギコBasicで2chブラウザ作れますか?
489:デフォルトの名無しさん
03/03/15 01:23
微妙に英文ライクで空白込みの名前も可、というオブジェクト指向言語を作りたい者です。
経験者の方にお聞きしたいのですが、下のサンプルコードのようなものですと、パーザを実装するのは難しいのでしょうか?
//宣言部
private property string greeding head = "hello, ".
public method say greeding (string name = "world") {
output stream std out = system consore standerd out.
this greeding head + arg name + "." outln to std out.
}
//使用する側のコードを一部抜粋
this say greeding ">>1".
490:デフォルトの名無しさん
03/03/15 01:36
しるか
491:デフォルトの名無しさん
03/03/15 01:51
(´-`).。oO(その言語でプログラムを書くのが難しいと思われます。。)
492:デフォルトの名無しさん
03/03/15 01:53
つーか自分でBNFでも書いてみろよ。>489
493:デフォルトの名無しさん
03/03/15 03:48
プログラムを自然言語ライクに書けるようなのが出来たとしても、
greeting を greeding と間違って書いてもちゃんと認識
してくれるようなシステムを作るのは難しい。
494:デフォルトの名無しさん
03/03/15 09:17
C言語版、C++版ギコBasicもよろしく
C言語版
URLリンク(page.freett.com)
C++版
URLリンク(page.freett.com)
495:デフォルトの名無しさん
03/03/15 09:32
>間違って書いてもちゃんと認識
勝手にそんなことされると意図と違って認識されたときにものすごく発見困難なバグの原因になりそうだ
496:デフォルトの名無しさん
03/03/15 11:06
Ada95@gccってば、エラーメッセージ中でスペルミス指摘してくれるのだが、そういうのじゃなくて?
497:デフォルトの名無しさん
03/03/15 11:15
>>489
例えば事前にstring nameという定義があったりすると、
private string name x. とか書かれると、「string name」「x」なのか「string」「name x」なのか曖昧なので、
識別子に空白を含められるようにするなら、区切りの記号か予約語を入れるようにしないと。
普通ならPascalっぽく ":" 使うところだけど、英文ライクということなので、isなりasなり入れれば?
private property greeding head is string = "hello,". とか。
もっとも、曖昧さも含めて楽しむような仕様にするなら、それはそれで。
498:デフォルトの名無しさん
03/03/15 20:57
そんな言語、情報処理にはむかんなぁ(w
まぁ、曖昧な処理にはいいかも?(w
499:デフォルトの名無しさん
03/03/15 21:00
COBOLの路線で行きたいって事でしょ
500:デフォルトの名無しさん
03/03/15 23:21
/ノ 0ヽ
_|___|_
ヽ( # ゚Д゚)ノ 下がってろウジ虫ども! 。
| 个 | 訓練教官のハートマン先任軍曹が500をgetする!
ノ| ̄ ̄ヽ
∪⌒∪
>>501 貴様!俺の海兵隊をどうするつもりだ!
>>502 口でクソたれる前と後に「サー」と言え!
>>503 ふざけるな!大声だせ!タマ落としたか!
>>504 貴様には両生動物のクソをかき集めた値打ちしかない!
>>505 アカの手先のおフェラ豚め!
>>506 まるでそびえ立つクソだ!
>>507 タマ切り取ってグズの家系を絶ってやる!
>>508 じじいのファックの方がまだ気合いが入ってる!
>>509 ベトナムに行く前に戦争が終わっちまうぞ、アホ!
501:デフォルトの名無しさん
03/03/18 22:28
そういえば、最近はスクリプト言語の時代らしいんだけど、
ろくな言語ないよなぁ〜、
コンパイル言語のときは、Cがあったけど
なんていうかパールは暗号みたいだし、
AWKはフィルタ専門だし、(SEDも)
ルビーはOOだし、
なんかみんな極端なんだよねぇ。。。
502:デフォルトの名無しさん
03/03/18 22:30
HSPがあるよ!
503:デフォルトの名無しさん
03/03/18 22:31
>>501
> そういえば、最近はスクリプト言語の時代らしいんだけど、
> ろくな言語ないよなぁ〜、
> コンパイル言語のときは、Cがあったけど
(w
> ルビーはOOだし、
これがオチですか?
504:デフォルトの名無しさん
03/03/18 22:32
>>501
じゃあどんなのがいいんだよ
505:デフォルトの名無しさん
03/03/18 22:33
cintがあるやん
506:デフォルトの名無しさん
03/03/18 23:49
>>504
純粋関数型のスクリプト言語
507:デフォルトの名無しさん
03/03/19 00:05
Haskell
508:デフォルトの名無しさん
03/03/19 00:28
インタプリタがほしけりゃghciでいいじゃん
509:デフォルトの名無しさん
03/03/19 01:08
>>502
win用じゃん(w
os2用もあるらしいが。。。(w
畑違い、ハゲ稿!
510:デフォルトの名無しさん
03/03/19 01:18
>>505
ヨサゲだけど、絶版ですか?
ちょっと残念(本)
511:デフォルトの名無しさん
03/03/19 01:23
>>507
なんか難しい論文ばかりで、学者○カ向け?
512:デフォルトの名無しさん
03/03/19 01:24
>>ghci なにそれ?
513:501
03/03/19 01:51
やっぱりHSPが最高だね、アハハハハハ
514:デフォルトの名無しさん
03/03/19 05:14
>>489
スペルミスの多さからしてネタだろ。
515:デフォルトの名無しさん
03/03/19 05:20
>>482
cygwinのが1.875bで手元では一番新しかったんで試してみたけど、そんなコー
ドは吐かないな。
516:デフォルトの名無しさん
03/03/19 11:20
とりあえず付箋紙ベースのスクリプトエンジンを作成しようとおもいますた。
Basicインタープリターは別なところでできてるんだけど、アイデア暮れ。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4935日前に更新/200 KB
担当:undef