in reply to Parrot 0.8.0, "Pareto principle" released!

Parrot is a virtual machine aimed at running all dynamic languages.
So that would include stack-based and stackless ones?
  • Comment on Re: Parrot 0.8.0, "Pareto principle" released!

Replies are listed 'Best First'.
Re^2: Parrot 0.8.0, "Pareto principle" released!
by moritz (Cardinal) on Oct 22, 2008 at 18:22 UTC
    What do you call "stackless"? That's usually the property of an interpreter or a VM, not of a language.

    Or do you mean all languages that don't explicitly use a stack (like Perl, Python, Ruby...)?

    Anyway, there's also a (currently broken) parrot implementation of forth, which is explicitly stack based. So I guess your question should be answered with "yes" ;-).

      yes, that was a rather vague question.

      When I said stackless versus stack, I wasnt referring to a stack as a data structure (as used in forth/factor/joy), but in the sense of stackless python which is not actually stackless, but separates the frame stack from the C stack.

      Now practically what that means for me is continuations in the language as opposed to a library like Contize which allows for succinct web programming. The stackless python homepage mentions other benefits.

        Well, parrot uses CPS (continuation passing style) for control flow, and I'm pretty sure it's stackless in the sense that a call to HLL function doesn't imply a function call (which would use the stack) in the vm. So it's easy to implement language-level coroutines efficiently.