[SOLVED] CS450 Homework8-Translating SimpleJS into LambdaJS Solved 

35.00 $

Category:
Click Category Button to View Your Next Assignment | Homework

You will receive the following solution file(s) instantly after successful payment:

zip file icon hw8-v9waxj.zip (164 KB)
Assignment Instructions Updated Recently? Submit Below and we will provide new Solution!
Submit New Instructions
🔒 Securely Powered by:
Secure Checkout
5/5 - (1 vote)

Translating SimpleJS into LambdaJS

  1. Implement the following translation function from SimpleJS into LambdaJS.

def

J[[x.y]] ==(deref x)[“y”]

def

J[[x.y := e]] ==let data = [[e]] in

let o = (deref x) in

x := o[“y”] ← data; data

J[[x.y(e···)]]] ==def let m = (deref x)[“y”] in

let f = (deref m)[“$code”] in f(x,[[e···]])

J[[function(x···) {e}]] ==def alloc {“$code” : λ(this,x···).[[e]],“prototype” : alloc {}}

def

J[[new ef(e···)]] ==let ctor = deref [[ef]] in

let obj = alloc {“$proto” : ctor[“prototype”]} in

let f = ctor[“$code”] in f(obj,J[[e]]···); obj

def

J[[c]] ==c

def

J[[x]] ==x

def

J[[let x = e1 in e2]] ==let x = [[e1]] in [[e2]]

  • hw8-v9waxj.zip