Saplang - a toy interpreter for understanding programming languages