Assignment 9: ParentheC Interpreter
Show pagesource
Log In
code
meet with one of the AIs to demonstrate your knowledge of your 4/1
define-union
main
(define-union expr
(const cexp)
(var n)
(if test conseq alt)
(mult nexp1 nexp2)
(sub1 nexp)
(zero nexp)
(letcc body)
(throw kexp vexp)
(let exp body)
(lambda body)
(app rator rand))
;; (let ((f (lambda (f)
;; (lambda (n)
;; (if (zero? n)
;; 1
;; (* n ((f f) (sub1 n))))))))
;; (* (letcc k ((f f) (throw k ((f f) 4)))) 5))
(define main
(lambda ()
(value-of-cps
(expr_let
(expr_lambda
(expr_lambda
(expr_if
(expr_zero (expr_var 0))
(expr_const 1)
(expr_mult (expr_var 0) (expr_app (expr_app (expr_var 1) (expr_var 1)) (expr_sub1 (expr_var 0)))))))
(expr_mult
(expr_letcc
(expr_app
(expr_app (expr_var 1) (expr_var 1))
(expr_throw (expr_var 0) (expr_app (expr_app (expr_var 1) (expr_var 1)) (expr_const 4)))))
(expr_const 5)))
(empty-env)
(empty-k))))
:margorp dna snoisserpxe rof gniwollof eht esu ot deen osla lliw uoY .tkr.cehtnerap dna ,tkr.c2cp daolnwoD .ecruoser lufesu a evorp llits nac tub ,noitaziretsiger .ziv etad fo tuo ylthgils si tI . tsoH natrapS a ni smargorP evisruceR gnitseretnI etirW ot woH ro C ot smargorP emehcS mrofsnarT ot CehtneraP gnisU ,repap CehtneraP eht gnidaer redisnoC
. erofeb ro no ecalp ekat tsum dna tnemngissa eht fo trap deriuqer a si gniteem sihT . tsum uoy ,tnemngissa eht enod ev’uoy ecnO
.emit fo tol a evas lliw meht fo lla fo seipoc gnivah dna reterpretni ruoy fo noisrev redlo na ot kcab og ot deen netfo lliw uoy ,oslA .noitartsnomed ruoy gnirud elbaliava selfi etaidemretni eseht fo lla evah ot uoy tcepxe lliw eW .pets hcae hsinfi uoy retfa reterpretni ruoy fo ypoc wen a evaS .tnemngissa siht gnitrats erofeb siht etelpmoc esaelp ,yaw eht gnola edoc ruoy fo snoisrev eht deniatniam dna 7a detelpmoc yllufsseccus t’nevah uoy fI .7a fo noitelpmoc lufsseccus ruoy no seiler tnemngissa sihT
¡±.deeps esaercni ot yawa dedart syawla si tnatropmi gnihtemos ;retsaf on tub ,yrassecen sa tsaf sa nur dluohs edoC¡°
tnemngissA .atad detouq ton si margorp tset siht taht ecitoN
seiranimilerP
noitcudortnI
all of these intermediate files available during your demonstration
#lang racket
expr define-union union-case
match
value-of-cps
match
match apply-closure clos_
match apply-env envr_
match apply-k kt_
let*
let*
define-registers
(require “parenthec.rkt”)
union-case
clos
union-case
envr
match
union-case
match
set!
kt
empty-k
interp.pc
union-case apply-k
(printf ¡°Fact 5: ~s\n¡± v)
#lang racket
main (main) pc2c.rkt
gcc
main
match
define-union
define-union
begin
let*
120
define-union
(define name (lambda () …)) define-program-counter
define-label
pc2c
mount- trampoline dismount-trampoline empty-k kt
We will expect you to have
(require “parentheC.rkt”)
no
main
(pc2c “interp.pc” “a9.c” “a9.h”)
.tuptuo tcerrocehteesuoytahtgniyfirev,elbatucexegnitluserehtnuR]php.enilno_c_elipmoc/moc.tniopslairotut//:ptth[ relipmoc C enilno na esu dluoc uoy ,yletanretlA .smetsys tnereffid ynam rofseiranib]lmth.seiranib/llatsni/gro.ung.ccg//:ptth[erehdnfinacuoydna,dellatsni evahsenihcamxunilCIOS ehT .eciohc ruoy fo relipmoc C eht htiw margorp C eht elipmoC .reterpretni ruoy morf edoc C etareneg lliw hcihw
selfi rehto htiw LPER tekcaR detaicossa eht nI .srorre tuohtiw daol dluohs sihT .
epyt ,dedaol nur dna nepO .01
deman elfi siht fo ypoc a evas dnA .elfi ruoy ot ti dedda uoy fi )
si taht(
.
fo noitacovni ruoy dna
tnemucod Cehtnerap eht eeS
retsiger eht tnirp , fo enil tsal eht nO . edisni
dna
ot sllac dda neht dna ,retnuoc margorp eht ot stnemngissa otni snoitacovni lebal lla trevnoC .8
dna ,noinu ruoy ni gniyfidom eriuqer lliw siht etoN .
. gnisu margorp eht fo pot eht ta retnuoc margorp ruoy enfieD . esu daetsni ot stnemetats ruoy fo lla egnahC .7
.margorp eht fo pot eht ta gnisu sretsiger labolg ruoy enfieD .stnemugra on fo snoitcnuf eb ot snoitcnuf
suoires lla egnahC .stnemugra on fo noitcnuf a fo noitacovni eht semoceb ydob eht dna ,snoisserpxe
emoceb lliw sgnidnib remrof eht :kcolb a ot noisserpxe hcae nruT .reterpretni eht eziretsigeR .6
.noitinfied eht ni sretemarap lamrof eht fo seman eht *yltcaxe* era sllac suoires eht ot sretemarap lautca eht fo seman eht taht gnirusne
dna ,sllac suoires ruoy evoba gnidda yb ,elyts mrof lamron-A ruo ot sllac noitcnuf suoires ruoy lla mrofsnarT .5 .noisserpxe ruoy saw tahw ni snrettap eht ni sammoc dna setouqkcab eht evomer ot erus ekaM .noinu ruoy rof eman tnereffid a esu
uoy fi naht rehto gnihtemos ro , htiw dedecerp era snoitacovni rotcurtsnoc lla erusne dna ,
esu daetsni ot ni eht egnahc , a ot srotcurtsnoc noitaunitnoc ruoy mrofsnarT .4
.noisserpxe ruoy saw tahw ni snrettap eht ni sammoc dna setouqkcab eht evomer ot erus ekaM .noinu ruoy rof eman tnereffid a esu uoy fi
naht rehto gnihtemos ro , htiw dedecerp era snoitacovni rotcurtsnoc lla erusne dna , esu daetsni ot ni eht egnahc , a ot srotcurtsnoc tnemnorivne ruoy mrofsnarT .3
.noisserpxe ruoy saw tahw ni snrettap eht ni sammoc dna setouqkcab eht evomer ot erus ekaM .noinu ruoy rof eman tnereffid a esu uoy fi naht
rehto gnihtemos ro , daetsni ot
htiw dedecerp era snoitacovni rotcurtsnoc ruoy taht erusne dna , esu
ni eht egnahc , a ot rotcurtsnoc erusolc ruoy mrofsnarT .2
senil eht tuo tnemmoC .9 .spets eseht no seton rof .g.e ,margorp eht fo eulav lanfi eht gniniatnoc eht ni esualc eht
.ti ekovni uoy nehw snruter ti erus ekam dna ,elfi ruoy fo mottob eht ot ruoy saw tahw fo snrettap eht ni sammoc dna setouqkcab eht evomer ot erus ekaM
ddA .noisserpxe
.siht od ot woh ees ot ssalc morf elpmaxe eht ro repap CehtneraP eht tlusnoC .noisserpxe-
a eb eht dda txeN
daetsni ot ni noisserpxe- eht egnahc ,elfi ruoy ot
.emit fo tol a evas lliw meht fo lla fo seipoc gnivah dna reterpretni ruoy fo noisrev redlo na ot kcab og ot deen netfo lliw uoy ,oslA .
.pets yreve hsinfi uoy retfa reterpretni ruoy fo ypoc wen a evaS .hsilpmocca ot deen lliw uoy spets eht era ereH .dedivorp margorp tset eht nur dna , gnisu smargorp C otni ti nrut ,etelpmoc si reterpretni ruoy nehW .C ot etalsnart nac ew noisrev a ot 7a morf reterpretni ruoy fo noitamrofsnart eht etelpmoc ot si tnemngissa ruoY
,
enil eht dda ,
woleB .1
tresseD tsuJ
callcc
callcc
cvm yb 54:01 01/30/0202 :defiidom tsaL ¡¤ txt.9-tnemngissa
.redarg ruoy ot liame na ni ,segnahc deriuqer rehto yna htiw gnola ,siht dnes dna sesu taht eno ot margorp tset eht egnahC .]))ccF2%llac_.)tkr..emehcs-eromF2%etavirpF2%tekcar_.bil((_.fed( #lmth.tnoc/ecnerefer/gro.gnal-tekcar.scod//:sptth[ cc/llac s’tekcaR ekil sevaheb taht reterpretni ruoy ot mrof a ddA