What kind of classification would Snap! have? (Read below)

So when I ask about classification, I'm kinda expecting results about the way Snap! works. Like is it an interpreted language, or compiled language, or a mix of both, or neither?

it's an interpreted language because it doesn't compile the project before running, it reads the code as it runs.

It's an interpreted language...?

Didn't know that. Is it really?

oh, and also, you can edit the code while the project is running, which wouldn't be possible if it were compiled.

It's interpreted except for the experimental feature of compiling the function input to the higher order functions.

ego-lay_atman-bay is basically right about the relationship between liveliness (being able to modify running code) and interpretation, but the distinction between interpreted and compiled languages has gotten fuzzy since the invention of just in time compiling. In the case of Snap!, the idea is that modifying running code is actually pretty uncommon, especially in compute-intensive projects. So we could compile all scripts (into Javascript virtual machine code), notice when you modify a script, and recompile that one script before letting it continue. Unless you're writing a huge program without procedures, recompiling just one script won't slow the project noticeably.

We have a very, very partial attempt at compiling only code inside a WARP block (because that's the code you want to run fast) that we're playing with (done by a Berkeley student). But it's still in kind of sketchy condition so don't expect it soon!