slide1
Download
Skip this Video
Download Presentation
MuLE Multiple Language Environment An Environment for Interpreter-based Projects for the Programming Languages Course

Loading in 2 Seconds...

play fullscreen
1 / 18

MuLE Multiple Language Environment An Environment for Interpreter-based Projects for the Programming Languages Course - PowerPoint PPT Presentation


  • 342 Views
  • Uploaded on

MuLE Multiple Language Environment An Environment for Interpreter-based Projects for the Programming Languages Course. partially supported by the National Science Foundation CCLI-DUE 9952398. People. Principal Investigators John Barr Ithaca College

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'MuLE Multiple Language Environment An Environment for Interpreter-based Projects for the Programming Languages Course' - Pat_Xavi


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide2

MuLEMultiple Language EnvironmentAn Environment for Interpreter-based Projects for the Programming Languages Course

partially supported by the National Science Foundation CCLI-DUE 9952398

people

People

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

students

Students

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

mule multiple language environment
MuLEMUltiple 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)
mule structure
MuLE: 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
mule structure8
MuLE: 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/packages/drscheme/
mule use
MuLE: 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)
mule use examples
MuLE: 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 ) ) )

mule slic
MuLE: 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 ))

running mule
Running MuLE
  • Start PL Scheme, run Launcher
    • Starting MuLE is not platform independent
    • Windows:Draglauncher.sontoDrScheme icon
    • MacOS:Draglauncher.sontoDrScheme icon
    • Unix:Typedrscheme launcher.s
running mule13
Running MuLE
  • Start PL Scheme , run Launcher
running mule14
Running MuLE
  • Execute
running mule15
Running MuLE
  • Execute
running mule16
Running MuLE
  • Choose a language
running mule17
Running MuLE
  • Get a language window
ad