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


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

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



1 名前:デフォルトの名無しさん [2005/12/20(火) 21:43:02 ]
プログラミング言語処理系の開発に興味のある人達のスレッドです。

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

過去スレ
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/
6 pc8.2ch.net/test/read.cgi/tech/1115335709/
7 pc8.2ch.net/test/read.cgi/tech/1129287390/
8 pc8.2ch.net/test/read.cgi/tech/1131273918/
関連リンクは多分 >>2-10 あたり

207 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 21:14:05 ]
俺言語作ってる様な奴は大抵秘匿主義だからな。
俺もそう。
こんなスレのレベルが高くなるわけないだろ。

208 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 21:36:59 ]
>>207
俺なんかこのスレの誰も及ばないくらいレベル高いことを秘匿してるけどな。

209 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:25:42 ]
>>202
(let ((a 0))
  (define hoge (lambda (x) (+ a x))))
(hoge 10)
だと、3行目ではシンボルhogeに値が束縛されてないと思うぞ。

(define hoge #f)
(let ((a 0)) ; frame1
  (set! hoge (lambda (x) (+ a x)))) ; frame2
(hoge 10)

たぶん↑のようにしたいんだと思うけど、
この場合だと、letを評価した時点でframe1が作られ、top <- frame1 になり、
lambdaで作られた手続きは top <- frame1 の frame1 部分を参照する。
で、(hoge 10)が評価されたときに frame2 が作られて
top <- frame1 <- frame2 になる。
あとはaを検索するときは上から順に。という感じかな。

top <- frame2 のようなリスト(か何か)も必要になるけど、
これは継続絡みの話だと思う。

210 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:26:23 ]
このスレ役に立つレスは>>1-6まで
あとは屑

211 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:26:28 ]
>>181
>Lisp起源ニダ
>Ioも実はLispが起源ニダ

Ioじゃないけどそれに近い主張と、
shiro.dreamhost.com/scheme/trans/icad-j.html

それに対する反論。
shiro.dreamhost.com/scheme/trans/IsPythonLisp-j.html

反論側のほうが説得力あるような。
>LispのS式表記は、声高に、はっきりと、過去半世紀の間拒否されてきた。

まったくだ。

Lisp信者の改宗の話。
www.gembook.jp/tsum/page.pys?wiki=How+I+lost+my+faith

212 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:29:14 ]
俺には反論側のほうが全く説得力ないように見えるけどな。

213 名前:デフォルトの名無しさん [2006/01/04(水) 23:33:08 ]
>>211
最後の記事を実際に見てみると、Lisp信者が改宗した話というよりは、
Lisp信者がLispを絶賛してる話にしか見えないぞ。

214 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:39:29 ]
スレ違いも甚だしい
これだからLisp厨は・・・

215 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:40:21 ]
211はどう見てもアンチLispだがな。
Lisp厨=アンチLispだったら同意。



216 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:40:36 ]
> 他人がレベルを高くしてくれるのを待ってるだけの他力本願野郎

待つのを諦めたからの提案だと思うけど。


217 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:41:10 ]
>LispのS式表記は、声高に、はっきりと、過去半世紀の間拒否されてきた。

これってどういう意味で言ってるのか知らないけど、括弧がネストしすぎると
見難いとかめんどくさいとかなら、Lisp信者でもそう思ってると思うぞ。

218 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:46:40 ]
>>216
待ってないで自分で書き込めばいいのにね。

219 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 00:04:53 ]
>>206,209
THX!! なんとなくわかってきたような。

hoge に束縛された closureオブジェクトは
メンバに top->frame1 のフレームリストをメンバに持っている、と。
で、(hoge 10) という関数呼び出しを評価するとき
hoge はクロージャなので、hoge.env( top->frame1 ) に対して、frame2(10を束縛)を
リストに連結して評価する( top->frame1->frame2 )、と。
もし hoge がプリミティブなら掴んだ環境を持っていないので、
素直に10を束縛したフレーム(frame'とする)を
top に連結して( top->frame' )評価する、ということでしょうかね?

>>209
>あとはaを検索するときは上から順に。
上からというのは最下層からということですか。
top からではないですよね?

ありがとうございました。

220 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 00:13:24 ]
S 式を叩けば良いみたいな風潮は何とかならんかね。頭悪過ぎなんだが。

221 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 00:36:57 ]
つか、S式のメリットって、マクロ以外にあるの?
そのマクロにしてからが、

www.rubyist.net/~matz/20030910.html
>マクロは生産性の向上には有効、わかりやすさにはかなり不利

って言われてたりするわけだが。

