An Overview of Dart, Part 1
For example, early versions of Haskell generated C code, and the first version of Erlang was written as an evaluator in Prolog (which is why Erlang syntax is very similar to Prolog).
There are advantages and disadvantages to this approach. The obvious advantage is that you get something that works quickly. The disadvantage is that you are limited by the capabilities of the target language.
In terms of abstract model, Dart has a lot of similarities with Smalltalk. They have a similar class and memory model, for example, although Dart classes are not first-class objects in quite the same sense as Smalltalk (for example, you cannot override static methods, the Dart equivalent of class methods). The syntax is heavily inspired by Java and C++, although the worst parts of C++ are thankfully avoided.
There are also some odd choices in terminology. For example, Java and C++ refer to elements in an object as fields, which are either object fields or static fields. Smalltalk languages refer to these as instance variables, and correspondingly have class variables that are part of the class instead of the instances. Dart talks about instance variables and static variables. This is somewhat indicative of trying to shoehorn two mental models into the same language.