[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/25 05:34 / Filesize : 221 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2005/05/06(金) 08:28:29 ]
プログラミング言語処理系の開発に興味のある人達のスレッドです。

字句解析・構文解析から,データフロー解析,ループ並列化,タスク並列化,SSA変換,
CPS変換,レジスタ割付,命令スケジューリング,ソフトウェアパイプライン等各種最適化,
それにVM,GC,JIT,リンク時最適化,動的バイナリ変換などなど。
意味論に関する話題も歓迎です。

前スレ
1 pc.2ch.net/tech/kako/981/981672957.html
2 pc2.2ch.net/test/read.cgi/tech/1021136715/
3 pc5.2ch.net/test/read.cgi/tech/1070089173/
4 pc5.2ch.net/test/read.cgi/tech/1100097050/
5 pc8.2ch.net/test/read.cgi/tech/1106129164/ (前スレ)
関連リンクは多分 >>2-10 あたり

183 名前:デフォルトの名無しさん mailto:sage [2005/05/13(金) 23:36:34 ]
HSPに対する反応はぇぇぇぇぇぇぇぇぇ!

>>182

そんなあなたにオススメの言語はHSP3です。

コレは優先順位つくらしいよ。よかったね。

184 名前:デフォルトの名無しさん [2005/05/13(金) 23:36:55 ]
言語といえば、LISPりんごですよ!


185 名前:デフォルトの名無しさん mailto:sage [2005/05/13(金) 23:41:33 ]
LISP も HSP も大して変わらないよ。

ものは試しに、
LISP
↑この横棒を少し上に持ち上げてご覧

直ぐに HSP に変わるから。


186 名前:デフォルトの名無しさん mailto:sage [2005/05/13(金) 23:45:57 ]
文法の話とかしだすと宗教戦争になるから駄目だな(わら


187 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 00:16:37 ]
評価するならヒューマンインターフェース的な評価手法を採るべきだ

188 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 06:23:37 ]
日本語で懇切丁寧に解説してあるのを読んで「ソースコードを読んだ」と威張り、
ソースコードを読めないとコーディングの汚さのせいにし、
Rubyを読んだ程度でさも様々な言語のソースコードを読んだように振舞う42の
いるスレはここですか?


189 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 06:57:53 ]
Rubyのソースが糞なのは、言語仕様側も少なからず影響してるからなあ・・

190 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 06:58:42 ]
あ、すまん。
糞なのは、は言い過ぎた。
汚く見えるのは、に読み替えてね。
つい本音が出てしまった。

191 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 07:06:35 ]
Rubyは入門者用のソースの解説本があるから、ソースを覗いた人は一番多いんじゃないかい。
悪口いいっぱはともかく、言語の規模考えても、準拠ポイントとしてはちょうどいいんじゃないか。



192 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 07:19:18 ]
なんでわざわざ入門者用に糞ソース読む本が出たんだろうね。
本という形態だとすでにバージョン的に無意味になってる部分も多いだろうし。
Rubyの動作原理ならともかく、糞ソース読む練習に良いとか?

193 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 07:23:59 ]
>括弧を省略できるってのは結構大きいよ。

なんつーか、ad hoc 感ブリバリで好きになれないな

194 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 07:53:49 ]
現実問題、実用レベルに達した処理系で
「ソースが糞」じゃないプロジェクトなんてあるの?

195 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 07:55:25 ]
>>192
> Rubyの動作原理ならともかく、糞ソース読む練習に良いとか?

あの本、能書きにはそれっぽく書いてある。だけど実際の本文は
「わかった奴が教えを垂れる」スタイルなんで、あんまり
ソースの読み方の参考というのにはならない。

前提となる知識が先に書いてあるのは別にいいんだが、何をとばして何を読む
ってのが説明の都合で決まりすぎで、ソースの読み手から見た判断という視点
じゃない。



196 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 10:40:28 ]
>>185
ホントダw
I-I S P

197 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 10:41:29 ]
偶然の一致がこれほど恐ろしいとは

198 名前:42 mailto:sage [2005/05/14(土) 12:19:46 ]
念のため書いとくけど、Rubyのソースが全編糞とは俺は思ってないからね。
eval.cのsetjmp/longjmpの乱用と、parserとlexerがグローバル変数で
状態を共有してるのがひどいと言ってるだけ。他はまあ、普通のCソースだと思う。

