implementation and specification of marbles programming language