How do you implement a language with greater capabilities using subordinate languages?
The key point is that essentially all programming languages are equally powerful, and as powerful as we know how to make any computing system. That is, they can all simulate a Turing machine, up to the limitations of the computer they're used on. (Real computers can run out of memory; Turing machines can't.)

The only differences between programming languages is in how convenient it is to express certain ideas. For example, you can implement objects in C using structs containing function pointers, though it's not very convenient because the compiler doesn't help you much so you have to do a lot of things manually that something like C++ would do automatically for you.