>>188
>ソースコードを読めないとコーディングの汚さのせいにし、

Perlのソース読んだことあるかい?

199 名前:42 mailto:sage [2005/05/14(土) 12:39:23 ]
補遺:
setjmp/longjmpの乱用についても、実行形態を考えるとやむを得ないところは
あるんだよな。
いっそバイトコードインタプリタにでもした方がよかったんじゃないかとも
思う。そうするとGCも今のコンサバGCじゃなくなって、もはや原型をとどめなく
なりそうだが。


200 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 15:42:13 ]
プププププ このスレおもしれー。
Perlのソースコードが汚いって?
少なくともRubyが***自力で***読めてPerlが読めない理由はねえよ。
てめえのおつむが足りないってことを精一杯開陳しつつしかも自分では
認めないって、最悪じゃね?

しかもいっちょまえに批評家気取って、はーゲラゲラゲラ
しかもえらそうなくせに何言ってるかわかってなさげなトンチンカンぶりがラブリー


201 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 15:44:11 ]
>>200
ソースは汚いと思わないが、build課程はかなりひどい物の一つだと思うぞ。




202 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 17:01:52 ]
Perlのは暗号だからな、読む気にもならん

203 名前:42 mailto:sage [2005/05/14(土) 19:50:57 ]
そもそも俺は自分はアホだと再三言ってるんだがねえ。
何がそんなに気に入らないんだか。

>少なくともRubyが***自力で***読めてPerlが読めない理由はねえよ。

へえ。

Rubyのソースが間違いなく***自力で***読める人のご意見。

jp.rubyist.net/magazine/?0001-Hotlinks
| Perl のソースコードは印象的だよね。すごい。読めない。
| マクロの嵐で、よくわからない識別子が山のように出てきて、
| いったい何? みたいな、すごい略語でさぁ。ほんとに、名前重要。]
| この識別子は、何を表しているのか、何をしようとしているのか、
| わかんないんだよ。

204 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 20:02:36 ]
そりゃ自分で書いたコードなんだから読めるだろ。
それが論拠になると本気で思ってる? 痛い奴。


205 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 20:20:43 ]
>>203
>>53


206 名前:デフォルトの名無しさん [2005/05/14(土) 22:53:41 ]
>>194
その通り!
めずらしく、いい書き込みだなw



207 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 23:33:01 ]
だから、Perlが汚いからといってRubyが汚くないという話にはならないの
ことあるごとにPerlをもちだしてくる信者はいい加減にしろ

208 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 23:44:40 ]
Ocamlのソースは綺麗だったよ
実用レベルなのか知らないけど

209 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 00:04:59 ]
>>208
高速な事は事実。

210 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 01:17:27 ]
OCamlのソースはコアのインタプリタ以外OCamlで書かれてるからね。
Cで処理系書いてる限りソースが糞になるのはやっぱり避けられないのかも?

211 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 01:22:45 ]
LISPも、というか関数型言語は綺麗なソースが多い気がする。
それぞれの言語自身で記述する風習みたいなのがあるからかね。



212 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 02:02:08 ]
関数型言語に限らずbootstrapしてない言語処理系なんて
表現能力のなさを露呈してるようなもんじゃないかな。
WindowsをUnixで作ってるみたいな。
SubversionのソースをCVSで管理してるみたいな。
もちろんスクリプト言語のように目指すところが違えば話は別だけど。

213 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 03:37:32 ]
>>211
SBCL は C の部分が汚くて悶絶した

214 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 03:45:28 ]
そうか? 普通に読めたけどなあ。SBCL。



215 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 03:59:02 ]
読めるけど、エラー処理省いてたり、マジック文字列埋め込んでたり、バータリ的な所が
けっこうあったよ。-Wall 付けてビルドするとやたら Warning が出るし。
たまにクリーンアップのパッチが提出されてるけど、マージされてるのか疑問。

216 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 07:41:04 ]
すれ違いですまんが、「バータリ的」って何?


217 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 07:44:34 ]
場当たり的

218 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 08:24:59 ]
>>217
サンクス。

人の名前かと思ったんでワケワカラン様になってた。


219 名前:デフォルトの名無しさん [2005/05/15(日) 11:39:02 ]
>>212
ブートストラップの意味おしえて


220 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 11:40:28 ]
>>219
ストローストラップの弟

