A framework to develop and test esoteric programming languages