This is the mail archive of the guile@sources.redhat.com mailing list for the Guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: guile-vm-0.0


On Sun, Jul 30, 2000 at 05:15:51PM -0400, Keisuke Nishida wrote:
> > FWIW, Squeak <http://www.squeak.org> does byte-compiling that is
> > reversable -- i.e., you can get code back that looks very much like
> > what you got in, minus a few details (whitespace, comments, temporary
> > variable names, and extraneous ()'s).  I think they were planning to
> > fix the variable name thing, use automaticic indenting, and just
> > forget comments and ()'s -- maybe they've already gotten this far by
> > now.
> 
> Wow, that's interesting.  Yes, probably it's possible, but you'll loose
> every high-level semantics and abstraction.  `do' becomes an equivalent
> `let', for example.  Since abstraction is so important in Scheme,
> loosing it from the source is fatal.

Mmm... now that I think about it, Smalltalk is more regular than
Scheme, which makes it easier.  The only special form is the if
statement (ifTrue:ifFalse:) and the integer for statement (to:by:do:)
for performace reason, and thus there's almost no optimizations the
bytecode compiler could do anyway.  That is, there's no macros (like
`do') which transform the code ahead of time, and there's no aliases
-- all method calls are method calls, even addition is a dispatched
mathod call that the bytecode compiler passes on to the interpreter
(which makes some optimizations itself).  And it doesn't have closures
(quite), so all method calls are by name, i.e., unambiguous.

I guess Scheme is too different for this to be possible.

  -- Ian

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]