mokeheheのScheme日記

ツッコミ、添削大歓迎です。いろいろ教えてください。

2008-01-27

バッククォート

同じくR5RSの「4.2.6 準引用」に、「(quasiquote (foo bar))」 で「`(foo bar)」、「(unquote a)」で「,a」、「(unquote-splicing a)」で「,@a」と同じと書いてある。

たけおかたけおか2008/07/27 20:18通りすがりの者です(もう、ここはチェックしないかも)
&& Optimization of GCL/KCL を書いている者です。

> コンパイラどうなってんだ?
CommonLispならコンパイルそのものは、あんまり難しくありませんよ。直感どおりにコードを生成すればよし。インタープリタからの呼び出しも、難しくはないはず。
問題は、実行中のLispインタープリタに、コンパイルした機械語コードをリンクする、いわゆる「インクリメンタル・リンク」を実現するテクニックです。それは、OSや、リンカを十分に理解していないと、うまく実装できないでしょう。
また、もっと本質的に難しいのは、ガーベジ・コレクタが動いたときに、コンパイルド・コードとうまく共存するかです。すごく単純に言うと、コンパイルド・コードが一時的に、リスト(など)のポインタを機械語レジスタの置いたときに、ガーベジ・コレクタが、そのレジスタをチェックしないと、矛盾が生じる、というような問題が出るので。

トラックバック - http://sicp.g.hatena.ne.jp/mokehehe/20080127