SCAM, a flexible, scheme-like language for teaching programming language concepts | IEEE Conference Publication | IEEE Xplore