Yeah like winston says, its a combination of both.. Which makes it better for debugging than compilation - but not as good as interpretation.. yet makes it faster than interpretation, yet not as good as compliation :)
Basically compiles sections of codes as it needs it, then re-uses it when...