222 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 00:56:31 ]
知らない/調べない/でも批判する...

223 名前:209 mailto:sage [2006/01/05(木) 00:58:00 ]
>>219
> 上からというのは
frame2側からね。

> もし hoge がプリミティブなら掴んだ環境を持っていないので…
プリミティブって、トップレベルで定義された手続きの事かな?
1. topを普通のフレームと同じように扱って、
  NULL <- top <- frame1 <- frame2 ....
  トップベルで定義された手続きはtop環境を参照。

2. topを特別なフレームと考えて
  NULL <- frame1 <- frame2 ...
  (検索して見つからなかったらtopから検索)
  トップレベルで定義された手続きはNULLを参照。

の、どっちかかな。

>>221
個人的には、リストがやたらと扱いやすいことを挙げたい。

>マクロは生産性の向上には有効、わかりやすさにはかなり不利
「構文を言語のユーザが拡張する」という考えに慣れていないだけだと思う。
matz氏自身、Rubyの構文の拡張を何度も行っているが、
Rubyを拡張したことでRubyがわかりづらくなったと本人は言ってないよね?

224 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 01:25:28 ]
>>223
>個人的には、リストがやたらと扱いやすいことを挙げたい。

それは、リスト部分だけ、たいがいのスクリプト言語にある配列のリテラル
みたいに表記できるだけでは不足なの?
あとは簡潔に記述できるクロージャがあれば、(処理を変数などに代入することも
できるんだから)プログラムコードまでS式である必要は薄いんじゃ、って
疑問なんだけど。

>「構文を言語のユーザが拡張する」という考えに慣れていないだけだと思う。

ていうかその考え自体に批判的なんじゃないかなあ。
C++のオペレータオーバロードが、同じ文脈でよく批判されるよね?
Rubyの場合、Matz氏は言語設計者なんだから、拡張しても問題なし、
でもユーザがやるのは許さん、と。


225 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 01:43:42 ]
そんなに知りたかったら自分で触ってみろよ。



226 名前:223 mailto:sage [2006/01/05(木) 02:52:56 ]
>>224
> リスト
「後ろ半分だけ実体が共通なリスト」とか、
「変数aの参照しているリストの3番目以降のリストを変数bに参照させたい」とか。
全体から見ると、リストというよりはグラフになるのか。
このスレに沿った話題だと、
構文木をいじったり、クロージャのリストを実装したりが簡単。

> プログラムコードまでS式である必要は薄いんじゃ
マクロを一切使わないなら必要ないんじゃない?
自分の作りたいプログラムを書くのに十分な構文をサポートしている言語が
常にあるなら、と読み替えてもいいけど。

> C++のオペレータオーバロードが、同じ文脈で
その辺の話なら同意。
利点欠点は大体同じだよね。
マクロの利点欠点ははオペレータオーバロードよりもずっと大きいけど。

227 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 07:25:37 ]
>マクロは生産性の向上には有効、わかりやすさにはかなり不利

いいんじゃない?生産性が上がればいいんだし。

228 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 12:01:40 ]
>>211
御大ですら自分の好きな言語が一番素敵厨かYo!と思いマスタ(w


229 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 12:18:15 ]
他人を改宗させようとは思わないけれど。
頭の中でコードを考えてる時はグラフなわけ。
S式だとそれをそのままシンプルに書き下せる感じがする。
そして、Emacsの式単位 (文字単位や行単位でなく) の編集は
頭の中のグラフを直接いじっている感覚がある。
他の構文は、読むときも書くときもいちいち頭の中の
構造と字面とを翻訳してやらないとならないんでかえって面倒。

230 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 13:25:03 ]
a した結果を b して、その結果を c して、その結果を d する
というのを、頭の中では、
(d (c (b (a ... ))))
と考えるんだ、凄い頭だね

231 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 13:41:18 ]
>>230
>a した結果を b して、その結果を c して、その結果を d する

この時点で違ってんじゃないの、Lisp 脳と C 脳では。

232 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 13:50:39 ]
要は人によるってことでおさまりそうな議論だな

233 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 13:52:08 ]
S 式に特定した話というではないが、read/write invariance なのが良いとは聞くね。
計算途中のデータを引っ張りだして、ちょっと修正してまた計算みたいなのを何も考えずに出来る。

234 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 14:58:34 ]
>>230
そっちの方向にネストが深くなるときってのは、だいたい
逆に考えてる。欲しいものが先にあって、最後にdを呼べば
それが得られる、dがその結果を出すためにはcが返す値
が必要で… とトップダウンで。
逆にボトムアップで考えるときはletが深くなる。構造が
見えて来たらどんどん整理するけど。




