You can program 8051 in c using tinycc. It functions great as an assembler as well. You can structure the parts that must be in assembly as c functions using inline assembly. Very convenient!
Using c does come at the cost of some code compactness, but you can selectively optimize as the need arises.
Using c does come at the cost of some code compactness, but you can selectively optimize as the need arises.