`(Hello ,world)

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

2008-04-12

Three implementation models for scheme

| 08:47

BiwaSchemeに式を打ち込むと、コンパイルされた中間コードが見れる:

((lambda (x) x) 1234)
[frame
   [constant 1234
   [argument
   [close 0
      [refer-local 0
      [return 1]]
   [apply 1]]]]
[halt]]

L2Lisp in Ruby:CodeZine

08:41

 P.Graham著『On Lisp』に示されているように、現代的なLispプログラミングでは静的スコープ(字句的スコープ)と末尾呼出し(末尾再帰を含む)の最適化のもとでのマクロが重要な意味をもちます。しかし、今まで処理系作成の初心者が内部に手を入れやすい手頃な大きさの実装が事実上ありませんでした。

 ここでは、そういったモダンな特徴を備えた小さなLispインタープリタL2LispをRubyで作ってみます。L2Lisp(Little Lambda Lisp)は、Lispの理論的背景であるラムダ算法(lambda calculus)に対し、有力なLisp方言であるSchemeと同程度に忠実である一方、その他の点では広く普及しているEmacs Lispのサブセットとしたオリジナルの小型Lispです。

CodeZine(コードジン)

すごい。

あと、アリティ(arity)というのを初めて知った

この用語は、ラテン語起源の英単語において単項の演算を unary (operation), 2 項を binary, 3 項を ternary, さらには一般に n 項を n-ary というように接尾辞 -ary をつけた形容詞で引数の個数を表すことから来ている

アリティ - Wikipedia
トラックバック - http://cadr.g.hatena.ne.jp/mokehehe/20080412