221 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 13:08:41 ]
コンパイラ業界でのbootstrapは、
コンパイラが自分自身のソースをコンパイルすること。
(だよね?



222 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 13:38:45 ]
話の流れを折ってすいませんが、
Engineering a Compiler
www.amazon.com/exec/obidos/tg/detail/-/155860698X/
ってどんなもんでしょうね?


223 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 14:56:04 ]
>>222
☆☆☆☆★
初学者はドラゴンブック嫁って事になってるの?メリケンでもいまだに。ちょっと安心していい?

224 名前:219 mailto:sage [2005/05/15(日) 17:24:53 ]
>>221
TNX!


225 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 17:38:46 ]
ネタにマジレスかもしれないが、ストローストラップって誰?
ひょっとしてストラウストラップのこと?
ストローストラップって発音することがあるの?

226 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 17:44:52 ]
アメリカ<=>イギリス

227 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 17:45:00 ]
ttp://www.research.att.com/~bs/bs_faq.html#pronounce

228 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 18:05:33 ]
ステューステュオップ

229 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 18:08:30 ]
いい声してるなあ

230 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 18:11:32 ]
>>228
耳腐ってんのか?



ステゥーステュオァプ

231 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 18:21:41 ]
「C++でお勧めの本ありますか?」
「ステゥーステュオァプでも読んどけ」
「……宇宙人?」



232 名前:デフォルトの名無しさん [2005/05/19(木) 14:36:35 ]
練習で、生成系を使わずにCのプリコンパイラを作ろうと思っているのですが、
ソースコードの意味解析をやる必要があるかどうかが直感的にわからなくなってしまいました。
#define文は型検査をする必要はないので、いわゆる意味解析の必要ってない気もするのですが、
プリコンパイルはそれはそれで一つの言語であるので、どこかで意味解析が必要になりそうな気もします。

実際に必要なのかどうなのか、簡単な理由と共に教えてもらえないでしょうか?
どうぞよろしくお願いします。

233 名前:232 mailto:sage [2005/05/19(木) 15:30:19 ]
プリコンパイラってなんだ…プリプロセッサですね…

234 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 16:26:45 ]
なんで既存のプリプロセッサを読まないんだろう……


235 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 16:30:36 ]
俺様と同じように言葉だけ覚えてほとんど理解できてない感じのレスだな。
そんな俺様が勘で答えてやろう。

C言語本体としての意味解析はいらない(と思う、というか構文解析もできないだろう)。
マクロ言語としての意味解析はいるかもしれない。
ただ、Cのマクロ言語は本当に簡単な言語なので、
構文解析まで通れば意味解析はほとんど何もすることが
ないかもしれない。ひょっとしたらあるかもしれない。

236 名前:235 mailto:sage [2005/05/19(木) 16:32:40 ]
あ、あれ?既存のプリプロセッサを読めとか
そういうレベルの話なの?
やっぱり全然見当違いのレスしちゃったかも。
ごめん、なかったことにしてくれ。

237 名前:232 mailto:sage [2005/05/19(木) 17:22:08 ]
>>234
直感ですが、cppやgccのpre-processorのコードは高速化のために最適化されていて、
私みたいな知識のない人間が追うには辛いのではないかと思っていました。
反省して読んでみることにします。

>>235
まさにそういう感じです<言葉だけ覚えてほとんど理解できてない。
理解するために簡単そうに見えるプリプロセッサを作ろうと思ったのですが、
作る前に色々と考えていたら意味解析のセクションが必要なのかどうかがわからなくなって…
とりあえず、プリプロセッサの意味規則がどんなものかを考えることが重要なのですね。

まだ紙の上で考えている状態なので、具体的にどのような構文木を出せばよいのか、
そこのところで悩んでいる途中で出た疑問でした。
わかっていない私にわかりやすく説明してくれてありがとうございました。

238 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 21:07:54 ]
情処かどっかで
世の中のCのプリプロセッサはバグだらけ
みたいな論文を見たような気がする。

239 名前:232 mailto:sage [2005/05/19(木) 21:50:18 ]
仕様はかなり細かいみたいですね<プリプロセッサ
(あくまで参考として:ttp://www.sra.co.jp/wingnut/gcc/cpp-j.html)

240 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 22:15:21 ]
>>232
小さいCPP(1ファイルに収まるくらいのやつ)が入ってるよ
www.lsi-j.co.jp/freesoft/


