A. Is the compiler for the device open source?
Yes, the compiler used is gcc for ARM. But the easiest solution would be to use the mbed toolchain, which is based on yotta, so you would need to get all of that installed as well.
B. I know the Bord exempts .hex files is this compiled machine binary code or interpreted.
The hex file is machine code that gets loaded directly into the microbit flash. Some people might think that MicroPython is interpreted, but that's not quite the case (if you want to know more, you can check out
this presentation), nevertheless the micropython output produces a hex file that includes the runtime with your python script attached.
C. Can I compile c and c++ for the device.
Yes, you will need more than just the compiler though, unless you are planning to reimplement all low level stuff. Basically it uses mbed (which uses the nordic libraries for this platform) and a "device abstraction layer" (DAL), more info at
http://lancaster-university.github.io/microbit-docs/