A scheme interpreter and compiler