235 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 15:18:04 ]
>>231
Cでも d(c(b(a(..)))) なんだけど・・・
C++なら、hoge.a().b().c().d() とも出来る(どっちも出来る)が



236 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 15:37:37 ]
>>235
文法の話じゃなくて、「〜して、次に〜する」という手続き的な考え方をしていないんじゃないかって事。

237 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 18:14:22 ]
>>235
あ、それ初めて知った

238 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 18:25:13 ]
逆にボトムアップで考えるときは・・・、とか書いてんじゃんw

let云々はCで言えば
a_result = a(...);
b_result = b(a_result);
c_result = c(b_result);
d(c_result);
といったやり方だし
これを、S式で書くとグダグダになるが

239 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 19:04:44 ]
だからツリーをいじってるって言ってるだろ。
(let ((ra (a x)))
(let ((rb (b ra)))
(let ((rc (c rb)))
(d rc))))
でカーソルが一番最初にある時に、rcを束縛する
let式に行くのは C-M-d C-M-f C-M-f C-M-d C-M-f C-M-f
そのlet式全体をリファクタリングするために外に出したければ
C-M-Space C-M-w でカット。
(a x), (b ra), (c rb) の部分がどんなに複雑になっても
この操作は変わらない。木構造が変わらないからね。

a_result = a(...);
b_result = b(a_result);
c_result = c(b_result);
d(c_result);

でa(), b(), c() の部分が何行にもわたる式になった時に
同じことができるのかい。


240 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 19:08:17 ]
スレ違い乙

241 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 19:12:42 ]
emacs講座ですか

242 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 19:16:25 ]
>>238
let*ってそのためにあると思ってたんだけど…。
(let* ((a-result (a ...))
     (b-result (b a-result))
     (c-result (c b-result)))
     (d c-result))
使った事ないけどさ。


243 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 19:26:42 ]
どっちにしても、ぐだぐだやん。

244 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 20:06:48 ]
何がぐだぐだなのかわからん。

245 名前:デフォルトの名無しさん [2006/01/05(木) 21:30:18 ]
Lisp脳と聞いて、Ruby脳が飛んで着ました。



246 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 21:42:14 ]
Flexのライセンスについて質問なのですが、いまいち不明なところがあります。
Flexをつかって生成されたものに関してなのですが、

Note that the "flex.skl" scanner skeleton carries no copyright notice.
You are free to do whatever you please with scanners generated using flex;
for them, you are not even bound by the above copyright.

とあるので、生成されたものに関しては著作権表示すらなしに組み込むことが可能であってますでしょうか?

それとも、
This product includes software developed by the University of California, Berkeley and its contributors

この一文はやはりいれておかなければならないのでしょうか?

識者の方々よろしければご教授いただけたらとおもいます。

247 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 23:24:12 ]
普通に読めば著作権表示入れる必要はないと思うけど…。

248 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 23:42:56 ]
ここは Copyright and/or Copyleft については素人集団だからな。
一応、著作権スレにでもあたってみたら?

249 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 23:49:49 ]
そういうツールで生成したやつは、たいてい著作権的には
ツールの方の著作権は関係ないって感じになる。

ライブラリリンクとかで、生成した成果物が、他人の著作物を含むと
ややこしくなるがこの場合そうじゃないしな。

250 名前:デフォルトの名無しさん [2006/01/06(金) 00:14:17 ]
>>249
その程度なら誰でも想像できるんだけどな
中途半端なカキコ見は混乱のもと


251 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 00:29:25 ]
ていうか、246はどう見ても著作権表示入れる必要はないと
はっきり書いてあるようにしか見えんが。

252 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 00:56:01 ]
>>251
俺にもそう読める。246よ著作権表示は一切不要と心得よ

253 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 01:23:45 ]
246です。

みなさま質問に対してのご返答ありがとうございました。

ライセンスは色々とありまして、その中でも、特にツールで生成されたものに対しては扱いが分かりづらいものが
ありまして質問させて頂くに至りました。
コンパイラ・スクリプトエンジンに関連あるFlexについての質問でしたが、微妙にスレ違いだったかもしれません。
そのために気を害してしまった方がおられましたら、お詫び致します。


254 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 01:25:31 ]
もともとスレ違いの連続みたいなスレだから

255 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 03:20:02 ]
俺言語を作ってる人達の雑談スレッドだろ



256 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 05:58:15 ]
>>255
俺言語は非難しないが、俺様言語な香具師が来ると痛すぎ

