I believe CP/M was written entirely in 8080 assembly language.
Not initially -- see below.
PL/M wasa PL/1 subset, I think Gary Kildall was the main programmer behind that,
Gary was a language person not an OS person. PL/M was developed by him under contract with Intel for the original Intel 8080 development system.
and I'm sure there was a version for CP/M, but I doubt CP/M was written
in it, just due to what I've seen of it.
I have a port of CP/M for a
machine I've made and sold, where another programmer and I did the
porting work, and from what I've seen of early DOS and how it was in
many ways modeled after CP/M, it doesn't seem like CP/M was written in
anything other than 8080 assembly. However I've only seen the BIOS (not
IBM PC BIOS, but the original coining of the term for CP/M, standing for
"basic input/output system"),
Again, the term came from the Intel 8008 development system.
so on the other side, inside of CP/M, I
guess it might be anything, but it seems like it is most likely 8080
assembly language too.
As a compiler guy, Kidall was once quoted as the reason who originally wrote CP/M to sell more copies of his compiler.