Pascal is the other great language, that we have lacked a compiler for on RISC OS. Though the language itself is easily an equal to both C and BBC BASIC V, with some abilities that leave both in the dust.
Even though function/procedure pointers may be more limited in Pascal than C, it does have the ability to implement them. The one short side in pascal is that typecasting is implementation dependant, though most Pascal implementations just copy the implementation of Borland Turbo Pascal for these extensions.
Pascal is the one language for which the object oriented version is reasonable, and has not gotten way out of hand. While I do not much like OO, if you are going to do OO do not get to out of hand with it, instead use Pascal (not Oberon, or one of the other follow on languages).
I hope to get some good information on Pascal up on this page before long, though that is going to require a decent pascal compiler that produces machine language AIF output and is 32-bit R15 compliant.