A multiparadigm language approach to teaching principles of programming languages | IEEE Conference Publication | IEEE Xplore