241 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 02:20:54 ]
このスレにはソースを読めばなんでもわかると思ってるやつしかおらんのか。



242 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 03:23:19 ]
ソース読まない奴は無能

243 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 05:55:55 ]
仕様書にはいつもソース読めと書いてます。
結局ソース見るのが一番早い。

244 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 09:44:15 ]
>>243
10行くらいならね。

245 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 17:22:18 ]
JavaやVBAのパーサを書いて見たいんですが、どっかにgrammarでも落ちていないですか?

246 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 17:44:30 ]
Javaならあるよ。VBAは知らない。
java.sun.com/docs/books/jls/

247 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 18:57:23 ]
レスサンクスです。
早速構文チェッカーでも書いてみます。
やはりC++より構文規則は見た目きれいですね。
C++の構文はどこもかしこもオプションだらけでよくJavaプログラマが汚いという意味がよくわかりました。
私もC++パーサを書いたあと、しばらくはC++でプログラムしなくなりました。

248 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 21:23:32 ]
>>238
たぶんこれだろ。
lc.linux.or.jp/lc2002/papers/matsui0920p.pdf
www.ipa.go.jp/jinzai/esp/15mito/mdata/11-6.html

249 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 22:49:23 ]
>>247
その意見には激しく同意した上で、なおかつC++が最高の言語だと思う自分がいる

250 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 23:17:35 ]
なんか、俺はプログラミングするたびに違う言語使ってる気がする。
統一したほうがいいのだろうか。

251 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 23:24:33 ]
またScheme処理系作っちまった
やめられない



252 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 23:27:55 ]
同じ物ばかりつくって飽きないの?

253 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 23:35:07 ]
もうとまらねーよ

254 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 23:39:04 ]
>>252
Scheme処理系は何個あっても困らないからねえ

255 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 00:54:16 ]
JVMで動くCOBOLを作ってみてくれ。

256 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 00:55:17 ]
お前ら、もっと斬新なことしてくれよ
実装なんか興味ないからさ。

257 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 01:18:36 ]
タガログ語プログラミング言語とか。

258 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 01:33:11 ]
>>251
公開キボンヌ

259 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 01:33:48 ]
面白いこと=トロイ
な頭の俺をどうにかしてください


260 名前:デフォルトの名無しさん [2005/05/21(土) 01:35:50 ]
>>256
そんなあなたに「りんg(ry」


261 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 01:50:59 ]
プログラムを2つ与えると、その実行結果が等価になるか判断する処理系作って。
用途は、たとえば自分でソートのプログラムを作ったけど正しいか自信が無いときに、
単純で遅いが明らかに正しいソートプログラムと比較させる。
全自動は無理だと思うから、人間が色々手伝ってもかまわない。
「入力の長さnの帰納法」とかヒントをあげると、少なくてもn=1のときは
単純にn=1が保証されるものとして最適化するだけで判定できそうな気がする。



262 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 01:54:55 ]
>>261
どうやらスレ違いぽいな

完璧なプログラム
pc8.2ch.net/test/read.cgi/tech/1041126217/


263 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 09:35:34 ]
>>251さん、リクエストします。
JavaScriptでScheme処理系を書いてください


264 名前:デフォルトの名無しさん [2005/05/21(土) 10:38:57 ]
>>261
しかも、内容が馬鹿っぽいw


265 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 10:59:05 ]
一般的にはムリって
計算論で結論出てなかったっけ?

266 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 11:05:29 ]
>>261
少なくとも、理論上無理。そんなことができるなら、世の中もっと幸せになってる。

267 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 11:51:13 ]
>>251
>>263をR5RS準拠でヨロスク

268 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 14:49:33 ]
プログラムが停止するかどうかすら判定できない、じゃなかったかなあ。

269 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 15:08:56 ]
>>268
「有限時間内で」が大事。

270 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 15:25:18 ]
>>261は最初から「全自動では無理」と言ってるんだが…
理論上無理とか言ってるやつは
proof assistantというものが存在することすら知らんのだろうな。
いずれにせよ>>262の言うとおりスレ違いだろう。

271 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 16:19:22 ]
>>251
後学の為に是非公開してくださいませんか。宜しくお願いします。



272 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 00:51:20 ]
schemeの処理系なんて、重厚長大で完璧めざしてるR5RS準拠から
読みやすさ重視orお遊びのトイプロジェクトまで、山ほどあるぞ。

