MuLE in the Classroom

Pre-Lab Exercises Designed to familiarize a student with the language Scheme and the DrScheme environment.

Lab Instructor's Guide Guide to Hobbling the MuLE System for use with Laboratory Assignments below. (Password Protected)

    Labs Lab Objective
1. SLic WarmUp After completing this lab, one should feel more comfortable with both the language scheme and the MuLE architecture. These functions can be written independently of SLic and tested outside the MuLE/SLic environment.
2. SLam WarmUp After completing this lab, one should feel more comfortable with both the language scheme and the MuLE architecture as well as an understanding of how parsing works in MuLE's languages. This lab requires answering questions about the SLam parser, explains the scheme extension, variant-records and runs a modified (extracted) parser on some expressions.
3. SPoc Bindings An understanding of how symbols, letters, and values are represented in memory and how variable/value pair bindings in SPoc represent/implement the former theoretical concept. Gain an understanding of how a language program stream is checked for correctness through parsing and the relationship between a grammar which is a language generator and a parser which is a language recognizer/acceptor.
4. SPoc R to L versus L to R An understanding of how different results may occur when the only change in the language is its default associativity and/or precedence. Depending on instructor preference there could be no coding required in this lab. There is an option allowing for the implementation of a new associativity/precedence scheme.
5. SLam Scoping An understanding of how different results may occur when the only change in the language is whether it is statically or dynamically scoped. An understanding of how the SLam environment is implemented.
6. SLam Parameter Passing Mechanisms To understand the relationship between semantic models of procedure parameter passing ("in", "out" and "in out") mechanisms and different possible implementations. In particular, it examines the differences between pass-by-value (an implementation of the "in" semantic model), which is currently used in MuLE's SLam language, and pass-by-name (an implementation of the "in out" semantic model), which is to be implemented.
7. SOOP Class implementation To explore objects by implementing them in the SOOP interpreter. A secondary goal is to understand that objects are simply an encapsulation of state and methods to access and manipulate that state and to see that this can be implemented through functions as well as objects.
8. SLic Unif To understand unification, the process of matching two expressions.


MuLE Home