257 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 08:06:18 ]
俺言語と俺様言語の違いとは?

258 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 23:18:40 ]
Lisp と Ruby の違いと解く。
さて、その心は?

259 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 23:55:00 ]
>>257
俺言語は局所的用途の為に作られたもの
俺様言語は自己満足のたまもの。



260 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 23:58:22 ]
WinAPIの質問ですいませんけど、
WindowsでJIT作ろうとしたら

void *mem = VirtualAlloc(NULL, size, MEM_COMMIT, PAGE_READWRITE)
memの先にコード書き込む
VirtualProtect(mem, size, PAGE_EXECUTE, &old)
ジャンプする

で良いんでしょうか?


261 名前:デフォルトの名無しさん mailto:sage [2006/01/07(土) 00:46:43 ]
WRITEをはずしておくと意図しないアレをアレできるからアレかも

262 名前:デフォルトの名無しさん [2006/01/07(土) 19:10:16 ]
>>259
うまい!
あんた、扇子あるよ。


263 名前:デフォルトの名無しさん mailto:sage [2006/01/07(土) 20:11:22 ]
ま、何を作ろうともLispに還元されるわけだけどね。

264 名前:デフォルトの名無しさん mailto:sage [2006/01/07(土) 21:27:15 ]
>>261
PAGE_EXECUTE

コミット済みページ領域に対する実行アクセス権を有効にします。
このコミット済み領域の読み取りまたは書き込みを行おうとすると、
アクセス違反が発生します。

265 名前:デフォルトの名無しさん mailto:sage [2006/01/08(日) 05:32:27 ]
>>264
そうだったんか・・・
PAGE_EXECUTE_READ とは別か・・・



266 名前:デフォルトの名無しさん [2006/01/08(日) 23:06:40 ]
りんご

267 名前:デフォルトの名無しさん mailto:sage [2006/01/08(日) 23:30:44 ]

===== FORTRAN 77 =====


268 名前:デフォルトの名無しさん mailto:sage [2006/01/09(月) 01:38:26 ]
DEFINT A-Z

269 名前:デフォルトの名無しさん [2006/01/10(火) 23:40:58 ]
なんで、最適化用語って変なのばかりなんだろう?
もうちょっと、かっこいい名前つけられんのかねぇ?

270 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 23:51:15 ]
コンパイラの用語って変なのばっかり。
還元(reduce)って言葉見つけたとき、酸化還元の還元かとおもったよ。

271 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 23:56:40 ]
合ってるよ。reduce には酸化還元の還元という意味もある。

272 名前:デフォルトの名無しさん [2006/01/11(水) 00:05:43 ]
コンパイラ用語に使うときは意訳でよいから別の言葉を使って欲しかった。

273 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 00:42:29 ]
もとに戻すんだから意味的にも還元で問題なかろう。
日本語力の乏しさを棚に上げて何言ってんだ。

274 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 01:05:57 ]
>>269
例えば?

>>272
じゃ、「リデュース」で。

275 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 01:22:05 ]
上方遷移…余計わからんな



276 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 03:36:45 ]
>>270
コンピュータ用語自体変なの多いから気にスンナ


277 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 05:21:22 ]
自己満足のために、lispのdefmacroのc言語風なものを実装してます。
for(i=0,i<10,i++,printf("%d\n",i));
といったかんじのことは出来るようになったのですが、
for(i=0;i<10;i++){printf("%d\n",i);}と言った外側にブロックを
持ったマクロは、どうやって実現したらいいか悩んでます。
何かいい参考資料ないでしょうか???

278 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 06:05:07 ]
>>277
ttp://mike-austin.com/blog/2005/10/dylan-macro-system-is-badass.html

279 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 08:25:43 ]
>>278
ありがとうございます。
Dylanですか。初めて聞きました。
結構古い言語なんですね。仕様読んでみます。
使ってみたい気がするのですが、windowsバイナリとか落ちてないのかなぁ。

280 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 08:36:56 ]
>>279
商用の Dylan 処理系がオープンソースになったものがあるよ。
www.gwydiondylan.org/downloads/opendylan/

281 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 12:53:41 ]
>>280
ほんとだ。ちょっと探せば見つかるじゃん。orz
ありがとうござます。

Hygieneって書いてあるので、基本的に名前の衝突が回避されていて、
BNFを書くような感じでパターン照合を行うものがDylanのマクロと考えてよいのでしょうか?
パターン照合はやったことがないのですが、
構文解析器の自動生成ができる技術力ないと作れないような気がするのですが。。。