273 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 07:48:12 ]
>>271
R5RS規格書は50ページ程度と言われてるけど内容濃いしね
省かれた暗黙仕様もあるから準拠しようとすればそれなりに工数掛かる

>>267
おれが今回作ったのは継続もなくスタックベースでそもそもRxRS前提に書いてない
throwみたいに親側へ飛ぶだけだし、スタックオーバーフローもする
ちゃんとしたのは別にあるんだけど、デカくなりすぎた
そこそこの速度で動く&俺言語やアプリへの組み込みが目的だった
俺言語2k行ぐらいで最低限の最適化だけやったいい加減なやつ
速度はguile1.7.2と同じぐらい。。。guileは速度捨ててるね

274 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 08:52:51 ]
>>273
おー、俺言語大好き人間って結構いるんだな
俺はSelf系つかprototype系好きなんで何個も作ったけど、Schemeは一度も作ったコトないや



275 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 16:33:47 ]
俺言語への組み込みScheme?
どんなものか想像できない。

276 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 16:49:51 ]
よくあるパターンは、scheme式をbuiltin型として使えるというものかな。
prologを組み込むと時々便利。

277 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 16:39:26 ]
Scheme in javascriptやin rubyを作ってるんだけど、
何かの仕様に準拠しないと達成感がない。

でもRxRSの複素数とかくだらないの実装するのは面倒くさい上に、
母言語(javascriptとか)の数値表現がそのまま使えなくなって
滅多に使わないのに全体的に遅くなりそうなあげく、利便性まで下がる。

同じことで悩んだor悩んでるやついる?

278 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 18:49:26 ]
>>277
つcoercion semantics

279 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 19:22:56 ]
Coercin semantics?ってsubtypeに基づく変換とかのアレですよね。
Schemeに型はないんですが、soft-typingしろってことでしょうか。

誤解があったかもしれないので捕捉。
Scheme in javascriptってjavascriptで書かれたScheme実行エンジンを意図してました。
i = scheme_eval("(+ 1 2)");
みたいに実行できるようなの。これでiには普通の3が代入されるか、
自分で定義したclass SchemeNumberのインスタンスが入るか、が問題です。
前者が嬉しいけど、複素数とかの対応はどうするべきかな、と。

280 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 22:06:51 ]
>>275
俺言語との通信やプリプロセッサの拡張とか
funclist.scm:((f 1) (g 2) (h 3))
俺言語:
#s (define func-list (with-input-from-file "funclist.scm" read))
#s(for-each (lambda(x) (puts x "() { printf(\"myname:" (car x)
"\\n\"); return " (cadr x) "; }")) func-list)
register_func() {
#s(for-each (lambda(x) (puts "scm_add_proc(\""(car x)"\", (scm_proc_t)"(car x)", 0);"
" printf(\"defined:"(car x)"\\n\");")) func-list)}
main() {
register_func();scm_write(scm_eval_string(#ss`(+ ,@(map(lambda(x)(list(car x))) func-list))));;scm_newline();}

f() { printf("myname: f \n"); return 1; }
g() { printf("myname: g \n"); return 2; }
h() { printf("myname: h \n"); return 3; }
register_func() {
scm_add_proc("f", (scm_proc_t)f, 0); printf("function defined:f\n");
scm_add_proc("g", (scm_proc_t)g, 0); printf("function defined:g\n");
scm_add_proc("h", (scm_proc_t)h, 0); printf("function defined:h\n");
}
main() {
register_func();scm_write(scm_eval_string("(+ (f) (g) (h))"));scm_newline();}

function defined:f
function defined:g
function defined:h
myname: h
myname: g
myname: f
6


281 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 22:09:36 ]
>>279
おれだったらevalの結果をそのままwriteできるようにする。
結果が数値だけとは限らないので。
scheme_write(scheme_eval(scheme_read()));
もしくは
scheme_write(scheme_eval_string("(+ 1 2)"));
経験的に特に明示しない限りschemeならschemeの型で持ちまわる方が都合良い。




282 名前:デフォルトの名無しさん [2005/05/23(月) 23:45:06 ]
>>280
イラネw


283 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 23:50:14 ]
綾本って思いっきり中田さんの授業配布プリントに
説明を加えただけにしか見えないのだが。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<221KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef