Title: MuLE
1(No Transcript)
2MuLEMultiple Language EnvironmentAn
Environment for Interpreter-based Projects for
the Programming Languages Course
partially supported by the National Science
Foundation CCLI-DUE 9952398
3People
- Principal Investigators
- John Barr Ithaca College
- Laurie A. Smith King College of the Holy Cross
- Consultants
- Ben Coleman, PhD candidate, The College of
William Mary in VA - (Computer Science B.S. from Ithaca College
1997) - SLic.s implementation, SLic Labs
- Barbara Moskal The Colorado School of Mines
- Assessment Expert
4Students
- Holy Cross
- Dan Conti (2003) CVS, Technical support, Web
Page - Rachel Giguere (2000) SPoc.s port, features,
Manual - Sean Harrington (2003) Testing, Document
Proofreading, pre-labs - Raquel Ruano (2000) Testing, CVS
- Matt Rinaldi (2001) SLam.s port, features,
Manual, Web Page Scripting - Ithaca College
- Laura Henry (2001) SOOP.s port, several
classes, Manual - Hanh Pham (2002) SOOP.s port, several classes,
Manual - Lora Kassab (1996) pre-labs
- Jamie Scheinblum (2002) Utilities.s port, The
Launcher - Christian Stoehr (2000) Utilities.s port, The
Launcher
5A Glance at MuLE
6MuLEMUltiple Language Environment
- Tool designed for the programming languages
design and implementation course - In development since 1994
- Used at Ithaca College and Holy Cross
- NSF CCLI-DUE 9952398 (awarded January 2000)
- John Barr Ithaca College
- Laurie Smith King Holy Cross
- Innumerable students (Literacy, PL, Senior
Project)
7MuLE Structure
- Launcher (extensible)
- Utilities file
- 4 Interpreters
- SLam (Simple LAMbda) functional/applicative
- Awful choices SiFL, Sapp, Sunc
- SPoc (Simple PrOCedural) imperative
- SOOP (Simple Object Oriented Paradigm)
- SLic (Simple LogIC) logic/declarative
8MuLE Structure
- Written in Scheme
- Simple to learn (truth in advertising complex
features) - Small language (smaller than Lisp)
- Functional paradigm
- Uses DrScheme
- Provides GUI elements
- Truly Cross Platform
- Freely available http//www.cs.rice.edu/CS/PLT/pa
ckages/drscheme/
9MuLE Use
- Program in each MuLE language
- Examine interpreters to learn how language
features are implemented - Extend interpreters (counter-example/PIC)
- Write a new language (PIL)
10MuLE Use examples
SPoc program one declare a / b / c begin a
1 b 2 c ( 2 a b ) print a
end
SOOP (assign a make-box) (send a set-name
aaa) (send a set-val 1) (assign b make-box) (send
b set-name bbb) (send b set-val 2) (assign c
make-box) (send c set-name ccc) (send c set-val
send 2 send a b)
SLam (assign a 1) (assign b 2) (assign c ( 2 (
a b ) ) )
11MuLE SLic
b w . q X if b X and c X . b x
. r X if c X . b y . s
X if r X . c y . c z .
?- q X .
?- s X .
(( X y )) (( X z ))
(( X y ))
12Running MuLE
- Start PL Scheme, run Launcher
- Starting MuLE is not platform independent
- Windows Drag launcher.s onto DrScheme icon
- MacOS Drag launcher.s onto DrScheme icon
- Unix Type drscheme launcher.s
13Running MuLE
- Start PL Scheme , run Launcher
14Running MuLE
15Running MuLE
16Running MuLE
17Running MuLE
18Running MuLE (SLam)