extend the interpreter: Security is a major concern for any system. Therefore, it is important to ensure that there is no information leak and that the memory deallocated from a program does not contain data which can be read by malicious programs. To avoid such a breach due to environment storage, we want to augment the Varlang language with alete(encoded let) expression, to encode a value before storing it in the environment, and a dec expression to decode it before using it. All values are stored by encrypting them with key, and read by decrypting them with [login to view URL] the let expression, each variable definition will contain the variable name, followed by two numberswhere the first number is the value, and the second number is the encrytion key. In the dec expression, the first number is the key for decription, followed by the variable name.
Extend the Varlang programming language to support these two expressions. Implement an encryptedlet (lete for let encrypted), which is similar to let but it uses a key and a dec expression that is similarto VarExp.
$(lete ((x 1 2)) x)3
$(lete ((x 1 a)) x)error
$(lete ((x 1 20)) (dec 20 x))1
$(lete ((x 1 20)) (dec b x))error
$(lete ((y 8 10) (x 1 2)) (+ x y))21
$(lete ((y 12 10) (x 1 2)) (+ (dec 10 y) (dec 2 x)))13