Project Summary for MuLE
An Environment for Interpreter-based Projects for the
Programming Languages Course
The MUltiple Language Environment (MuLE) is a teaching tool for the programming
languages course which enhances the students' grasp of fundamental programming
language concepts, constructs and paradigms and deepens the students' appreciation of
the relationship between language features and their implementation. The software
tool, MuLE, supports interpreter-based projects for multiple programming language
paradigms (e.g. object-oriented, procedural/imperative, functional/applicative,
logic/declarative). The built-in interpreters are SLam (Simple Lambda language,
a functional language), SPoc (Simple Procedural language, an imperative language),
SOOP (Simple Object Oriented Programming language), and SLic (Simple LogIC
language, a declarative language). The interpreters are designed to share as
much code as possible to facilitate students moving from one interpreter to
another for projects.
The current version of MuLE (completely redesigned in 2000) is implemented in
DrScheme, a completely free (GNU Public License) version of Scheme which runs on
Windows (95/98, NT), UNIX, and Macintosh, and which has strong graphical support
for GUI development. A number of lab modules for classroom use have been developed
as part of the standard MuLE package.
MuLE offers simple demonstration languages (SLam, SLic, SOOP, SPoc) which have
a number of pedagogical uses:
- Introductory projects which introduce the MuLE environment and its implementation language, Scheme.
- Teaching by counter-example projects which involve keeping all aspects of a simple language constant while one particular feature is changed to explore the effect of that design on the expressive power and efficiency of the language.
- Programming within the context of a larger existing program (PIC) projects which require students to understand the overall design of a particular interpreter and the flow of information through the interpreter to implement a specific component.
- Programming in the Large (PIL) projects where students must design and implement 500-1,000 line modules that interface with several other components of the interpreter.
For More Information, see:
L.A. Smith King, John Barr, and Ben Coleman "What Could Be More SLic?: Projects for the Programming Languages Course", Proceedings of the 31st SIGCSE Technical Symposium on Computer Science Education, Charlotte, NC, February 2001.
NSF CCLI-DUE 9952398, L.A. Smith King, College of the Holy Cross (PI), John Barr, Ithaca College (co-PI), "An Environment for Interpreter-based Projects for the Programming Languages Course", January 2000-June 2001.
John Barr and L.A. Smith King, "Teaching Programming Languages by Counter-Example", The Proceedings of the Eleventh Annual Eastern Small College Computing Conference, New Rochelle, NY, October 20-21, 1995.
L.A. Smith King and John Barr, "An Environment for Interpreter-Based Programming Language Projects", Proceedings of the 26th SIGCSE Technical Symposium on Computer Science Education, Nashville, TN, March 1995.
John Barr and L.A. Smith King, "Interpreter-Based Projects for a Traditional Programming Language Course", The Journal of Computing in Small Colleges, Volume 10, Number 2, November 1994.