282 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 13:27:11 ]
>>281
Schemeのsyntax-rulesの美しさに萌えろ。S式最強。

283 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 14:11:20 ]
>>282
Schemeのsyntax-rulesが作れれば、そりゃ、もー、うれしいんですけど。
S式だとS式でない場合に比べて、実装が簡単になるのでしょうか?
それだと、うれしいんだけどなぁ。


284 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 15:55:15 ]
>>283
どんな文法を使おうと、結局はツリーにしてマッチや変換をかけるでしょ。
S式の場合は最初からツリーになってるから前半の(どっちかっつうとtrivialな)
ステージが省ける、ってだけじゃないかと。
言語デザイナの立場だと文法も重要なんだろうけど。


285 名前:269 mailto:sage [2006/01/11(水) 20:30:31 ]
>>274
例えば、皮剥き



286 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 20:53:09 ]
パターンマッチマクロってどんな syntax の言語でも実装可能なの?

287 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 00:51:45 ]
自分の欲しいsyntaxのマクロを人に書かせたいと見たw


288 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 06:39:51 ]
>>286
可能か不可能かなら可能でしょう。
使いやすいとかわかりやすいものになるかどうかは別。

289 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 08:35:55 ]
>>288
どうもありがとう。

>>287
Ruby や ECMAScript, Python は acceptable lisp と言われているけど、
マクロを追加すればもっと Lisp の強力さに近付くかなと。

290 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 11:28:30 ]
>>287

自分は、schemeのsyntax-rulesを実装したいのだけど、
わからないので、簡単なソース付きで解説してほしいです。

自分のほしい言語をすべて書いてもらえたら幸せです。
schemeのスレとかで聞いたほうがいいのかなぁ?

>>287>>288>>289
PythonはDylanに似たマクロが入るとかいう噂がある(あった?)ようです。
どんな言語でも適用できそうなので、(よくわかってないのですが)
Dylanのマクロのアイディアはとにかく凄いような気がします。
C用のDylan風マクロとか、Java用のDylan風マクロとかあったら
そりゃもう、うれしいんじゃないかなぁと思います。


291 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 11:40:09 ]
schemeのスレで質問してみました。

292 名前:トラックバック ★ mailto:sage [2006/01/12(木) 21:15:09 ]
【トラックバック来たよ】 (ver. 0.11)
[タイトル] 萌え言語を作ろう!
[発ブログ] プログラム技術@2ch掲示板
pc8.2ch.net/test/read.cgi/tech/1131442510/l50
[=要約=]
日本語で書ける言語では「ひまわり」なんてのがありますが
いまいち使いづらいというか、萌えないw

ということで、萌え萌えな言語を作ってみようと言う企画です。





293 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 22:06:16 ]
萌言語案

ハァハァ{



の機能

while(1){
...
}

294 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 23:04:56 ]
萌えとハァハァは別だよ派
萌えもハァハァも一緒だよ派


295 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 00:30:47 ]
#define _ 1

とかやると、

for (;_;) 仕事;

となるわなw

萌えないが、実感はむしろこっちのほうが(泣)




296 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 00:42:10 ]
#define T_T 1

while (T_T) 仕事;

297 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 18:49:31 ]
#define ハァハァ 999

while(ハァハァ) 言語スレ

298 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 23:33:15 ]
変な用語の例(その2)

・せわしない。。。
・なまけた。。。

299 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 00:03:57 ]
bool A = ture;
bool T_T = true;

for(;A;) wile(T_T) int y=-(T_T);

300 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 10:39:00 ]
assert マクロって must って名前にしたほうがよくない?

assert ( a == b ) → must( a == b )


301 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 11:31:50 ]
assert that a equals b (thatは略可)
はそのまま読めるけど、mustはどう読んだらいいんだ?

302 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 13:16:28 ]
a == b で「なければならない」
should ( a == b ) とか must( a == b )


303 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 15:18:27 ]
must(a == b) を a == b でなければならないと読むのは
英語的におかしくないか。
! 演算子みたいに must が演算子だとして a must== b ならわかるが。

304 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 15:25:59 ]
must be (a is equal to b)
なんじゃないの。

305 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 15:42:50 ]
だから、それが英語的におかしいといっている。



306 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 15:50:52 ]
じゃ、 must be a condition of (a == b) は?

307 名前:300 mailto:sage [2006/01/14(土) 16:14:15 ]
いや、まあそんなに深い意味で発言したわけじゃないけど
英語的にどうこうというか、
自分的にはこっちのほうが直感的かなと思っただけ
初心者に assert を教えたらピンとこなさそうな顔してたもんだから






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

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

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