Different languages hosted on the same VM. Ten years ago if you said JVM the only language to come to mind was Java. Now it's common to think of Clojure, Scala, JRuby, Rhino, etc. too.
A higher-order functional language allows higher order functions like map, filter and foldl (functions on functions). A first order language allows to define functions, but not on other functions. And a zeroth order language does not allow you to define functions (or name anything) as far as I figure.