[virtmach] lambda (again)
    Peter_Murray@allegiance.com.au 
    Peter_Murray@allegiance.com.au
    Mon, 13 Dec 1999 12:16:13 +1000
    
    
  
Sorry about the previous blank message.....
> I'm not sure what a 'lambda' instruction would do.  I suppose it would
> convert a sequence of data plus a function description into a sequence of
> instructions?  This seems to be a better task for a language than for
> a VM, although controlled dynamic code creation would be nice
> for a VM.
I mentioned previously a book describing a simple VM for scheme (Lisp In
Small Pieces).  With regards to the current lambda topic, I thought maybe
some of you would be interested (or maybe not) to see a dump of the
bytecodes generated for this VM from a couple of relevant scheme
statements.
((lambda () #t))
   [CREATE_ACTIVATION_FRAME0]
   [LINK_ENV]
   [LOAD_TRUE]
   [RETURN]
(let ((simpleFn (lambda () #t)))
  (simpleFn))
   [CREATE_CLOSURE_AND_SHORT_GOTO_FORWARD] 2
   [LOAD_TRUE]
   [RETURN]
   [PUSH_VALUE]
   [CREATE_ACTIVATION_FRAME1_AND_PUSH]
   [POP0_IN_FRAME]
   [LINK_ENV]
   [SHALLOW_REFERENCE0]
   [PUSH_VALUE]
   [CREATE_ACTIVATION_FRAME0]
   [POP_FUNCTION_AND_GOTO]